diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm b/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm
similarity index 100%
rename from _maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm
rename to _maps/RandomRuins/AnywhereRuins/fountain_hall.dmm
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm
similarity index 100%
rename from _maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm
rename to _maps/RandomRuins/AnywhereRuins/golem_ship.dmm
diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm
new file mode 100644
index 0000000000..acb68d3c80
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm
@@ -0,0 +1,1691 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/mineral/random/more_caves,
+/area/icemoon/surface/outdoors/unexplored)
+"b" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/surface/outdoors)
+"U" = (
+/turf/closed/mineral/random/no_caves,
+/area/icemoon/surface/outdoors/unexplored)
+
+(1,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(2,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(3,1,1) = {"
+b
+b
+b
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+b
+b
+b
+"}
+(4,1,1) = {"
+b
+b
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+b
+b
+"}
+(5,1,1) = {"
+b
+b
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+b
+b
+"}
+(6,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(7,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(8,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(9,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(10,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(11,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(12,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(13,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(14,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(15,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(16,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(17,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(18,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(19,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(20,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(21,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(22,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(23,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(24,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(25,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(26,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(27,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(28,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(29,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(30,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(31,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(32,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(33,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(34,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(35,1,1) = {"
+b
+b
+U
+U
+U
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+b
+b
+"}
+(36,1,1) = {"
+b
+b
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+b
+b
+"}
+(37,1,1) = {"
+b
+b
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+b
+b
+"}
+(38,1,1) = {"
+b
+b
+b
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+U
+b
+b
+b
+"}
+(39,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(40,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm
new file mode 100644
index 0000000000..d028ac106f
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm
@@ -0,0 +1,2094 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"ab" = (
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ad" = (
+/obj/machinery/power/floodlight,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ae" = (
+/turf/closed/wall/r_wall,
+/area/icemoon/surface/outdoors)
+"af" = (
+/obj/structure/lattice,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"ag" = (
+/obj/structure/cable,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"ah" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"ai" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"aj" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ak" = (
+/turf/closed/wall/ice,
+/area/icemoon/surface/outdoors)
+"al" = (
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"am" = (
+/obj/machinery/power/emitter,
+/obj/effect/turf_decal/stripes/end{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"an" = (
+/turf/closed/wall/mineral/snow,
+/area/icemoon/surface/outdoors)
+"ao" = (
+/obj/item/clothing/under/rank/engineering/chief_engineer,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ap" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"aq" = (
+/obj/machinery/field/generator,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"ar" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"as" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"at" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"au" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"av" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aw" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ax" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber,
+/turf/open/floor/engine/o2,
+/area/icemoon/surface/outdoors)
+"ay" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume,
+/turf/open/floor/engine/o2,
+/area/icemoon/surface/outdoors)
+"az" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber,
+/turf/open/floor/engine/n2,
+/area/icemoon/surface/outdoors)
+"aA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume,
+/turf/open/floor/engine/n2,
+/area/icemoon/surface/outdoors)
+"aB" = (
+/turf/closed/wall,
+/area/icemoon/surface/outdoors)
+"aC" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/machinery/light/small/broken{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aD" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/engine/o2,
+/area/icemoon/surface/outdoors)
+"aE" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/engine/o2,
+/area/icemoon/surface/outdoors)
+"aF" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/engine/n2,
+/area/icemoon/surface/outdoors)
+"aG" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/engine/n2,
+/area/icemoon/surface/outdoors)
+"aH" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aI" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/item/clothing/suit/space/hardsuit/engine,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aJ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"aK" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aL" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aM" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/engine/airless,
+/area/icemoon/surface/outdoors)
+"aN" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/engine/airless,
+/area/icemoon/surface/outdoors)
+"aO" = (
+/turf/closed/wall/r_wall/rust,
+/area/icemoon/surface/outdoors)
+"aP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aQ" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aU" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aV" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aW" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aX" = (
+/obj/machinery/atmospherics/components/trinary/mixer/flipped{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aY" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aZ" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ba" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bb" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"bd" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"bf" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/item/clothing/suit/space/hardsuit/engine,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"bg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"bh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"bi" = (
+/obj/machinery/door/airlock/engineering{
+ name = "The Singularity Engine"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"bj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bk" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Engine Entry";
+ req_access_txt = "204"
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bn" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bo" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bp" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"br" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bt" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bu" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bw" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bx" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 1
+ },
+/obj/machinery/power/apc/unlocked{
+ dir = 4;
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"by" = (
+/obj/item/stack/rods{
+ amount = 2
+ },
+/obj/item/shard/plasma,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bA" = (
+/obj/item/flashlight/flare,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"bB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"bD" = (
+/obj/effect/decal/cleanable/robot_debris,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/item/book/manual/wiki/engineering_singulo_tesla,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bE" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bI" = (
+/obj/item/pda/clear{
+ note = "Chief's asked me to check on the machinery inside PDA. He's also worried about Build, but i'm sure Harry'll handle the construction. I just need to work on Internals. Fuck i'm hungry"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bK" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bM" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bN" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bO" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bP" = (
+/obj/machinery/atmospherics/components/binary/pump,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bQ" = (
+/obj/effect/spawner/structure/window/plasma,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bS" = (
+/obj/structure/sign/poster/official/build{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bT" = (
+/obj/item/pipe_dispenser,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"bU" = (
+/obj/effect/mob_spawn/human/corpse/assistant,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bV" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bY" = (
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"bZ" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ca" = (
+/obj/item/flashlight,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cb" = (
+/obj/item/book/manual/wiki/atmospherics,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cc" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cd" = (
+/obj/machinery/atmospherics/pipe/manifold/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ce" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cf" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cg" = (
+/obj/item/wallframe/apc,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"ch" = (
+/obj/machinery/light/broken,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ci" = (
+/obj/structure/sign/poster/official/pda_ad{
+ pixel_y = -32
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ck" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 5
+ },
+/obj/structure/sign/poster/contraband/atmosia_independence{
+ pixel_x = -32
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cl" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cm" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cn" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"co" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cp" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cq" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cr" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Production Room";
+ req_access_txt = "204"
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cs" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ct" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cu" = (
+/obj/structure/girder,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"cv" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cw" = (
+/obj/machinery/atmospherics/pipe/manifold4w/green/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cx" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cy" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cz" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cA" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cB" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cC" = (
+/obj/effect/decal/cleanable/oil,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"cD" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"cE" = (
+/obj/machinery/computer/rdconsole/production,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"cG" = (
+/obj/machinery/field/generator,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"cH" = (
+/obj/item/construction/rcd,
+/obj/structure/rack,
+/obj/item/rcd_ammo,
+/obj/item/rcd_ammo,
+/obj/item/rcd_upgrade/frames,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cI" = (
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cJ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cK" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cL" = (
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/space_heater,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cM" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cN" = (
+/obj/machinery/atmospherics/components/binary/pump,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cO" = (
+/obj/effect/turf_decal/stripes/corner,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cP" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cQ" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cR" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/machinery/space_heater,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cS" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cT" = (
+/obj/machinery/power/emitter{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/end,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"cV" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cW" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/effect/turf_decal/trimline/yellow/filled/corner{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cY" = (
+/obj/machinery/light/small/broken,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cZ" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/visible,
+/turf/open/floor/engine/airless,
+/area/icemoon/surface/outdoors)
+"da" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/brown/visible,
+/turf/open/floor/engine/airless,
+/area/icemoon/surface/outdoors)
+"db" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/floor/engine/airless,
+/area/icemoon/surface/outdoors)
+"dc" = (
+/obj/machinery/power/rad_collector,
+/obj/structure/cable,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"dd" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"de" = (
+/obj/machinery/autolathe,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"df" = (
+/obj/machinery/door/airlock,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dg" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dh" = (
+/obj/structure/sign/poster/contraband/grey_tide,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/icemoon/surface/outdoors)
+"di" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dj" = (
+/turf/closed/wall/rust,
+/area/icemoon/surface/outdoors)
+"dk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible,
+/turf/open/floor/engine/air,
+/area/icemoon/surface/outdoors)
+"dl" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/engine/air,
+/area/icemoon/surface/outdoors)
+"dm" = (
+/obj/machinery/atmospherics/pipe/simple/brown/visible,
+/turf/open/floor/engine/vacuum,
+/area/icemoon/surface/outdoors)
+"dn" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/floor/engine/vacuum,
+/area/icemoon/surface/outdoors)
+"do" = (
+/obj/machinery/power/port_gen/pacman,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"dp" = (
+/obj/machinery/light/built,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"dq" = (
+/obj/item/tank/internals/plasma,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"dr" = (
+/obj/machinery/power/floodlight,
+/obj/structure/cable,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"ds" = (
+/obj/structure/tank_dispenser,
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"dt" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"du" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dv" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/weather/snow/corner,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dw" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/icemoon/surface/outdoors)
+"dx" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/icemoon/surface/outdoors)
+"dy" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber{
+ dir = 1
+ },
+/turf/open/floor/engine/vacuum,
+/area/icemoon/surface/outdoors)
+"dz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{
+ dir = 1
+ },
+/turf/open/floor/engine/vacuum,
+/area/icemoon/surface/outdoors)
+"dA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/effect/turf_decal/weather/snow/corner,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dB" = (
+/obj/structure/girder,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dC" = (
+/obj/structure/door_assembly/door_assembly_eng,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"gA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"gD" = (
+/obj/machinery/power/emitter{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/end,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"mO" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"oi" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"tY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"CR" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"DM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"Ee" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+"Wr" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/icemoon,
+/area/icemoon/surface/outdoors)
+
+(1,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+ak
+an
+ak
+ae
+an
+ab
+aa
+by
+bQ
+bQ
+ae
+ae
+ae
+ae
+ae
+aO
+aa
+"}
+(3,1,1) = {"
+aa
+aa
+aa
+aj
+ab
+al
+al
+ab
+ab
+ab
+ab
+ab
+ab
+al
+al
+al
+do
+ae
+aa
+"}
+(4,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aj
+al
+al
+al
+al
+al
+al
+al
+al
+al
+al
+gA
+ak
+aa
+"}
+(5,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aw
+aK
+bc
+bc
+bR
+bc
+bc
+cC
+cT
+ai
+Ee
+aO
+aa
+"}
+(6,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+af
+al
+cD
+gA
+al
+al
+aO
+aa
+"}
+(7,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+bd
+aa
+aa
+aa
+af
+cA
+DM
+dc
+al
+ae
+aa
+"}
+(8,1,1) = {"
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+af
+af
+DM
+ag
+al
+ak
+aa
+"}
+(9,1,1) = {"
+ab
+ab
+al
+ap
+aa
+aa
+aa
+aa
+bf
+aa
+aa
+aa
+af
+af
+DM
+dc
+dp
+ae
+aa
+"}
+(10,1,1) = {"
+ab
+ab
+dd
+ap
+al
+aa
+aa
+aa
+aa
+aa
+bT
+aa
+af
+ab
+DM
+dc
+dq
+ak
+aa
+"}
+(11,1,1) = {"
+ad
+ai
+mO
+aq
+ab
+aa
+aa
+aa
+aa
+bA
+aa
+aa
+af
+aI
+DM
+dc
+al
+ak
+aa
+"}
+(12,1,1) = {"
+ab
+ab
+gA
+ap
+al
+ab
+aJ
+aa
+aa
+aa
+aa
+ab
+ab
+cF
+gA
+al
+al
+aO
+aa
+"}
+(13,1,1) = {"
+ab
+ab
+am
+ar
+at
+at
+at
+at
+Wr
+bB
+bB
+bB
+tY
+cG
+gD
+ai
+dr
+ae
+aa
+"}
+(14,1,1) = {"
+ab
+ah
+al
+as
+au
+as
+as
+as
+bg
+al
+al
+cg
+gA
+al
+al
+al
+al
+ae
+aa
+"}
+(15,1,1) = {"
+ab
+al
+al
+al
+al
+al
+al
+al
+bh
+bC
+al
+al
+CR
+al
+al
+al
+ds
+ae
+aa
+"}
+(16,1,1) = {"
+ae
+ae
+ae
+ae
+ae
+ae
+ae
+aO
+bi
+ae
+ae
+ae
+ae
+ae
+ae
+ae
+ae
+ae
+aa
+"}
+(17,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+aL
+bb
+bD
+ae
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(18,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+oi
+bj
+ab
+ae
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(19,1,1) = {"
+af
+aa
+aa
+aa
+an
+aB
+ae
+aP
+bk
+aP
+ae
+aB
+aB
+aB
+aB
+aB
+aB
+aa
+aa
+"}
+(20,1,1) = {"
+af
+af
+ab
+aa
+aa
+af
+aC
+aQ
+bl
+bE
+bS
+cf
+cr
+cB
+cI
+ab
+aB
+aa
+aa
+"}
+(21,1,1) = {"
+af
+ab
+ab
+af
+af
+ab
+ab
+ab
+bj
+ab
+bU
+ch
+aB
+cE
+ab
+cY
+aB
+aa
+aa
+"}
+(22,1,1) = {"
+aa
+aa
+af
+ab
+ab
+ab
+ab
+ab
+bj
+ab
+bV
+ab
+aP
+cH
+ab
+de
+aB
+aa
+aa
+"}
+(23,1,1) = {"
+ab
+aa
+af
+ab
+ao
+ab
+ab
+aR
+bm
+ab
+bH
+ci
+aB
+aB
+aP
+aB
+aB
+ab
+aa
+"}
+(24,1,1) = {"
+aa
+af
+ab
+al
+ab
+ab
+ab
+aS
+bn
+ab
+bH
+ab
+ab
+cI
+cR
+aB
+dj
+ak
+ak
+"}
+(25,1,1) = {"
+aa
+af
+ab
+ab
+ab
+ab
+ab
+aT
+bo
+ab
+bW
+cj
+cj
+cj
+cS
+dh
+dg
+du
+ak
+"}
+(26,1,1) = {"
+aa
+af
+af
+an
+an
+ab
+ab
+ab
+bp
+bF
+bX
+bF
+bF
+cJ
+cV
+df
+di
+dv
+dB
+"}
+(27,1,1) = {"
+aa
+aa
+aa
+aa
+an
+av
+aH
+av
+bj
+bG
+bY
+av
+av
+cK
+cW
+aB
+dt
+dA
+dC
+"}
+(28,1,1) = {"
+aa
+aa
+aa
+aa
+an
+an
+aB
+ae
+bj
+bH
+ae
+aB
+cu
+cu
+aB
+dj
+ak
+ak
+dj
+"}
+(29,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+bj
+bI
+ae
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ak
+"}
+(30,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+bq
+bH
+ae
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ak
+"}
+(31,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+bq
+bJ
+ae
+ae
+ae
+ae
+ae
+aa
+aa
+aa
+aa
+"}
+(32,1,1) = {"
+aa
+aa
+aa
+ae
+ae
+ae
+ae
+ae
+br
+bK
+bZ
+ck
+cs
+cL
+ae
+ae
+ae
+ae
+aa
+"}
+(33,1,1) = {"
+aa
+aa
+aa
+ae
+ax
+aD
+aM
+aU
+bs
+bL
+bZ
+cl
+ct
+cM
+cZ
+dk
+dw
+ae
+aa
+"}
+(34,1,1) = {"
+aa
+aa
+aa
+ae
+ay
+aE
+aN
+aV
+bt
+bM
+ab
+cm
+co
+cN
+aN
+dl
+dx
+ae
+aa
+"}
+(35,1,1) = {"
+aa
+aa
+aa
+ae
+ae
+ae
+ae
+aW
+bu
+bN
+ca
+cn
+cv
+cO
+ae
+ae
+ae
+ae
+aa
+"}
+(36,1,1) = {"
+aa
+aa
+aa
+ae
+az
+aF
+aM
+aX
+bv
+bN
+cb
+co
+cw
+cM
+da
+dm
+dy
+ae
+aa
+"}
+(37,1,1) = {"
+aa
+aa
+aa
+ae
+aA
+aG
+aN
+aY
+bw
+bM
+cc
+cp
+cx
+cP
+db
+dn
+dz
+ae
+aa
+"}
+(38,1,1) = {"
+aa
+aa
+aa
+ae
+ae
+ae
+ae
+aZ
+bu
+bO
+cd
+cd
+cy
+cQ
+ae
+ae
+ae
+ae
+aa
+"}
+(39,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+ba
+bx
+bP
+ce
+cq
+cz
+ab
+ae
+aa
+aa
+aa
+aa
+"}
+(40,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+ae
+ae
+ae
+ae
+ae
+ae
+ae
+ae
+aa
+aa
+aa
+aa
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm
new file mode 100644
index 0000000000..93b221c446
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm
@@ -0,0 +1,170 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/indestructible/riveted/uranium,
+/area/icemoon/surface/outdoors)
+"b" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/surface/outdoors)
+"c" = (
+/turf/open/water/cursed_spring,
+/area/icemoon/surface/outdoors)
+"d" = (
+/obj/item/paper/crumpled{
+ info = "When one falls into this hot spring, they shall forever be turned into..."
+ },
+/turf/open/floor/plating/beach/sand,
+/area/icemoon/surface/outdoors)
+"I" = (
+/turf/closed/indestructible/fakeglass,
+/area/icemoon/surface/outdoors)
+"L" = (
+/obj/structure/fluff/beach_umbrella,
+/turf/open/floor/plating/beach/sand,
+/area/icemoon/surface/outdoors)
+"U" = (
+/turf/open/floor/plating/beach/sand,
+/area/icemoon/surface/outdoors)
+
+(1,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(2,1,1) = {"
+b
+b
+b
+a
+a
+I
+a
+a
+b
+b
+b
+"}
+(3,1,1) = {"
+b
+b
+a
+U
+U
+U
+U
+U
+a
+b
+b
+"}
+(4,1,1) = {"
+b
+a
+U
+L
+c
+c
+c
+U
+U
+a
+b
+"}
+(5,1,1) = {"
+b
+a
+U
+c
+c
+c
+c
+c
+U
+a
+b
+"}
+(6,1,1) = {"
+b
+I
+U
+c
+c
+c
+c
+c
+U
+I
+b
+"}
+(7,1,1) = {"
+b
+a
+U
+c
+c
+c
+c
+c
+U
+a
+b
+"}
+(8,1,1) = {"
+b
+a
+U
+L
+c
+c
+c
+U
+U
+a
+b
+"}
+(9,1,1) = {"
+b
+b
+a
+U
+U
+d
+U
+U
+a
+b
+b
+"}
+(10,1,1) = {"
+b
+b
+b
+a
+a
+I
+a
+a
+b
+b
+b
+"}
+(11,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm
new file mode 100644
index 0000000000..704ac63a7d
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm
@@ -0,0 +1,166 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/surface/outdoors)
+"b" = (
+/obj/structure/sign/poster/contraband/lusty_xenomorph,
+/turf/closed/indestructible/abductor,
+/area/icemoon/surface/outdoors)
+"c" = (
+/turf/open/floor/mineral/diamond,
+/area/icemoon/surface/outdoors)
+"d" = (
+/obj/item/reagent_containers/food/drinks/trophy/gold_cup,
+/turf/open/floor/mineral/diamond,
+/area/icemoon/surface/outdoors)
+"e" = (
+/obj/item/greentext{
+ light_color = "#64C864";
+ light_range = 1
+ },
+/turf/open/floor/mineral/diamond,
+/area/icemoon/surface/outdoors)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+b
+b
+b
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+b
+c
+c
+c
+b
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+b
+c
+c
+d
+c
+c
+b
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+b
+c
+d
+e
+d
+c
+b
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+b
+c
+c
+d
+c
+c
+b
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+b
+c
+c
+c
+b
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+b
+b
+b
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm
new file mode 100644
index 0000000000..969acdd871
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm
@@ -0,0 +1,886 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/surface/outdoors)
+"b" = (
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/ruin/unpowered)
+"c" = (
+/obj/structure/closet/toolcloset,
+/obj/item/wrench,
+/obj/item/screwdriver,
+/obj/item/crowbar,
+/obj/item/weldingtool/largetank,
+/obj/item/wirecutters,
+/obj/item/radio/off,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"d" = (
+/turf/open/openspace/icemoon,
+/area/icemoon/surface/outdoors)
+"e" = (
+/obj/item/clothing/suit/hooded/explorer,
+/obj/item/clothing/mask/gas/explorer,
+/obj/item/clothing/gloves/color/black,
+/obj/item/storage/backpack/explorer,
+/obj/item/flashlight/lantern,
+/obj/item/storage/bag/ore,
+/obj/structure/closet,
+/obj/item/clothing/shoes/winterboots/ice_boots,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"f" = (
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"g" = (
+/obj/structure/fireplace,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"h" = (
+/obj/structure/flora/rock/icy,
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/surface/outdoors)
+"i" = (
+/turf/template_noop,
+/area/template_noop)
+"j" = (
+/obj/structure/sink/kitchen,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"k" = (
+/obj/structure/closet/crate/freezer,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"l" = (
+/obj/machinery/vending/dinnerware,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"m" = (
+/obj/structure/barricade/wooden/crude/snow,
+/obj/structure/mineral_door/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"n" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered)
+"o" = (
+/obj/item/reagent_containers/food/drinks/beer,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"p" = (
+/obj/machinery/light/broken{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"q" = (
+/obj/structure/table/wood,
+/obj/item/pen,
+/obj/machinery/light/broken{
+ dir = 8
+ },
+/obj/item/paper/crumpled/bloody{
+ info = "help...";
+ text = ""
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"r" = (
+/obj/item/chair/wood,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/mob_spawn/human/miner/explorer,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"s" = (
+/obj/effect/decal/cleanable/trail_holder,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"u" = (
+/obj/structure/ladder,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+
+(1,1,1) = {"
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+"}
+(2,1,1) = {"
+i
+i
+i
+i
+i
+i
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+i
+i
+i
+i
+i
+i
+"}
+(3,1,1) = {"
+i
+i
+i
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+i
+i
+i
+"}
+(4,1,1) = {"
+i
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+i
+i
+"}
+(5,1,1) = {"
+i
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+i
+"}
+(6,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+"}
+(7,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+"}
+(8,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+"}
+(9,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+i
+"}
+(10,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+d
+d
+i
+i
+"}
+(11,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+c
+f
+f
+o
+q
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(12,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+e
+f
+f
+f
+r
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(13,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+f
+f
+f
+f
+s
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(14,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+g
+f
+f
+f
+s
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(15,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+f
+f
+f
+f
+s
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(16,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+j
+f
+f
+f
+s
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(17,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+k
+f
+f
+f
+s
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(18,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+l
+f
+f
+f
+u
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(19,1,1) = {"
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+f
+f
+p
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(20,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+f
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(21,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+b
+f
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(22,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+b
+f
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+"}
+(23,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+b
+f
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+"}
+(24,1,1) = {"
+i
+i
+d
+d
+d
+d
+d
+d
+d
+d
+d
+b
+m
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+i
+i
+"}
+(25,1,1) = {"
+i
+i
+i
+d
+d
+d
+d
+d
+d
+d
+a
+h
+n
+h
+a
+d
+d
+d
+d
+d
+d
+d
+i
+i
+i
+"}
+(26,1,1) = {"
+i
+i
+i
+d
+d
+d
+d
+d
+d
+a
+a
+a
+h
+a
+a
+a
+d
+d
+d
+d
+d
+d
+i
+i
+i
+"}
+(27,1,1) = {"
+i
+i
+i
+i
+d
+d
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+i
+i
+i
+i
+"}
+(28,1,1) = {"
+i
+i
+i
+i
+i
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+i
+i
+i
+i
+i
+"}
+(29,1,1) = {"
+i
+i
+i
+i
+i
+i
+i
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+i
+i
+i
+i
+i
+i
+i
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
new file mode 100644
index 0000000000..908363dd86
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
@@ -0,0 +1,1403 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/underground/explored)
+"ab" = (
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/underground/explored)
+"ac" = (
+/obj/structure/fence/door/opened{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/underground/explored)
+"ay" = (
+/turf/open/floor/carpet,
+/area/ruin/powered)
+"aM" = (
+/turf/open/floor/wood,
+/area/ruin/powered)
+"aP" = (
+/obj/structure/dresser,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"aZ" = (
+/obj/structure/sign/poster/ripped,
+/turf/closed/wall/rust,
+/area/icemoon/underground/explored)
+"bR" = (
+/obj/machinery/light/small/broken{
+ dir = 4
+ },
+/obj/structure/fluff/fokoff_sign,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"bY" = (
+/obj/structure/flora/stump,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"cj" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/fishandchips,
+/turf/open/floor/plasteel/checker,
+/area/ruin/powered)
+"cB" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"dh" = (
+/obj/machinery/door/airlock/wood,
+/obj/structure/barricade/wooden/crude/snow,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"fD" = (
+/obj/structure/bed,
+/obj/item/bedsheet/random,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"gG" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/sashimi{
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/food/drinks/mug/coco{
+ pixel_x = -10
+ },
+/obj/item/reagent_containers/food/drinks/mug/coco{
+ pixel_x = 10;
+ pixel_y = -4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/powered)
+"hD" = (
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/turf/open/floor/engine/cult,
+/area/ruin/powered)
+"hI" = (
+/obj/item/reagent_containers/food/drinks/beer,
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"iB" = (
+/turf/closed/mineral/snowmountain/icemoon,
+/area/icemoon/underground/explored)
+"jk" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"jP" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"kl" = (
+/obj/structure/sign/poster/official/nanotrasen_logo,
+/turf/closed/wall,
+/area/icemoon/underground/explored)
+"ks" = (
+/obj/structure/flora/rock/icy,
+/obj/effect/mob_spawn/human/corpse/assistant,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"la" = (
+/obj/effect/decal/cleanable/blood/gibs/up,
+/obj/effect/mob_spawn/human/corpse/assistant,
+/mob/living/simple_animal/hostile/skeleton/eskimo{
+ name = "Village Hunter"
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"lg" = (
+/obj/structure/flora/grass/both,
+/obj/effect/decal/remains/human,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"li" = (
+/obj/structure/dresser,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"lo" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"mi" = (
+/obj/effect/decal/remains/human,
+/mob/living/simple_animal/hostile/construct/armored/hostile{
+ health = 450;
+ maxHealth = 450;
+ name = "Right Hand of the Elder"
+ },
+/turf/open/floor/engine/cult,
+/area/ruin/powered)
+"mI" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/structure/flora/grass/both,
+/obj/structure/fence{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"oB" = (
+/obj/structure/table/wood,
+/obj/item/clothing/under/misc/pj/blue,
+/obj/item/clothing/shoes/sneakers/white,
+/obj/structure/bedsheetbin,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"oF" = (
+/obj/structure/flora/rock/icy,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"pc" = (
+/turf/open/floor/plating/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored)
+"pj" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"pH" = (
+/obj/structure/sign/poster/official/work_for_a_future,
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"pI" = (
+/obj/structure/flora/rock/pile/icy,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"pP" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/powered)
+"pV" = (
+/obj/machinery/door/airlock/maintenance_hatch,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"rC" = (
+/obj/structure/closet/secure_closet/freezer,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/condiment/pack/ketchup,
+/obj/item/reagent_containers/food/condiment/pack/ketchup,
+/obj/item/reagent_containers/food/condiment/pack/ketchup,
+/turf/open/floor/plasteel/checker,
+/area/ruin/powered)
+"sG" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/structure/toilet{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"sY" = (
+/obj/structure/sink/kitchen{
+ dir = 4;
+ pixel_x = -12
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/checker,
+/area/ruin/powered)
+"tg" = (
+/obj/structure/fence{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"tt" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/powered)
+"tF" = (
+/obj/structure/fence,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"tM" = (
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"tN" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/underground/explored)
+"tX" = (
+/obj/structure/table/wood,
+/obj/structure/bedsheetbin,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"us" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"ut" = (
+/obj/item/flashlight/lantern{
+ on = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"vi" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/structure/fence/door,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"wQ" = (
+/turf/closed/wall,
+/area/ruin/powered)
+"xc" = (
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"xN" = (
+/obj/structure/bed/dogbed{
+ pixel_y = 14
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/powered)
+"yb" = (
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/powered)
+"yS" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"zR" = (
+/obj/machinery/door/airlock/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"AG" = (
+/obj/structure/showcase/machinery/tv,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/broken{
+ dir = 1
+ },
+/turf/open/floor/holofloor/wood,
+/area/ruin/powered)
+"AM" = (
+/obj/effect/decal/cleanable/blood/gibs/down,
+/obj/item/pickaxe,
+/turf/open/floor/engine/cult,
+/area/ruin/powered)
+"AN" = (
+/obj/structure/closet/cabinet,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/reagent_containers/glass/bottle/venom,
+/obj/item/reagent_containers/glass/bottle/curare,
+/obj/item/kitchen/knife/combat/survival,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/reagent_containers/food/snacks/meat/slab/human,
+/obj/item/reagent_containers/food/snacks/meat/slab/human,
+/obj/item/reagent_containers/food/snacks/meat/slab/human,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Bq" = (
+/obj/structure/flora/tree/pine,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"Cd" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/ruin/powered)
+"Cl" = (
+/obj/structure/sacrificealtar,
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/kitchen/knife/bloodletter,
+/turf/open/floor/engine/cult,
+/area/ruin/powered)
+"Dm" = (
+/obj/structure/flora/grass/brown,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"DI" = (
+/obj/structure/closet/emcloset,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath/medical,
+/obj/item/clothing/mask/breath/medical,
+/obj/item/flashlight/lantern,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/powered)
+"DM" = (
+/obj/structure/flora/bush,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"Ed" = (
+/obj/machinery/door/airlock/wood,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/structure/barricade/wooden/crude,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Ei" = (
+/turf/closed/mineral/snowmountain/cavern/icemoon,
+/area/icemoon/underground/explored)
+"EF" = (
+/obj/effect/decal/cleanable/blood/gibs/torso,
+/obj/effect/decal/remains/human,
+/mob/living/simple_animal/hostile/construct/armored/hostile{
+ health = 450;
+ maxHealth = 450;
+ name = "Left Hand of the Elder"
+ },
+/turf/open/floor/engine/cult,
+/area/ruin/powered)
+"Gr" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/chips,
+/obj/item/trash/semki{
+ pixel_x = 8;
+ pixel_y = -4
+ },
+/obj/item/clothing/neck/petcollar,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/powered)
+"Gy" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/wood,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"GK" = (
+/obj/item/clothing/head/bearpelt,
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/burger/fish,
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = -4
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = 10;
+ pixel_y = 6
+ },
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Ha" = (
+/obj/structure/mirror{
+ broken = 1
+ },
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"Hf" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Hx" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/under/rank/cargo/miner,
+/obj/item/clothing/suit/hooded/wintercoat/miner,
+/obj/item/clothing/shoes/winterboots,
+/obj/item/card/id/mining,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"IA" = (
+/obj/structure/fireplace{
+ fuel_added = 1000;
+ lit = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/powered)
+"Kd" = (
+/obj/structure/flora/grass/green,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"LZ" = (
+/obj/structure/bed,
+/obj/item/bedsheet/random,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Nq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/rack,
+/obj/item/storage/bag/ore,
+/obj/item/storage/toolbox/mechanical,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/powered)
+"Og" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"Os" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/ruin/powered)
+"Pp" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/holofloor/wood,
+/area/ruin/powered)
+"PQ" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/mob/living/simple_animal/hostile/illusion{
+ deathmessage = "disperses into the air in a cloud of red mist, you feel slightly more at ease.";
+ desc = "You can't quite make out what you're seeing.";
+ faction = list("cult");
+ health = 500;
+ maxHealth = 500;
+ melee_damage_lower = 10;
+ melee_damage_upper = 30;
+ name = "Village Elder"
+ },
+/turf/open/floor/engine/cult,
+/area/ruin/powered)
+"Qh" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood,
+/obj/item/bodypart/head,
+/obj/item/bodypart/l_arm{
+ pixel_x = -9;
+ pixel_y = -9
+ },
+/obj/item/bodypart/l_leg,
+/obj/item/bodypart/r_arm,
+/obj/item/bodypart/r_leg{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/bodypart/chest,
+/obj/item/organ/heart,
+/obj/item/multitool,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/powered)
+"Qt" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/obj/structure/flora/grass/both,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"QR" = (
+/turf/closed/wall/rust,
+/area/ruin/powered)
+"Rv" = (
+/obj/structure/flora/grass/both,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"Si" = (
+/obj/structure/mirror,
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"Sk" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"SN" = (
+/turf/open/floor/plasteel/freezer,
+/area/ruin/powered)
+"SZ" = (
+/obj/machinery/door/airlock/wood,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Tc" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"TW" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/structure/flora/grass/both,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"UI" = (
+/obj/machinery/washing_machine,
+/obj/effect/decal/cleanable/blood,
+/obj/item/reagent_containers/food/snacks/meat/slab/corgi,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Vn" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"Ws" = (
+/obj/structure/fence/cut/medium{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"WH" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed,
+/obj/item/bedsheet/cult,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Ze" = (
+/turf/closed/wall,
+/area/icemoon/underground/explored)
+"Zx" = (
+/obj/structure/chair/wood{
+ dir = 4
+ },
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"ZG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/cabinet,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/item/clothing/shoes/winterboots,
+/obj/item/clothing/under/suit/tan,
+/turf/open/floor/wood,
+/area/ruin/powered)
+
+(1,1,1) = {"
+tN
+tN
+tN
+tN
+tN
+tN
+Og
+Og
+Og
+Og
+Og
+Og
+oF
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+"}
+(2,1,1) = {"
+tN
+tN
+tN
+tN
+pc
+Og
+Og
+bR
+Og
+Og
+Og
+jP
+Og
+Og
+Og
+Rv
+Og
+Og
+Og
+Og
+Og
+Og
+Og
+tN
+tN
+tN
+tN
+tN
+"}
+(3,1,1) = {"
+tN
+tN
+tN
+xc
+pc
+Og
+Og
+aZ
+pI
+iB
+Og
+kl
+Og
+Og
+Og
+Og
+Og
+Og
+pI
+Og
+Og
+Og
+Og
+Og
+bY
+tN
+tN
+tN
+"}
+(4,1,1) = {"
+tN
+tN
+tN
+pc
+Og
+Og
+Ei
+Ze
+iB
+ks
+Ei
+Ze
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Tc
+pc
+pc
+Og
+Og
+pc
+tN
+tN
+"}
+(5,1,1) = {"
+tN
+tN
+Og
+Og
+Og
+Rv
+Ei
+Ei
+Ei
+aa
+pI
+Ei
+Ei
+Vn
+Vn
+Vn
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+pc
+Og
+Og
+Og
+Og
+"}
+(6,1,1) = {"
+tN
+pI
+Og
+Og
+bY
+Ei
+Ei
+Ei
+pI
+ab
+ab
+ab
+Ei
+Vn
+UI
+Vn
+Vn
+wQ
+wQ
+QR
+QR
+wQ
+Ei
+Ei
+Og
+Rv
+Og
+Og
+"}
+(7,1,1) = {"
+tN
+Og
+oF
+Og
+Ei
+Ei
+Vn
+Vn
+Vn
+Vn
+Og
+ab
+Bq
+pH
+jk
+tX
+Vn
+QR
+DI
+SN
+Qh
+wQ
+Ei
+Ei
+oF
+Og
+Og
+tN
+"}
+(8,1,1) = {"
+Og
+Og
+Og
+Og
+Ei
+Ei
+Vn
+cj
+sY
+Vn
+Og
+ab
+Vn
+Vn
+jk
+oB
+Vn
+wQ
+DI
+tt
+Gr
+QR
+lg
+Ei
+Ei
+Og
+Og
+tN
+"}
+(9,1,1) = {"
+Og
+Og
+Og
+Ei
+Ei
+la
+Vn
+rC
+ut
+Vn
+tF
+ac
+Vn
+AG
+aM
+yb
+Vn
+wQ
+Nq
+SN
+QR
+QR
+Og
+Ei
+Ei
+Og
+Og
+tN
+"}
+(10,1,1) = {"
+tN
+Og
+Kd
+Ei
+Ei
+lo
+Ha
+li
+Hf
+SZ
+ab
+ab
+Vn
+Pp
+aM
+pP
+Vn
+wQ
+QR
+pV
+wQ
+Og
+Tc
+Ei
+Ei
+Og
+Og
+tN
+"}
+(11,1,1) = {"
+tN
+Og
+pc
+Ei
+Ei
+lo
+Vn
+Hx
+fD
+Vn
+yS
+ab
+Vn
+Vn
+SZ
+Vn
+Vn
+Og
+Og
+ab
+tg
+Bq
+Og
+Ei
+Ei
+Og
+Og
+Og
+"}
+(12,1,1) = {"
+tN
+Og
+pc
+Ei
+Ei
+lo
+Vn
+Vn
+Vn
+Vn
+Og
+ab
+Og
+Bq
+ab
+Tc
+DM
+ab
+ab
+ab
+Ws
+Og
+Og
+Ei
+Ei
+Ei
+Og
+Og
+"}
+(13,1,1) = {"
+tN
+Og
+pc
+Ei
+Ei
+us
+Sk
+Qt
+vi
+Og
+yS
+ab
+ab
+ab
+ab
+Og
+Og
+ab
+Og
+Vn
+Vn
+Vn
+Vn
+Ei
+Ei
+Ei
+pI
+Og
+"}
+(14,1,1) = {"
+tN
+Og
+Ei
+Ei
+Ei
+Ei
+Bq
+pj
+mI
+Og
+Og
+Og
+Og
+Og
+ab
+Og
+Og
+ab
+Og
+Vn
+LZ
+AN
+Vn
+Ei
+Ei
+Ei
+Og
+Og
+"}
+(15,1,1) = {"
+tN
+Og
+Ei
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Og
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+zR
+cB
+GK
+Vn
+Ei
+Ei
+bY
+Og
+pc
+"}
+(16,1,1) = {"
+tN
+Og
+Ei
+Vn
+EF
+hD
+Si
+aP
+WH
+ZG
+Vn
+Og
+ab
+Tc
+Og
+Og
+Og
+Og
+Og
+Vn
+Vn
+Vn
+Vn
+Ei
+Ei
+Og
+Og
+tN
+"}
+(17,1,1) = {"
+tN
+Og
+Ei
+Vn
+Cl
+PQ
+Ed
+jk
+aM
+aM
+Vn
+Og
+ab
+Og
+Og
+Og
+Bq
+Og
+Og
+Og
+Gy
+sG
+Vn
+Ei
+Ei
+Og
+Og
+tN
+"}
+(18,1,1) = {"
+tN
+Og
+Ei
+Vn
+mi
+AM
+Vn
+ay
+Os
+jk
+dh
+ab
+ab
+Og
+Og
+Og
+Og
+TW
+Og
+Og
+Vn
+Vn
+Vn
+Ei
+Ei
+Og
+Og
+tN
+"}
+(19,1,1) = {"
+tN
+Og
+Ei
+Vn
+Vn
+Vn
+Vn
+IA
+gG
+aM
+Vn
+Og
+Og
+Og
+pc
+Dm
+Og
+Og
+tM
+Og
+Og
+Og
+Bq
+Ei
+Ei
+Og
+Dm
+tN
+"}
+(20,1,1) = {"
+tN
+Og
+Ei
+Ei
+Ei
+Ei
+Vn
+xN
+Cd
+jk
+Vn
+TW
+Og
+pc
+xc
+pc
+pc
+Og
+Og
+Og
+Og
+Og
+Og
+Ei
+Ei
+Og
+Og
+tN
+"}
+(21,1,1) = {"
+tN
+Og
+Og
+pj
+Ei
+Ei
+Vn
+Vn
+Vn
+Vn
+Vn
+Og
+Dm
+pc
+xc
+xc
+xc
+pc
+pj
+Og
+Og
+DM
+Ei
+Ei
+Ei
+Og
+Og
+tN
+"}
+(22,1,1) = {"
+tN
+bY
+Og
+Og
+Ei
+Ei
+Ei
+Ei
+Bq
+Og
+Og
+Og
+pc
+xc
+hI
+Zx
+xc
+xc
+pc
+pc
+Og
+Ei
+Ei
+Ei
+bY
+Og
+Og
+tN
+"}
+(23,1,1) = {"
+tN
+tN
+pI
+Og
+Og
+Ei
+Ei
+Ei
+Ei
+DM
+Tc
+pc
+pc
+xc
+xc
+xc
+xc
+xc
+xc
+Ei
+Ei
+Ei
+Ei
+Og
+Og
+Og
+Og
+tN
+"}
+(24,1,1) = {"
+tN
+tN
+tN
+pc
+Og
+Og
+Og
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+xc
+xc
+xc
+xc
+xc
+Ei
+Ei
+Ei
+Ei
+pI
+oF
+Og
+Og
+Og
+tN
+"}
+(25,1,1) = {"
+tN
+tN
+tN
+xc
+pc
+pc
+Og
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Og
+Og
+Og
+Og
+Og
+Og
+tN
+"}
+(26,1,1) = {"
+tN
+tN
+tN
+xc
+pc
+oF
+Og
+pI
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+Ei
+pc
+Og
+Og
+Og
+pc
+tN
+Og
+Og
+tN
+"}
+(27,1,1) = {"
+tN
+tN
+tN
+tN
+tN
+tN
+Og
+Og
+Og
+Og
+Og
+Og
+Og
+pI
+oF
+Og
+Og
+Og
+Og
+Og
+bY
+Tc
+pc
+tN
+tN
+pI
+Og
+tN
+"}
+(28,1,1) = {"
+tN
+tN
+tN
+tN
+tN
+tN
+Og
+Og
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+tN
+Og
+Og
+tN
+tN
+tN
+tN
+Og
+Og
+tN
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm
new file mode 100644
index 0000000000..3672599cff
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm
@@ -0,0 +1,178 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/closed/wall/ice,
+/area/ruin/powered/bathhouse)
+"c" = (
+/obj/machinery/shower{
+ pixel_y = 16
+ },
+/obj/structure/curtain,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/bathhouse)
+"d" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/underground/explored)
+"e" = (
+/obj/structure/mirror{
+ pixel_y = 28
+ },
+/obj/structure/sink{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/bathhouse)
+"f" = (
+/obj/structure/table/greyscale,
+/obj/item/bikehorn/rubberducky,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/bathhouse)
+"g" = (
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/bathhouse)
+"h" = (
+/obj/item/soap,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/bathhouse)
+"i" = (
+/obj/machinery/door/airlock/freezer{
+ name = "bath house airlock"
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/bathhouse)
+"j" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/bathhouse)
+"k" = (
+/turf/open/floor/wood,
+/area/ruin/powered/bathhouse)
+"l" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/meatballspaghetti,
+/turf/open/floor/wood,
+/area/ruin/powered/bathhouse)
+"m" = (
+/obj/structure/bookcase/random,
+/turf/open/floor/wood,
+/area/ruin/powered/bathhouse)
+"n" = (
+/turf/open/floor/plating/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored)
+"o" = (
+/obj/structure/bed,
+/obj/item/bedsheet,
+/turf/open/floor/wood,
+/area/ruin/powered/bathhouse)
+
+(1,1,1) = {"
+b
+b
+b
+b
+b
+d
+a
+a
+"}
+(2,1,1) = {"
+b
+c
+g
+g
+b
+j
+j
+j
+"}
+(3,1,1) = {"
+b
+b
+g
+g
+i
+k
+k
+j
+"}
+(4,1,1) = {"
+b
+c
+g
+g
+b
+l
+k
+j
+"}
+(5,1,1) = {"
+b
+b
+g
+g
+b
+m
+o
+j
+"}
+(6,1,1) = {"
+b
+c
+g
+g
+b
+j
+j
+j
+"}
+(7,1,1) = {"
+b
+b
+g
+h
+b
+n
+n
+d
+"}
+(8,1,1) = {"
+b
+e
+g
+g
+b
+n
+n
+d
+"}
+(9,1,1) = {"
+b
+e
+g
+g
+i
+n
+n
+d
+"}
+(10,1,1) = {"
+b
+f
+g
+g
+b
+n
+d
+a
+"}
+(11,1,1) = {"
+b
+b
+b
+b
+b
+d
+a
+a
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm
new file mode 100644
index 0000000000..a7a97dfec9
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm
@@ -0,0 +1,1707 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/mineral/random/volcanic/more_caves,
+/area/icemoon/surface/outdoors/unexplored)
+"b" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/underground/explored)
+"y" = (
+/mob/living/simple_animal/hostile/megafauna/dragon{
+ desc = "Hunted to extinction, the icey moon of lavaland is the final resting place for these creatures.";
+ name = "the last ash drake"
+ },
+/turf/open/floor/mineral/gold,
+/area/icemoon/underground/explored)
+"B" = (
+/turf/closed/mineral/random/no_caves,
+/area/icemoon/surface/outdoors/unexplored)
+"P" = (
+/turf/open/floor/mineral/silver,
+/area/icemoon/underground/explored)
+"R" = (
+/turf/open/floor/mineral/gold,
+/area/icemoon/underground/explored)
+"T" = (
+/turf/closed/mineral/random/no_caves,
+/area/icemoon/underground/explored)
+
+(1,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(2,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(3,1,1) = {"
+b
+b
+b
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+b
+b
+b
+"}
+(4,1,1) = {"
+b
+b
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+b
+b
+"}
+(5,1,1) = {"
+b
+b
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+b
+b
+"}
+(6,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(7,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(8,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(9,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(10,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(11,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(12,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(13,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(14,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(15,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(16,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(17,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(18,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+T
+T
+T
+T
+T
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(19,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+R
+P
+P
+R
+T
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(20,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+P
+R
+R
+P
+T
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(21,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+P
+R
+y
+P
+T
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(22,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+R
+P
+P
+R
+T
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(23,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+T
+T
+T
+T
+T
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(24,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(25,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(26,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(27,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(28,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(29,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(30,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(31,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(32,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(33,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(34,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(35,1,1) = {"
+b
+b
+B
+B
+B
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+B
+B
+B
+B
+b
+b
+"}
+(36,1,1) = {"
+b
+b
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+b
+b
+"}
+(37,1,1) = {"
+b
+b
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+b
+b
+"}
+(38,1,1) = {"
+b
+b
+b
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+B
+b
+b
+b
+"}
+(39,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(40,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm
new file mode 100644
index 0000000000..479610b0b7
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm
@@ -0,0 +1,806 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/template_noop)
+"ab" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/documents/syndicate/mining,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"ac" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/unpowered/buried_library)
+"ad" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/underground/explored)
+"ae" = (
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"af" = (
+/obj/item/stack/sheet/mineral/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"ag" = (
+/obj/item/feather,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"ah" = (
+/obj/structure/bookcase/random,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"ai" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/paper/crumpled/fluff/stations/lavaland/library/diary2,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"ak" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"al" = (
+/turf/closed/wall/mineral/iron,
+/area/ruin/unpowered/buried_library)
+"am" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/book_of_babel,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"ao" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"ap" = (
+/obj/item/stack/sheet/mineral/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aq" = (
+/obj/structure/fluff/paper{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"ar" = (
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"as" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/paper/fluff/ruins/oldstation/protosing,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"at" = (
+/obj/structure/fluff/paper,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"av" = (
+/obj/structure/bookcase/random,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"aw" = (
+/turf/open/floor/plating,
+/area/ruin/unpowered/buried_library)
+"ax" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"ay" = (
+/obj/machinery/door/keycard/library,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"az" = (
+/obj/item/paper/crumpled/fluff/stations/lavaland/library/diary,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aA" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ruin/unpowered/buried_library)
+"aC" = (
+/obj/item/feather,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"aD" = (
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered/buried_library)
+"aE" = (
+/obj/item/stack/sheet/mineral/wood,
+/obj/item/book/manual/random,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aF" = (
+/obj/item/book/manual/random,
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"aG" = (
+/obj/structure/table/bronze,
+/obj/item/stack/ore/slag,
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered/buried_library)
+"aH" = (
+/obj/structure/table/bronze,
+/obj/item/statuebust,
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered/buried_library)
+"aI" = (
+/obj/effect/mob_spawn/human/skeleton,
+/obj/item/clothing/head/rice_hat,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"aJ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"aK" = (
+/obj/item/feather,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"aL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aM" = (
+/obj/item/stack/sheet/mineral/wood,
+/obj/item/book/manual/random,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"aN" = (
+/obj/structure/statue/sandstone/venus,
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered/buried_library)
+"aO" = (
+/mob/living/simple_animal/pet/fox,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aP" = (
+/obj/item/keycard/library,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"aQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aR" = (
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aS" = (
+/obj/structure/table/wood/fancy/black,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/paper/secretrecipe,
+/obj/item/flashlight/lantern/jade{
+ on = 1
+ },
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"aT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/fluff/paper,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aV" = (
+/obj/item/stack/sheet/mineral/wood,
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"aW" = (
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/plasteel/cult,
+/area/ruin/unpowered/buried_library)
+"aX" = (
+/obj/structure/table/bronze,
+/obj/item/statuebust,
+/turf/open/floor/plating,
+/area/ruin/unpowered/buried_library)
+"aY" = (
+/obj/structure/table_frame/wood,
+/turf/open/floor/plating,
+/area/ruin/unpowered/buried_library)
+"aZ" = (
+/obj/structure/fluff/paper/stack,
+/obj/structure/fluff/paper,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"ba" = (
+/obj/structure/barricade/wooden/snowed,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bc" = (
+/obj/item/feather,
+/obj/structure/fluff/paper,
+/obj/structure/fluff/paper{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"bd" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/fluff/paper{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"be" = (
+/obj/structure/fluff/paper{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"bf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/fluff/paper{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"bg" = (
+/obj/item/paper/fluff/ruins/oldstation/protogun,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bh" = (
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/pet/fox,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"bi" = (
+/obj/structure/fluff/paper,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bj" = (
+/obj/item/book/manual/random,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bk" = (
+/obj/structure/fluff/paper{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"bl" = (
+/obj/item/storage/box/fountainpens,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bm" = (
+/obj/structure/fluff/paper/stack,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bn" = (
+/obj/item/book/manual/random,
+/obj/item/stack/sheet/mineral/wood,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bo" = (
+/obj/item/stack/sheet/mineral/wood,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bp" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/fluff/paper,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bq" = (
+/obj/structure/mineral_door/wood,
+/obj/structure/barricade/wooden/crude/snow,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+"br" = (
+/obj/structure/girder,
+/turf/closed/mineral/random/snow/no_caves,
+/area/ruin/unpowered/buried_library)
+"bt" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/template_noop,
+/area/template_noop)
+"bu" = (
+/obj/item/stack/sheet/mineral/wood,
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/underground/explored)
+"bw" = (
+/turf/open/floor/wood,
+/area/icemoon/underground/explored)
+"by" = (
+/obj/item/statuebust,
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered/buried_library)
+"bz" = (
+/obj/item/flashlight/lantern/jade{
+ on = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/buried_library)
+"bA" = (
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/plating,
+/area/ruin/unpowered/buried_library)
+"bB" = (
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered/buried_library)
+"bC" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/fluff/paper{
+ dir = 1
+ },
+/mob/living/simple_animal/pet/fox,
+/turf/open/floor/wood,
+/area/ruin/unpowered/buried_library)
+
+(1,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+bt
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ak
+ak
+ak
+ak
+ak
+ac
+ba
+ac
+ac
+ac
+ad
+ad
+aa
+"}
+(3,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ak
+ak
+ak
+ak
+bo
+ak
+ak
+ak
+bm
+ae
+af
+bk
+ac
+ad
+ad
+aa
+"}
+(4,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ak
+ak
+aR
+ak
+ak
+ae
+bj
+av
+ak
+ah
+aL
+ah
+aT
+ac
+ad
+aa
+aa
+"}
+(5,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ak
+ak
+ak
+aC
+ae
+aQ
+ah
+ak
+av
+bg
+ah
+aT
+ah
+ak
+ac
+ad
+ad
+aa
+"}
+(6,1,1) = {"
+aa
+aa
+aa
+aa
+ad
+ac
+ak
+ae
+ak
+aM
+aO
+ah
+bm
+ah
+aA
+ah
+ao
+ah
+aq
+ac
+ad
+ad
+ad
+"}
+(7,1,1) = {"
+aa
+aa
+aa
+aa
+ad
+ac
+ak
+bm
+ak
+ao
+aR
+ao
+aA
+ao
+ae
+ah
+aZ
+ah
+bC
+ac
+ad
+ad
+ad
+"}
+(8,1,1) = {"
+aa
+aa
+aa
+aa
+ad
+ak
+ak
+av
+aA
+ak
+aG
+aD
+aX
+ak
+ao
+ae
+ao
+ah
+ae
+ac
+br
+ad
+ad
+"}
+(9,1,1) = {"
+aa
+aa
+aa
+aa
+ad
+ac
+as
+av
+aF
+aD
+aD
+bz
+aD
+bB
+ak
+ae
+ao
+ae
+ao
+ac
+ax
+bw
+ad
+"}
+(10,1,1) = {"
+aa
+aa
+aa
+ad
+ad
+ac
+ap
+ax
+ak
+aD
+aD
+aN
+ak
+aw
+ak
+ao
+af
+aR
+ae
+bq
+ae
+bu
+ad
+"}
+(11,1,1) = {"
+aa
+al
+al
+al
+al
+al
+ae
+ah
+aR
+aD
+ak
+aD
+aD
+by
+ao
+aw
+ao
+ae
+bm
+ac
+ae
+ad
+ad
+"}
+(12,1,1) = {"
+ad
+al
+ab
+aI
+ar
+al
+aR
+aE
+af
+aD
+aH
+bA
+aY
+aD
+ak
+ae
+bm
+ah
+ag
+br
+ac
+ad
+ad
+"}
+(13,1,1) = {"
+ad
+al
+am
+aJ
+aW
+ay
+ae
+ah
+ao
+ae
+ao
+ae
+af
+ax
+bi
+ah
+ak
+ah
+bp
+ac
+ad
+ad
+ad
+"}
+(14,1,1) = {"
+ad
+al
+aS
+aW
+aK
+al
+at
+ah
+ak
+ah
+bh
+ah
+az
+ah
+ak
+ah
+ak
+bn
+aT
+ac
+ad
+aa
+aa
+"}
+(15,1,1) = {"
+ad
+al
+al
+ai
+ar
+al
+bc
+ah
+aL
+ah
+aA
+ah
+ao
+ah
+ak
+ak
+bl
+ak
+ak
+ak
+ad
+aa
+aa
+"}
+(16,1,1) = {"
+ad
+ad
+al
+al
+al
+al
+bd
+ah
+ao
+ah
+ao
+aV
+ak
+ah
+ax
+ak
+bm
+bo
+ak
+br
+bu
+aa
+aa
+"}
+(17,1,1) = {"
+aa
+ad
+ad
+ad
+ad
+ac
+be
+bf
+ae
+aP
+ae
+aR
+ae
+ax
+ak
+bj
+ak
+ad
+ad
+ad
+aa
+aa
+aa
+"}
+(18,1,1) = {"
+aa
+aa
+aa
+aa
+ad
+ac
+ac
+ac
+ac
+ac
+ac
+ba
+ac
+ac
+br
+ad
+aa
+ad
+aa
+aa
+aa
+aa
+aa
+"}
+(19,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+ad
+ad
+ad
+ad
+aa
+ad
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm
new file mode 100644
index 0000000000..feaa46336e
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm
@@ -0,0 +1,818 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"c" = (
+/obj/structure/ladder,
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"d" = (
+/turf/template_noop,
+/area/template_noop)
+"f" = (
+/obj/item/flashlight/lantern{
+ on = 1
+ },
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"g" = (
+/obj/item/clothing/suit/hooded/explorer,
+/obj/effect/decal/cleanable/blood/gibs/up,
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"h" = (
+/obj/item/clothing/shoes/winterboots/ice_boots,
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"i" = (
+/obj/item/kitchen/knife/combat/survival,
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+"T" = (
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner,
+/turf/open/floor/plating/ice/icemoon,
+/area/icemoon/underground/explored)
+
+(1,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+"}
+(2,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+d
+d
+d
+"}
+(3,1,1) = {"
+d
+d
+d
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+d
+d
+"}
+(4,1,1) = {"
+d
+d
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+d
+"}
+(5,1,1) = {"
+d
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+"}
+(6,1,1) = {"
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+"}
+(7,1,1) = {"
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+"}
+(8,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+"}
+(9,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(10,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(11,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(12,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(13,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(14,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(15,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(16,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(17,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(18,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+c
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(19,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(20,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(21,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(22,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+"}
+(23,1,1) = {"
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+"}
+(24,1,1) = {"
+d
+d
+a
+a
+a
+a
+f
+i
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+"}
+(25,1,1) = {"
+d
+d
+d
+a
+a
+a
+a
+g
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+"}
+(26,1,1) = {"
+d
+d
+d
+d
+a
+a
+a
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+d
+"}
+(27,1,1) = {"
+d
+d
+d
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+d
+d
+"}
+(28,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+d
+d
+d
+d
+d
+d
+"}
+(29,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm
new file mode 100644
index 0000000000..79a4625aed
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm
@@ -0,0 +1,47 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/icemoon/underground/explored)
+"b" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"c" = (
+/obj/effect/sliding_puzzle/lavaland,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+b
+b
+b
+a
+"}
+(3,1,1) = {"
+a
+b
+c
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+b
+b
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm
new file mode 100644
index 0000000000..a383c2e8c4
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm
@@ -0,0 +1,1201 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/indestructible/rock/snow/ice/ore,
+/area/icemoon/underground/explored)
+"b" = (
+/turf/open/floor/plating/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored)
+"d" = (
+/turf/template_noop,
+/area/template_noop)
+"j" = (
+/obj/effect/mob_spawn/human/miner/explorer,
+/turf/open/floor/plating/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored)
+"q" = (
+/mob/living/simple_animal/hostile/megafauna/wendigo,
+/turf/open/indestructible/necropolis/ice,
+/area/icemoon/underground/explored)
+"z" = (
+/obj/effect/landmark/portal_exit{
+ id = "wendigo arena"
+ },
+/turf/open/indestructible/necropolis/ice,
+/area/icemoon/underground/explored)
+"K" = (
+/obj/effect/landmark/portal_exit{
+ id = "wendigo arena exit"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored)
+"N" = (
+/turf/open/indestructible/necropolis/ice,
+/area/icemoon/underground/explored)
+"U" = (
+/obj/item/paper/crumpled/bloody{
+ info = "for your own sake, do not enter"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored)
+"V" = (
+/obj/effect/portal/permanent/one_way{
+ id = "wendigo arena"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored)
+
+(1,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+"}
+(2,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+"}
+(3,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+d
+"}
+(4,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+"}
+(5,1,1) = {"
+d
+d
+d
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+d
+d
+d
+"}
+(6,1,1) = {"
+d
+d
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+d
+d
+"}
+(7,1,1) = {"
+d
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+d
+"}
+(8,1,1) = {"
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+"}
+(9,1,1) = {"
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+"}
+(10,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+a
+a
+b
+b
+d
+d
+"}
+(11,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+a
+b
+b
+d
+d
+"}
+(12,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+b
+b
+d
+d
+"}
+(13,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(14,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(15,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(16,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(17,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+j
+b
+d
+d
+"}
+(18,1,1) = {"
+d
+d
+b
+K
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+q
+N
+N
+N
+N
+N
+N
+N
+z
+a
+a
+a
+V
+U
+d
+d
+"}
+(19,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(20,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(21,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(22,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(23,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+b
+b
+d
+d
+"}
+(24,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+b
+b
+d
+d
+"}
+(25,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+a
+b
+b
+d
+d
+"}
+(26,1,1) = {"
+d
+d
+b
+b
+a
+a
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+a
+a
+b
+b
+d
+d
+"}
+(27,1,1) = {"
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+N
+N
+N
+N
+N
+N
+N
+N
+N
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+"}
+(28,1,1) = {"
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+"}
+(29,1,1) = {"
+d
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+d
+"}
+(30,1,1) = {"
+d
+d
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+d
+d
+"}
+(31,1,1) = {"
+d
+d
+d
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+d
+d
+d
+d
+d
+d
+"}
+(32,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+"}
+(33,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+d
+"}
+(34,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+"}
+(35,1,1) = {"
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_wrath.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_wrath.dmm
new file mode 100644
index 0000000000..e233afbfb2
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_wrath.dmm
@@ -0,0 +1,267 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"b" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/underground/explored)
+"e" = (
+/obj/structure/spawner/nether,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+
+(1,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(2,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(3,1,1) = {"
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(4,1,1) = {"
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+"}
+(5,1,1) = {"
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+"}
+(6,1,1) = {"
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+"}
+(7,1,1) = {"
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+"}
+(8,1,1) = {"
+b
+b
+a
+a
+a
+a
+a
+e
+a
+a
+a
+a
+a
+b
+b
+"}
+(9,1,1) = {"
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+"}
+(10,1,1) = {"
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+"}
+(11,1,1) = {"
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+"}
+(12,1,1) = {"
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+"}
+(13,1,1) = {"
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(14,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(15,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm
index 1ea3f19c62..862c745f81 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm
@@ -70,7 +70,7 @@
/obj/structure/alien/weeds,
/obj/item/clothing/mask/facehugger/impregnated,
/obj/item/clothing/glasses/night,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/effect/decal/cleanable/blood/old,
/obj/item/clothing/under/syndicate/tacticool,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
index 2ec5b88792..b22c9787ba 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
@@ -526,8 +526,8 @@
/obj/structure/closet/crate/secure/gear{
req_access_txt = "150"
},
-/obj/item/clothing/gloves/combat,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/tackler/combat/insulated,
+/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/under/syndicate/combat,
/obj/item/clothing/under/syndicate/combat,
/obj/item/storage/belt/military,
@@ -4197,7 +4197,7 @@
"kw" = (
/obj/structure/table,
/obj/effect/decal/cleanable/dirt,
-/obj/item/clothing/gloves/combat{
+/obj/item/clothing/gloves/tackler/combat/insulated{
pixel_y = -6
},
/obj/item/tank/internals/emergency_oxygen{
diff --git a/_maps/RandomRuins/SpaceRuins/advancedlab.dmm b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm
index 66a3d4e55d..b553bb5c97 100644
--- a/_maps/RandomRuins/SpaceRuins/advancedlab.dmm
+++ b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm
@@ -185,7 +185,7 @@
name = "Clothes"
},
/obj/item/clothing/head/chameleon,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/suit/chameleon,
/obj/item/clothing/under/chameleon,
/obj/item/clothing/shoes/chameleon,
@@ -221,7 +221,7 @@
},
/obj/item/clothing/under/rank/centcom/commander,
/obj/item/clothing/head/centhat,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/shoes/sneakers/brown,
/turf/open/floor/wood,
diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
index bf4f0dbfa6..a4c60023e8 100644
--- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
+++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
@@ -2202,11 +2202,11 @@
/area/ruin/space/has_grav/deepstorage/armory)
"eO" = (
/obj/structure/table,
-/obj/item/clothing/gloves/combat{
+/obj/item/clothing/gloves/tackler/combat/insulated{
pixel_x = -3;
pixel_y = 4
},
-/obj/item/clothing/gloves/combat{
+/obj/item/clothing/gloves/tackler/combat/insulated{
pixel_x = 3;
pixel_y = -2
},
diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm
index e820b06f61..89e2c553b9 100644
--- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm
+++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm
@@ -1651,7 +1651,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/ancientstation/rnd)
"eD" = (
-/obj/machinery/mecha_part_fabricator,
+/obj/machinery/mecha_part_fabricator/offstation,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/ancientstation/rnd)
@@ -2010,12 +2010,12 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/ancientstation/deltacorridor)
"fu" = (
-/obj/machinery/rnd/production/protolathe,
+/obj/machinery/rnd/production/protolathe/offstation,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/ancientstation/rnd)
"fv" = (
-/obj/machinery/rnd/production/circuit_imprinter,
+/obj/machinery/rnd/production/circuit_imprinter/offstation,
/obj/effect/decal/cleanable/dirt,
/obj/item/reagent_containers/dropper,
/turf/open/floor/plasteel/white,
diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm
index da0a0036c5..c842479db7 100644
--- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm
+++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm
@@ -6,7 +6,10 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/door/poddoor/shutters/radiation/preopen,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"ab" = (
@@ -16,28 +19,40 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/machinery/door/poddoor/shutters/radiation/preopen,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"ac" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/door/poddoor/shutters/radiation/preopen,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"ad" = (
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/machinery/door/poddoor/shutters/radiation/preopen,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"ae" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/machinery/door/poddoor/shutters/radiation/preopen,
+/obj/machinery/door/poddoor/shutters/radiation/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"af" = (
diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm
index e15eda336c..e9f314cd1a 100644
--- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm
+++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm
@@ -2718,7 +2718,7 @@ wt
av
kA
qo
-EL
+MP
MP
MP
Cb
diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm
index 37bc2a7dde..a9c5eab318 100644
--- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm
+++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm
@@ -103,10 +103,6 @@
/obj/structure/window/reinforced,
/turf/open/floor/plasteel,
/area/engine/engineering)
-"dw" = (
-/obj/structure/lattice/catwalk,
-/turf/open/space,
-/area/space/nearstation)
"dZ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -1170,7 +1166,8 @@
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
dir = 1
},
-/turf/open/floor/plating/airless,
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
/area/engine/engineering)
"Hp" = (
/obj/machinery/atmospherics/components/binary/pump{
@@ -1332,7 +1329,8 @@
/area/engine/engineering)
"LS" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/turf/open/floor/plating/airless,
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
/area/engine/engineering)
"Mf" = (
/obj/structure/closet/secure_closet/engineering_personal,
@@ -2629,7 +2627,7 @@ EN
fq
LS
Hn
-dw
+tw
yf
Rh
yf
@@ -2655,9 +2653,9 @@ XW
ST
Ok
MP
-dw
-dw
-dw
+tw
+tw
+tw
Rh
Rh
Rh
diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/away_mission/Academy.dmm
similarity index 99%
rename from _maps/RandomZLevels/Academy.dmm
rename to _maps/RandomZLevels/away_mission/Academy.dmm
index 6c7b57dade..de0b7cc430 100644
--- a/_maps/RandomZLevels/Academy.dmm
+++ b/_maps/RandomZLevels/away_mission/Academy.dmm
@@ -3598,6 +3598,9 @@
/turf/open/floor/carpet,
/area/awaymission/academy/academygate)
"km" = (
+/obj/machinery/gateway{
+ dir = 9
+ },
/obj/structure/cable{
icon_state = "1-4"
},
@@ -3635,16 +3638,25 @@
/turf/open/floor/plasteel,
/area/awaymission/academy/classrooms)
"kr" = (
+/obj/machinery/gateway{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"ks" = (
- /turf/open/floor/plating,
+/obj/machinery/gateway{
+ dir = 10
+ },
+/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"kt" = (
/obj/machinery/gateway,
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"ku" = (
+/obj/machinery/gateway{
+ dir = 6
+ },
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"kv" = (
@@ -3731,7 +3743,6 @@
/turf/open/floor/plasteel,
/area/awaymission/academy/academyaft)
"kI" = (
-/obj/machinery/gateway/away,
/obj/structure/cable,
/obj/machinery/gateway/centeraway{
calibrated = 1
@@ -4311,7 +4322,7 @@
/turf/open/floor/plating/asteroid/snow,
/area/awaymission/academy/academycellar)
"mV" = (
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/tackler/combat/insulated,
/turf/open/floor/plating/asteroid/snow,
/area/awaymission/academy/academycellar)
"mW" = (
@@ -12997,11 +13008,10 @@ jU
jZ
kb
ke
-ke
-kf
-kf
-kf
-ke
+kj
+km
+kp
+ks
kf
kf
ky
@@ -13129,10 +13139,9 @@ jY
kc
jW
kf
-kf
+kn
kI
-ke
-ke
+kt
kf
kf
ky
@@ -13260,9 +13269,9 @@ jY
kc
jW
kf
-kf
-kf
-kf
+ko
+kr
+ku
kf
kf
ky
diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/away_mission/Cabin.dmm
similarity index 100%
rename from _maps/RandomZLevels/Cabin.dmm
rename to _maps/RandomZLevels/away_mission/Cabin.dmm
diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/away_mission/TheBeach.dmm
similarity index 100%
rename from _maps/RandomZLevels/TheBeach.dmm
rename to _maps/RandomZLevels/away_mission/TheBeach.dmm
diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/away_mission/caves.dmm
similarity index 100%
rename from _maps/RandomZLevels/caves.dmm
rename to _maps/RandomZLevels/away_mission/caves.dmm
diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/away_mission/challenge.dmm
similarity index 100%
rename from _maps/RandomZLevels/challenge.dmm
rename to _maps/RandomZLevels/away_mission/challenge.dmm
diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm
similarity index 100%
rename from _maps/RandomZLevels/moonoutpost19.dmm
rename to _maps/RandomZLevels/away_mission/moonoutpost19.dmm
diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/away_mission/research.dmm
similarity index 100%
rename from _maps/RandomZLevels/research.dmm
rename to _maps/RandomZLevels/away_mission/research.dmm
diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/away_mission/snowdin.dmm
similarity index 100%
rename from _maps/RandomZLevels/snowdin.dmm
rename to _maps/RandomZLevels/away_mission/snowdin.dmm
diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/away_mission/spacebattle.dmm
similarity index 99%
rename from _maps/RandomZLevels/spacebattle.dmm
rename to _maps/RandomZLevels/away_mission/spacebattle.dmm
index 025bcc20b0..ca44e7d7b7 100644
--- a/_maps/RandomZLevels/spacebattle.dmm
+++ b/_maps/RandomZLevels/away_mission/spacebattle.dmm
@@ -243,7 +243,7 @@
/area/awaymission/spacebattle/syndicate1)
"bg" = (
/obj/structure/table/reinforced,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/tackler/combat/insulated,
/turf/open/floor/mineral/plastitanium/red,
/area/awaymission/spacebattle/syndicate1)
"bh" = (
@@ -978,6 +978,24 @@
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
+"ec" = (
+/obj/machinery/gateway{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
+"ed" = (
+/obj/machinery/gateway{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
+"ee" = (
+/obj/machinery/gateway{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
"ef" = (
/mob/living/simple_animal/hostile/syndicate/melee/spacebattle,
/turf/open/floor/mineral/plastitanium/red,
@@ -1015,12 +1033,24 @@
"el" = (
/turf/open/floor/engine,
/area/awaymission/spacebattle/cruiser)
+"em" = (
+/obj/machinery/gateway{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
"en" = (
-/obj/machinery/gateway/away{
+/obj/machinery/gateway/centeraway{
calibrated = 0
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
+"eo" = (
+/obj/machinery/gateway{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
"ep" = (
/obj/structure/chair{
dir = 1
@@ -1034,6 +1064,22 @@
"er" = (
/turf/closed/wall/mineral/plastitanium,
/area/awaymission/spacebattle/syndicate4)
+"et" = (
+/obj/machinery/gateway{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
+"eu" = (
+/obj/machinery/gateway,
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
+"ev" = (
+/obj/machinery/gateway{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/awaymission/spacebattle/cruiser)
"ew" = (
/obj/structure/chair,
/turf/open/floor/mineral/plastitanium/red,
@@ -26892,9 +26938,9 @@ cc
cc
bT
cK
-cK
-cK
-cK
+ec
+em
+et
cK
cK
cK
@@ -27149,9 +27195,9 @@ cA
cc
bT
cK
-cK
+ed
en
-cK
+eu
cK
cK
cK
@@ -27406,9 +27452,9 @@ cc
cc
bT
cK
-cK
-cK
-cK
+ee
+eo
+ev
cK
jF
fb
diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm
similarity index 100%
rename from _maps/RandomZLevels/undergroundoutpost45.dmm
rename to _maps/RandomZLevels/away_mission/undergroundoutpost45.dmm
diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/away_mission/wildwest.dmm
similarity index 100%
rename from _maps/RandomZLevels/wildwest.dmm
rename to _maps/RandomZLevels/away_mission/wildwest.dmm
diff --git a/_maps/icebox.json b/_maps/icebox.json
new file mode 100644
index 0000000000..89777d0a6b
--- /dev/null
+++ b/_maps/icebox.json
@@ -0,0 +1,49 @@
+{
+ "map_name":"Ice Box Station",
+ "map_path":"map_files/IceBoxStation",
+ "map_file":[
+ "IcemoonUnderground_Below.dmm",
+ "IcemoonUnderground_Above.dmm",
+ "IceBoxStation.dmm"
+ ],
+ "station_ruin_budget":0,
+ "space_ruin_levels":0,
+ "space_empty_levels":0,
+ "shuttles":{
+ "cargo":"cargo_box",
+ "ferry":"ferry_fancy",
+ "whiteship":"whiteship_box",
+ "emergency":"emergency_box"
+ },
+ "traits":[
+ {
+ "Up":1,
+ "Mining":true,
+ "Station":false,
+ "Linkage":null,
+ "Gravity":true,
+ "Ice Ruins Underground":true,
+ "Baseturf":"/turf/open/lava/plasma/ice_moon"
+ },
+ {
+ "Down":-1,
+ "Up":1,
+ "Mining":true,
+ "Station":false,
+ "Linkage":null,
+ "Gravity":true,
+ "Ice Ruins Underground":true,
+ "Baseturf":"/turf/open/openspace/icemoon"
+ },
+ {
+ "Down":-1,
+ "Mining":true,
+ "Linkage":null,
+ "Gravity":true,
+ "Ice Ruins":true,
+ "Weather_Snowstorm":true,
+ "Baseturf":"/turf/open/floor/plating/asteroid/snow/icemoon"
+ }
+ ],
+ "minetype":"none"
+}
diff --git a/_maps/iceboxstation.dm b/_maps/iceboxstation.dm
new file mode 100644
index 0000000000..10928bd8a5
--- /dev/null
+++ b/_maps/iceboxstation.dm
@@ -0,0 +1 @@
+#define FORCE_MAP "_maps/icebox.json"
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index a0244ae4d1..4baab1e31a 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -3098,7 +3098,9 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"agd" = (
-/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"age" = (
@@ -5789,6 +5791,12 @@
/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/security/brig)
+"akE" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/yellowsiding{
+ dir = 1
+ },
+/area/crew_quarters/fitness/pool)
"akF" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red,
@@ -5804,6 +5812,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/security/processing)
+"akH" = (
+/obj/machinery/holopad,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"akI" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -5823,6 +5835,10 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/security/brig)
+"akK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/engine,
+/area/science/xenobiology)
"akL" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/meter,
@@ -5856,6 +5872,10 @@
},
/turf/open/floor/plasteel,
/area/security/main)
+"akP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/xenobiology)
"akQ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -5905,6 +5925,31 @@
/obj/machinery/holopad,
/turf/open/floor/plasteel,
/area/security/brig)
+"akV" = (
+/obj/machinery/door/window/southleft{
+ dir = 1;
+ name = "Test Chamber";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"akW" = (
+/obj/machinery/door/window/southleft{
+ name = "Test Chamber";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
"akX" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -5994,6 +6039,10 @@
},
/turf/open/floor/plasteel,
/area/security/courtroom)
+"alf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"alg" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -6050,6 +6099,28 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"alm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"aln" = (
+/obj/effect/landmark/start/scientist,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"alo" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -6076,6 +6147,21 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/dark,
/area/security/warden)
+"alr" = (
+/obj/machinery/computer/camera_advanced/xenobio{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
"als" = (
/obj/machinery/door_timer{
id = "Cell 3";
@@ -6159,6 +6245,29 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"alx" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_y = 4
+ },
+/obj/item/folder/white{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_x = -4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
"aly" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6345,13 +6454,27 @@
"alU" = (
/turf/closed/wall,
/area/maintenance/port/fore)
-"alX" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+"alV" = (
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"alW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"alY" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6422,6 +6545,31 @@
},
/turf/open/floor/plasteel/dark,
/area/security/warden)
+"amh" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"ami" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"amj" = (
/obj/machinery/door_timer{
id = "Cell 2";
@@ -6442,6 +6590,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/security/brig)
+"aml" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
"amm" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -6464,6 +6618,12 @@
},
/turf/open/floor/plating,
/area/security/brig)
+"amo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
"amp" = (
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -6591,6 +6751,41 @@
/obj/item/coin/diamond,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"amG" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amH" = (
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
"amI" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -6663,6 +6858,31 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/security/brig)
+"amP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"amQ" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
"amR" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -6683,6 +6903,24 @@
},
/turf/closed/wall/r_wall,
/area/security/brig)
+"amT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio8";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
"amU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
@@ -6818,6 +7056,23 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"ano" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"anp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"anq" = (
/obj/structure/chair{
dir = 8
@@ -6869,6 +7124,14 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
+"anx" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"any" = (
/obj/effect/landmark/event_spawn,
/obj/structure/cable{
@@ -7002,6 +7265,17 @@
/obj/item/bedsheet/blue,
/turf/open/floor/plasteel,
/area/security/brig)
+"anN" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"anO" = (
/obj/docking_port/stationary{
dir = 8;
@@ -7190,6 +7464,33 @@
/obj/item/circuitboard/machine/monkey_recycler,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"aop" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/mob/living/simple_animal/slime,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aoq" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
"aor" = (
/obj/structure/table,
/obj/item/restraints/handcuffs,
@@ -7200,6 +7501,24 @@
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
+"aos" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
"aot" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -7469,12 +7788,19 @@
/turf/open/floor/plating,
/area/security/warden)
"apa" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"apb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/mob/living/simple_animal/slime,
+/turf/open/floor/engine,
+/area/science/xenobiology)
"apc" = (
/obj/structure/chair/office/dark,
/turf/open/floor/plasteel/showroomfloor,
@@ -7632,6 +7958,26 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
+"apw" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
"apx" = (
/obj/machinery/door/airlock/atmos/abandoned{
name = "Atmospherics Maintenance";
@@ -7700,7 +8046,9 @@
/area/maintenance/starboard/fore)
"apF" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 5
+ },
/turf/open/floor/plating,
/area/engine/atmos)
"apG" = (
@@ -7729,13 +8077,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
-"apI" = (
-/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{
- dir = 1
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space,
-/area/engine/atmos)
"apJ" = (
/turf/closed/wall,
/area/construction/mining/aux_base)
@@ -8135,6 +8476,24 @@
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"aqB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
"aqC" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -8179,6 +8538,14 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
+"aqG" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"aqH" = (
/obj/machinery/light{
dir = 1;
@@ -8267,6 +8634,11 @@
"aqR" = (
/turf/open/floor/plating,
/area/maintenance/fore)
+"aqS" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"aqT" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -8444,6 +8816,14 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"ars" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
"art" = (
/obj/machinery/light/small{
dir = 1
@@ -8918,6 +9298,12 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
+"asr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/science/xenobiology)
"ass" = (
/obj/machinery/door/airlock/security/glass{
name = "Labor Camp Shuttle Airlock"
@@ -8984,6 +9370,13 @@
"asB" = (
/turf/closed/wall,
/area/maintenance/department/electrical)
+"asC" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/science/xenobiology)
"asD" = (
/obj/structure/table/wood,
/mob/living/simple_animal/pet/fox/Renault,
@@ -36820,21 +37213,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/engine,
/area/science/xenobiology)
-"bJL" = (
-/obj/machinery/door/window/southleft{
- dir = 1;
- name = "Test Chamber";
- req_access_txt = "55"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "misclab";
- name = "test chamber blast door"
- },
-/turf/open/floor/engine,
-/area/science/xenobiology)
"bJM" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -37423,14 +37801,6 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"bLa" = (
-/obj/machinery/door/window/southleft{
- name = "Test Chamber";
- req_access_txt = "55"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
"bLb" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -37678,33 +38048,38 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/turf/open/floor/plasteel/checker,
+/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bLI" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bLJ" = (
-/obj/machinery/portable_atmospherics/canister/air,
-/obj/effect/turf_decal/bot,
+/obj/machinery/computer/atmos_control,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bLK" = (
/turf/closed/wall/r_wall,
/area/engine/atmos)
"bLL" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/effect/turf_decal/bot,
+/obj/machinery/computer/station_alert,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bLM" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/effect/turf_decal/bot,
+/obj/machinery/computer/atmos_alert,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bLN" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/effect/turf_decal/bot,
+/obj/machinery/button/door{
+ id = "atmos";
+ name = "Atmospherics Lockdown";
+ pixel_x = 24;
+ pixel_y = 4;
+ req_access_txt = "24"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bLO" = (
@@ -38069,25 +38444,11 @@
/turf/closed/wall,
/area/engine/atmos)
"bML" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bMM" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8
- },
-/obj/machinery/airalarm{
- pixel_y = 23
- },
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMN" = (
-/obj/machinery/atmospherics/components/trinary/filter{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/thermomachine/heater,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMO" = (
@@ -38156,16 +38517,8 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bMY" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/engine/atmos)
"bMZ" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 6
- },
+/obj/machinery/atmospherics/components/unary/thermomachine/heater/on,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNb" = (
@@ -38445,18 +38798,20 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/effect/turf_decal/tile/yellow{
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area{
dir = 8
},
-/turf/open/floor/plasteel/dark/corner,
+/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bNP" = (
/obj/structure/disposalpipe/segment{
- dir = 6
+ dir = 4
},
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = -30
+/obj/effect/turf_decal/loading_area{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -38471,9 +38826,6 @@
/obj/structure/disposalpipe/trunk{
dir = 8
},
-/obj/machinery/airalarm{
- pixel_y = 23
- },
/obj/machinery/camera{
c_tag = "Atmospherics Monitoring"
},
@@ -38500,6 +38852,9 @@
/obj/machinery/light{
dir = 8
},
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNU" = (
@@ -38539,17 +38894,11 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
/area/science/misc_lab)
-"bOa" = (
+"bOb" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bOb" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOc" = (
@@ -38557,6 +38906,9 @@
dir = 1;
name = "Mix to Distro"
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOd" = (
@@ -38576,16 +38928,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
-"bOg" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Mix to Incinerator"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bOh" = (
/obj/structure/grille,
/turf/closed/wall/r_wall,
@@ -38887,15 +39229,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/virology)
-"bOQ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/loading_area{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"bOR" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -38903,15 +39236,9 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bOS" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
},
-/obj/effect/turf_decal/loading_area{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOT" = (
@@ -38947,9 +39274,6 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOW" = (
-/obj/machinery/computer/atmos_control{
- dir = 8
- },
/obj/machinery/requests_console{
department = "Atmospherics";
departmentType = 4;
@@ -38959,8 +39283,8 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
+/obj/machinery/computer/atmos_control{
+ dir = 8
},
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
@@ -39009,53 +39333,54 @@
/turf/open/floor/plasteel/white,
/area/science/circuit)
"bPc" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Mix to Waste"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPd" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bPd" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- name = "Waste In"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bPe" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Pure to Ports"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPf" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Air to Mix"
- },
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPg" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Mix Outlet Pump"
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPh" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
"bPi" = (
/obj/machinery/light{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
/obj/effect/turf_decal/tile/green{
dir = 1
},
@@ -39063,6 +39388,9 @@
/obj/effect/turf_decal/tile/green{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPj" = (
@@ -39178,14 +39506,6 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"bPy" = (
-/obj/effect/landmark/start/scientist,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/chair/comfy/black,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"bPz" = (
/obj/structure/table/glass,
/obj/item/storage/box/beakers{
@@ -39221,41 +39541,6 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"bPB" = (
-/obj/structure/table/glass,
-/obj/item/paper_bin{
- pixel_y = 4
- },
-/obj/item/folder/white{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_x = -4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
-"bPC" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
-"bPD" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"bPE" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -39478,20 +39763,15 @@
},
/turf/open/floor/plasteel,
/area/security/checkpoint/engineering)
-"bQf" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel/checker,
-/area/hallway/primary/aft)
"bQg" = (
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bQh" = (
-/obj/structure/tank_dispenser{
- pixel_x = -1
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/landmark/start/atmospheric_technician,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQi" = (
@@ -39515,15 +39795,15 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQl" = (
-/obj/machinery/computer/atmos_control{
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/computer/atmos_alert{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
"bQm" = (
@@ -39536,15 +39816,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/spawner/structure/window,
-/turf/open/floor/plating,
-/area/engine/atmos)
-"bQo" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/engine/atmos)
"bQp" = (
/obj/structure/cable{
@@ -39575,14 +39852,11 @@
},
/turf/open/floor/plasteel,
/area/security/checkpoint/engineering)
-"bQr" = (
-/obj/structure/closet/crate,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bQs" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
- name = "Mix to Filter"
+ name = "Air to Waste"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -39592,20 +39866,9 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bQu" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bQv" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bQw" = (
-/obj/machinery/atmospherics/pipe/manifold/green/visible{
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
/turf/open/floor/plasteel,
@@ -39629,6 +39892,9 @@
/obj/effect/turf_decal/tile/green{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQA" = (
@@ -39698,18 +39964,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/tcommsat/computer)
-"bQL" = (
-/obj/machinery/door/firedoor,
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"bQM" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/line{
@@ -39918,14 +40172,15 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/turf/open/floor/plasteel/dark/corner,
+/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bRr" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/landmark/start/atmospheric_technician,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/tank_dispenser,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRs" = (
@@ -39948,12 +40203,12 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRu" = (
-/obj/machinery/computer/atmos_alert{
- dir = 8
- },
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/computer/atmos_alert{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
"bRv" = (
@@ -39967,25 +40222,20 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRw" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
+/obj/effect/turf_decal/bot,
/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRx" = (
-/obj/effect/spawner/structure/window,
-/turf/open/floor/plating,
-/area/engine/atmos)
-"bRy" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bRz" = (
-/obj/machinery/atmospherics/components/trinary/mixer{
- dir = 8
+"bRy" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -39996,12 +40246,13 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 6
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Waste to Filter"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRC" = (
@@ -40029,18 +40280,8 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRF" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 9
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bRG" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "Unfiltered to Mix"
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Mix to Ports"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -40059,23 +40300,25 @@
/turf/open/floor/plating,
/area/engine/atmos)
"bRJ" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Unfiltered & Air to Mix"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
},
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 4
},
-/obj/effect/turf_decal/tile/green{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRK" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
},
+/obj/structure/lattice,
/turf/open/space,
/area/space/nearstation)
"bRL" = (
@@ -40177,16 +40420,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/engine,
/area/science/xenobiology)
-"bRX" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"bRY" = (
/obj/structure/window/reinforced,
/obj/structure/table/reinforced,
@@ -40371,27 +40604,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"bSB" = (
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -24
- },
-/obj/structure/table,
-/obj/item/tank/internals/emergency_oxygen{
- pixel_x = -8
- },
-/obj/item/tank/internals/emergency_oxygen{
- pixel_x = -8
- },
-/obj/item/clothing/mask/breath{
- pixel_x = 4
- },
-/obj/item/clothing/mask/breath{
- pixel_x = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bSC" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -40401,114 +40613,38 @@
/turf/open/floor/plating,
/area/engine/atmos)
"bSD" = (
-/obj/structure/sign/plaques/atmos{
- pixel_y = -32
- },
-/obj/structure/table,
-/obj/item/storage/box,
-/obj/item/storage/box,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bSE" = (
-/obj/machinery/computer/station_alert{
- dir = 8
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/button/door{
- id = "atmos";
- name = "Atmospherics Lockdown";
- pixel_x = 24;
- pixel_y = 4;
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring";
req_access_txt = "24"
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner,
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bSF" = (
-/obj/structure/table,
-/obj/item/clothing/head/welding{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/clothing/head/welding{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/item/multitool,
-/obj/item/clothing/glasses/welding,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bSG" = (
-/obj/structure/table,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/sheet/metal/fifty{
- pixel_x = 2;
- pixel_y = 2
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bSH" = (
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/storage/belt/utility,
-/obj/item/t_scanner,
-/obj/item/t_scanner,
-/obj/item/t_scanner,
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSI" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bSJ" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/engine/atmos)
-"bSK" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 6
},
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bSM" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/engine/atmos)
-"bSN" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
},
-/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
"bSP" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 4
- },
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plating,
/area/engine/atmos)
"bSQ" = (
@@ -40605,71 +40741,6 @@
/obj/machinery/vending/medical,
/turf/open/floor/plasteel/white,
/area/medical/virology)
-"bTa" = (
-/obj/machinery/door/window/northleft{
- dir = 4;
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
-"bTb" = (
-/obj/machinery/door/window/northleft{
- base_state = "right";
- dir = 8;
- icon_state = "right";
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "xenobio3";
- name = "containment blast door"
- },
-/turf/open/floor/engine,
-/area/science/xenobiology)
-"bTc" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
-"bTd" = (
-/obj/machinery/door/window/northleft{
- base_state = "right";
- dir = 8;
- icon_state = "right";
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
-"bTe" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/window/northleft{
- dir = 4;
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "xenobio8";
- name = "containment blast door"
- },
-/turf/open/floor/engine,
-/area/science/xenobiology)
"bTf" = (
/obj/structure/rack,
/obj/item/wrench,
@@ -40912,16 +40983,23 @@
/area/engine/atmos)
"bTM" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/closed/wall,
-/area/engine/atmos)
-"bTN" = (
-/obj/machinery/door/firedoor/heavy,
-/obj/machinery/door/airlock/atmos/glass{
- name = "Atmospherics Monitoring";
- req_access_txt = "24"
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"bTN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/atmos)
"bTO" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 6
@@ -40934,30 +41012,11 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bTQ" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTR" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 4
- },
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTS" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 6
- },
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bTT" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 8
},
+/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTU" = (
@@ -40969,11 +41028,12 @@
"bTV" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
- name = "N2O Outlet Pump"
+ name = "N2O to Pure"
},
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
"bTW" = (
@@ -41057,16 +41117,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/engine,
/area/science/xenobiology)
-"bUf" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"bUg" = (
/obj/structure/window/reinforced{
dir = 1
@@ -41163,7 +41213,7 @@
/area/science/circuit)
"bUr" = (
/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
dir = 10
},
/turf/open/space,
@@ -41306,6 +41356,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/effect/decal/cleanable/oil{
+ icon_state = "floor5"
+ },
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
"bUJ" = (
@@ -41336,31 +41389,22 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+ dir = 9
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUN" = (
-/obj/item/beacon,
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUO" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Mix to Port"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUP" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Air to Port"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUQ" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Pure to Port"
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -41379,11 +41423,14 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/white/corner,
/area/engine/atmos)
"bUU" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/machinery/atmospherics/miner/n2o,
+/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bUV" = (
@@ -41394,6 +41441,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bUY" = (
@@ -41743,6 +41791,10 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/suit_storage_unit/atmos,
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
"bVS" = (
@@ -41759,17 +41811,10 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bVU" = (
-/obj/structure/reagent_dispensers/watertank/high,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bVV" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bVW" = (
@@ -41789,32 +41834,16 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bVY" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible,
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bVZ" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bWa" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bWb" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
- dir = 1
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Ports to External"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bWc" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
+ dir = 1
},
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -42098,21 +42127,21 @@
},
/area/engine/atmos)
"bWN" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
},
-/obj/machinery/door/poddoor/preopen{
- id = "atmos";
- name = "Atmospherics Blast Door"
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bWO" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+/turf/open/floor/plasteel/dark/corner{
dir = 1
},
-/obj/machinery/meter,
+/area/engine/atmos)
+"bWO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
/turf/closed/wall/r_wall,
/area/engine/atmos)
"bWP" = (
@@ -42136,42 +42165,15 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bWS" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = 27
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics West";
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bWT" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = -27
- },
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Air to Port"
- },
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bWU" = (
/obj/machinery/light{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Mix to Engine"
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bWV" = (
@@ -42258,42 +42260,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/virology)
-"bXe" = (
-/mob/living/simple_animal/slime,
-/turf/open/floor/engine,
-/area/science/xenobiology)
-"bXf" = (
-/obj/machinery/door/window/northleft{
- base_state = "right";
- dir = 8;
- icon_state = "right";
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "xenobio2";
- name = "containment blast door"
- },
-/turf/open/floor/engine,
-/area/science/xenobiology)
-"bXg" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/window/northleft{
- dir = 4;
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "xenobio7";
- name = "containment blast door"
- },
-/turf/open/floor/engine,
-/area/science/xenobiology)
"bXh" = (
/obj/structure/filingcabinet/chestdrawer,
/turf/open/floor/plasteel,
@@ -42521,23 +42487,10 @@
},
/area/engine/atmos)
"bXK" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 9
- },
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
/turf/closed/wall/r_wall,
/area/engine/atmos)
-"bXL" = (
-/obj/structure/sign/warning/securearea,
-/turf/closed/wall/r_wall,
-/area/engine/atmos)
-"bXM" = (
-/obj/machinery/door/firedoor/heavy,
-/obj/machinery/door/airlock/atmos{
- name = "Atmospherics";
- req_access_txt = "24"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bXN" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -42577,29 +42530,7 @@
/obj/structure/fireaxecabinet{
pixel_x = -32
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXR" = (
-/obj/structure/closet/secure_closet/atmospherics,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/item/cartridge/atmos,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXS" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
-/obj/machinery/portable_atmospherics/canister,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXT" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8
- },
-/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXU" = (
@@ -42615,11 +42546,19 @@
},
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
- name = "Plasma Outlet Pump"
+ name = "Plasma to Pure"
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/effect/turf_decal/stripes/line{
dir = 5
},
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXW" = (
@@ -42921,31 +42860,19 @@
/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"bYJ" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
- },
-/area/engine/break_room)
-"bYK" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel/checker,
-/area/engine/break_room)
"bYL" = (
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
-/area/engine/break_room)
+/area/engine/atmos)
"bYM" = (
/obj/machinery/airalarm{
dir = 1;
@@ -42963,9 +42890,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"bYN" = (
-/turf/closed/wall,
-/area/security/checkpoint/engineering)
"bYO" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -42977,35 +42901,27 @@
/turf/closed/wall,
/area/crew_quarters/bar)
"bYQ" = (
-/obj/machinery/suit_storage_unit/atmos,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bYR" = (
-/obj/structure/sign/warning/nosmoking,
-/turf/closed/wall,
-/area/engine/atmos)
-"bYS" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/engine/atmos)
"bYT" = (
/obj/machinery/computer/atmos_control/tank/toxin_tank{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
/obj/effect/turf_decal/stripes/line{
dir = 4
},
+/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bYU" = (
-/obj/machinery/portable_atmospherics/canister/toxins,
-/obj/machinery/atmospherics/miner/toxins,
+/obj/effect/turf_decal/vg_decals/atmos/plasma,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bYV" = (
@@ -43016,6 +42932,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bYX" = (
@@ -43299,42 +43216,29 @@
/obj/structure/cable{
icon_state = "0-4"
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bZG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/structure/cable{
icon_state = "1-8"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bZH" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
-/obj/item/wrench,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bZI" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bZJ" = (
+"bZK" = (
/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bZK" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/stripes/line{
dir = 6
},
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bZL" = (
@@ -43717,57 +43621,9 @@
},
/turf/closed/wall/r_wall,
/area/security/checkpoint/engineering)
-"caE" = (
-/obj/machinery/requests_console{
- department = "Atmospherics";
- departmentType = 4;
- name = "Atmos RC";
- pixel_x = 30
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"caF" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics Central";
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Port to Filter"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"caG" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/heater{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"caH" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
-/obj/structure/chair/stool,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"caI" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/aft)
"caJ" = (
/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 5
- },
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/space,
/area/space/nearstation)
"caK" = (
@@ -43892,38 +43748,6 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
-"caV" = (
-/obj/machinery/door/window/northleft{
- base_state = "right";
- dir = 8;
- icon_state = "right";
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "xenobio1";
- name = "containment blast door"
- },
-/turf/open/floor/engine,
-/area/science/xenobiology)
-"caW" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/window/northleft{
- dir = 4;
- name = "Containment Pen";
- req_access_txt = "55"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "xenobio6";
- name = "containment blast door"
- },
-/turf/open/floor/engine,
-/area/science/xenobiology)
"caX" = (
/obj/machinery/sparker{
id = "testigniter";
@@ -44207,42 +44031,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"cbB" = (
-/obj/machinery/space_heater,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cbC" = (
-/obj/machinery/space_heater,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cbD" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Port to Filter"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cbE" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cbF" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible,
-/obj/item/cigbutt,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"cbG" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
- name = "CO2 Outlet Pump"
+ name = "CO2 to Pure"
},
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -44251,6 +44043,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cbH" = (
@@ -44266,9 +44059,6 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 10
- },
/turf/open/floor/plating,
/area/maintenance/aft)
"cbK" = (
@@ -44351,13 +44141,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/engine,
/area/science/xenobiology)
-"cbT" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"cbU" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -44619,24 +44402,12 @@
dir = 4;
pixel_x = -24
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"ccw" = (
/turf/closed/wall/r_wall,
/area/engine/engineering)
-"ccx" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
- dir = 1
- },
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"ccy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"ccz" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 4;
@@ -44652,11 +44423,11 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"ccB" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/obj/machinery/atmospherics/miner/carbon_dioxide,
+/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"ccC" = (
@@ -44667,6 +44438,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"ccE" = (
@@ -44761,10 +44533,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"ccP" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"ccQ" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -44977,52 +44745,24 @@
dir = 4;
pixel_x = -22
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cdx" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"cdy" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cdz" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "O2 to Pure"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cdA" = (
-/obj/machinery/atmospherics/components/trinary/mixer/airmix{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cdB" = (
+"cdC" = (
/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cdC" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cdD" = (
@@ -45035,9 +44775,6 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
/turf/open/floor/plating,
/area/maintenance/aft)
"cdF" = (
@@ -45364,6 +45101,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cey" = (
@@ -45387,26 +45125,19 @@
/obj/machinery/light{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"ceC" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/turf/open/floor/plating,
-/area/maintenance/aft)
"ceD" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
- },
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/maintenance/aft)
"ceE" = (
@@ -45414,6 +45145,9 @@
pixel_y = -32
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/maintenance/aft)
"ceF" = (
@@ -45616,21 +45350,29 @@
/turf/open/floor/plasteel,
/area/engine/break_room)
"cfi" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cfj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
"cfk" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/airlock/atmos{
name = "Turbine Access";
req_access_txt = "32"
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
"cfl" = (
@@ -45845,17 +45587,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cfN" = (
-/obj/machinery/portable_atmospherics/scrubber,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cfO" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/portable_atmospherics/pump,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"cfP" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
+/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{
dir = 4
},
/turf/open/floor/plasteel,
@@ -45867,22 +45600,11 @@
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"cfR" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"cfT" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 9
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"cfU" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
"cfW" = (
@@ -45892,7 +45614,6 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plating,
/area/maintenance/aft)
"cfX" = (
@@ -45902,7 +45623,9 @@
pixel_y = -24
},
/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
/turf/open/floor/plating,
/area/maintenance/aft)
"cfY" = (
@@ -45912,14 +45635,15 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
"cfZ" = (
/obj/machinery/light_switch{
pixel_y = 26
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cga" = (
@@ -46258,11 +45982,12 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cgW" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/portable_atmospherics/pump,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -46270,11 +45995,17 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cgX" = (
/obj/machinery/light,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cgY" = (
@@ -46289,6 +46020,9 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cgZ" = (
@@ -46299,17 +46033,22 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cha" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
+/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
+ dir = 4
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"chb" = (
@@ -46324,6 +46063,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"chc" = (
@@ -46333,6 +46075,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
/turf/open/floor/plasteel/white/corner,
/area/engine/atmos)
"chd" = (
@@ -46340,6 +46085,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
"che" = (
@@ -46393,15 +46141,17 @@
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"chk" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
"chl" = (
/obj/machinery/light{
dir = 1
},
-/obj/machinery/atmospherics/components/binary/pump{
- name = "atmospherics mix pump"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
@@ -46416,16 +46166,13 @@
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
"chn" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cho" = (
@@ -46466,13 +46213,6 @@
/obj/machinery/atmospherics/pipe/manifold/general/visible,
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
-"cht" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"chu" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
@@ -46842,13 +46582,16 @@
/turf/closed/wall/r_wall,
/area/engine/atmos)
"ciu" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold,
/turf/open/floor/plating,
/area/engine/atmos)
"civ" = (
/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/engine/atmos)
"cix" = (
@@ -46883,12 +46626,15 @@
/obj/effect/decal/cleanable/cobweb,
/obj/structure/reagent_dispensers/watertank,
/obj/item/extinguisher,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"ciC" = (
/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 5
},
/turf/open/space,
/area/space/nearstation)
@@ -47219,35 +46965,16 @@
/turf/open/floor/plasteel,
/area/construction)
"cjp" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
/obj/structure/reagent_dispensers/fueltank,
/obj/item/storage/toolbox/emergency,
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
-"cjq" = (
-/obj/machinery/atmospherics/components/binary/valve{
- name = "Mix to Space"
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cjr" = (
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
-"cjs" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
-"cjt" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
"cju" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 1;
@@ -47256,9 +46983,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cjv" = (
@@ -47268,10 +46992,6 @@
/obj/structure/disposalpipe/segment{
dir = 5
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cjw" = (
@@ -47284,9 +47004,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
"cjy" = (
@@ -47551,30 +47269,27 @@
/area/engine/atmos)
"cke" = (
/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"ckf" = (
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
"ckg" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
-/obj/machinery/meter,
+/obj/machinery/atmospherics/components/binary/valve,
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"ckh" = (
/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Mix to MiniSat"
- },
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
-"cki" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
+ dir = 4;
+ name = "atmospherics mix pump"
},
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
@@ -47585,17 +47300,6 @@
},
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
-"ckk" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/components/binary/valve{
- dir = 4;
- name = "Incinerator to Space"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
"ckl" = (
/obj/machinery/portable_atmospherics/canister,
/obj/effect/decal/cleanable/cobweb,
@@ -47609,11 +47313,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/aft)
-"ckn" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/science/xenobiology)
"cko" = (
/obj/structure/disposalpipe/segment,
/turf/closed/wall,
@@ -47872,7 +47571,6 @@
/area/engine/atmos)
"cld" = (
/obj/effect/landmark/blobstart,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/components/binary/pump{
dir = 4;
name = "Mix to Incinerator"
@@ -47890,19 +47588,6 @@
/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
-"clg" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = -29
- },
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/pen,
-/turf/open/floor/plating,
-/area/maintenance/disposal/incinerator)
"clh" = (
/obj/machinery/light/small,
/obj/structure/extinguisher_cabinet{
@@ -47933,7 +47618,6 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"clk" = (
@@ -48188,16 +47872,14 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"clT" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/machinery/atmospherics/miner/nitrogen,
+/obj/effect/turf_decal/vg_decals/atmos/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"clU" = (
/turf/open/floor/engine/n2,
/area/engine/atmos)
"clV" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/machinery/atmospherics/miner/oxygen,
+/obj/effect/turf_decal/vg_decals/atmos/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"clW" = (
@@ -48211,9 +47893,11 @@
/turf/open/floor/engine/air,
/area/engine/atmos)
"cmb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cmd" = (
/turf/closed/wall/r_wall,
@@ -48223,20 +47907,14 @@
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
"cmf" = (
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "Incinerator to Space"
},
-/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{
- pixel_x = 38;
- pixel_y = 6
- },
-/turf/open/floor/engine,
+/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cmg" = (
/obj/machinery/atmospherics/pipe/simple/general/hidden{
@@ -48452,10 +48130,12 @@
/area/engine/engineering)
"cmU" = (
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"cmV" = (
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cmW" = (
@@ -49731,10 +49411,6 @@
},
/turf/open/space,
/area/space/nearstation)
-"csk" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/airless,
-/area/space/nearstation)
"csl" = (
/obj/structure/transit_tube/curved{
dir = 4
@@ -49790,8 +49466,8 @@
/area/ai_monitored/turret_protected/aisat_interior)
"csM" = (
/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/structure/transit_tube/crossing/horizontal,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/space,
/area/space/nearstation)
"csN" = (
@@ -49857,7 +49533,7 @@
/area/ai_monitored/turret_protected/aisat_interior)
"ctd" = (
/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/space,
/area/space/nearstation)
"ctg" = (
@@ -50122,13 +49798,6 @@
/obj/effect/landmark/start/cyborg,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
-"ctN" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 10
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/space/nearstation)
"ctP" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -50224,8 +49893,8 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"ctY" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/aisat/atmos)
"ctZ" = (
@@ -50305,11 +49974,11 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"cuh" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/structure/rack,
/obj/item/wrench,
/obj/item/crowbar/red,
/obj/item/clothing/head/welding,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/atmos)
"cui" = (
@@ -50342,7 +50011,7 @@
/area/ai_monitored/turret_protected/aisat/service)
"cun" = (
/obj/machinery/atmospherics/components/binary/pump{
- name = "Mix to MiniSat"
+ name = "Incinerator to MiniSat"
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
@@ -52377,23 +52046,12 @@
/turf/open/floor/engine/vacuum,
/area/science/mixing)
"cBF" = (
+/obj/effect/landmark/event_spawn,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 8
},
-/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"cBG" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
"cBH" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -52406,9 +52064,6 @@
/turf/open/floor/plasteel,
/area/security/checkpoint/engineering)
"cBJ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 9
- },
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -52452,8 +52107,8 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"cBP" = (
-/obj/machinery/portable_atmospherics/canister/air,
/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/vg_decals/atmos/air,
/turf/open/floor/engine/air,
/area/engine/atmos)
"cBS" = (
@@ -52583,9 +52238,7 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cCB" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 10
- },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cCC" = (
@@ -52595,18 +52248,16 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"cCD" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Mix to Engine"
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"cCE" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
+/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cCF" = (
@@ -53101,6 +52752,10 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"cLS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/vacantoffice/b)
"cMC" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -53792,21 +53447,29 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plasteel,
/area/security/brig)
-"daI" = (
-/obj/structure/reagent_dispensers/foamtank,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
+"daq" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 1
},
-/obj/effect/turf_decal/stripes/box,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"daI" = (
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"dbb" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{
+ dir = 1
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/engine/atmos)
"dbU" = (
/obj/structure/light_construct{
dir = 1
@@ -53876,6 +53539,20 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"diH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/atmos,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"dly" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -53961,6 +53638,13 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"dAe" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"dBm" = (
/obj/machinery/portable_atmospherics/scrubber,
/turf/open/floor/plating,
@@ -53983,6 +53667,16 @@
},
/turf/open/floor/plasteel,
/area/security/range)
+"dEX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/requests_console{
+ department = "Atmospherics";
+ departmentType = 4;
+ name = "Atmos RC";
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"dFX" = (
/turf/closed/wall,
/area/crew_quarters/fitness/pool)
@@ -54005,6 +53699,13 @@
/obj/structure/chair/stool/bar,
/turf/open/floor/wood,
/area/maintenance/bar)
+"dMj" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"dMZ" = (
/obj/structure/sign/poster/official/random{
pixel_y = 32
@@ -54037,6 +53738,13 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"dQD" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Incinerator to MiniSat"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
"dTI" = (
/obj/structure/urinal{
pixel_y = 32
@@ -54116,6 +53824,13 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"eiZ" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/purple/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"elh" = (
/obj/structure/chair/comfy/black{
dir = 8
@@ -54156,6 +53871,10 @@
/obj/item/assembly/signaler,
/turf/open/floor/plating,
/area/security/prison)
+"eqq" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"eqA" = (
/obj/machinery/shower{
dir = 8
@@ -54193,6 +53912,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood,
/area/library)
+"eus" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"evR" = (
/turf/open/floor/plating,
/area/maintenance/bar)
@@ -54221,6 +53947,24 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
+"eyS" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Air to Pure"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ezF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"eAG" = (
/obj/item/clothing/under/misc/pj/blue,
/obj/item/clothing/shoes/sneakers/white,
@@ -54302,12 +54046,6 @@
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating/airless,
/area/space/nearstation)
-"eHI" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
"eJa" = (
/obj/structure/table/wood/poker,
/obj/item/toy/cards/deck{
@@ -54341,6 +54079,13 @@
/obj/structure/closet/secure_closet/personal/cabinet,
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
+"eUW" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 9
+ },
+/turf/open/space,
+/area/space/nearstation)
"eVC" = (
/obj/effect/spawner/structure/window,
/obj/machinery/door/firedoor,
@@ -54428,10 +54173,23 @@
dir = 4
},
/area/crew_quarters/theatre)
+"fiy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
"fjS" = (
/obj/structure/closet/radiation,
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
+"fjU" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
"flc" = (
/obj/structure/table/reinforced,
/obj/item/storage/fancy/donut_box,
@@ -54663,6 +54421,13 @@
},
/turf/open/floor/plasteel,
/area/hydroponics)
+"fHi" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"fHG" = (
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
@@ -54687,6 +54452,12 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/science/circuit)
+"fKC" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"fMp" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/dark,
@@ -54707,12 +54478,20 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
-"fPL" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+"fPi" = (
+/obj/effect/decal/cleanable/oil{
+ icon_state = "floor6"
+ },
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"fSO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"fTg" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -54833,6 +54612,17 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
+"giT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"gjl" = (
/turf/closed/wall,
/area/quartermaster/warehouse)
@@ -54863,6 +54653,12 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"grr" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
"grA" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -54904,6 +54700,11 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
+"gxw" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/visible,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
"gyr" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
@@ -54922,6 +54723,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/fore)
+"gAu" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "External to Waste"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"gBo" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -54985,6 +54796,15 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
+"gMD" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"gNC" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55113,6 +54933,13 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port)
+"hgG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"hgO" = (
/obj/structure/table,
/obj/item/storage/pill_bottle/dice{
@@ -55179,6 +55006,11 @@
},
/turf/open/floor/plating,
/area/space/nearstation)
+"hxn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
"hzK" = (
/turf/open/floor/plasteel/yellowsiding/corner{
dir = 1
@@ -55254,6 +55086,15 @@
},
/turf/closed/wall,
/area/quartermaster/warehouse)
+"hQY" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"hRa" = (
/obj/structure/table/reinforced,
/obj/machinery/light{
@@ -55387,6 +55228,13 @@
"ipA" = (
/turf/open/floor/plating,
/area/maintenance/department/medical/morgue)
+"iql" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/beacon,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"itD" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55436,6 +55284,14 @@
/obj/effect/turf_decal/tile/green,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
+"ivJ" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
"iwB" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -55479,6 +55335,14 @@
},
/turf/closed/wall/r_wall,
/area/engine/gravity_generator)
+"iIS" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plating,
+/area/engine/atmos)
"iLJ" = (
/obj/item/reagent_containers/glass/bucket,
/mob/living/simple_animal/pet/bumbles,
@@ -55541,10 +55405,15 @@
},
/turf/open/floor/wood,
/area/crew_quarters/bar)
-"iUK" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+"iVJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plasteel,
-/area/security/vacantoffice/b)
+/area/engine/atmos)
"iVU" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55676,6 +55545,13 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"jtj" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"juG" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
@@ -55714,6 +55590,14 @@
},
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
+"jzM" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
"jAD" = (
/obj/structure/grille,
/turf/open/floor/plating/airless,
@@ -55746,6 +55630,10 @@
},
/turf/closed/wall/r_wall,
/area/engine/gravity_generator)
+"jBQ" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"jCq" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -55758,6 +55646,17 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"jDr" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"jEc" = (
/obj/machinery/vr_sleeper{
dir = 8
@@ -55779,6 +55678,12 @@
},
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
+"jGI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
"jGW" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -55811,6 +55716,11 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"jIj" = (
+/obj/machinery/portable_atmospherics/scrubber/huge,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"jIs" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -55892,6 +55802,17 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"jVX" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/atmos)
"jZT" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -55927,6 +55848,11 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"kcx" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space/basic,
+/area/space/nearstation)
"kdO" = (
/obj/machinery/pool/controller,
/turf/open/floor/plasteel/yellowsiding,
@@ -56182,6 +56108,13 @@
/obj/effect/landmark/stationroom/box/engine,
/turf/open/space/basic,
/area/space)
+"kGv" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"kGJ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -56215,6 +56148,13 @@
},
/turf/open/floor/plasteel,
/area/security/processing)
+"kJE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"kMt" = (
/obj/machinery/computer/prisoner/gulag_teleporter_computer,
/turf/open/floor/plasteel,
@@ -56354,6 +56294,19 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"lgX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"lhQ" = (
+/obj/machinery/power/floodlight,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
"lip" = (
/obj/structure/closet{
name = "Suit Closet"
@@ -56425,6 +56378,11 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"lzt" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"lAB" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall,
@@ -56480,6 +56438,12 @@
},
/turf/open/floor/plating,
/area/security/main)
+"lKj" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
"lMg" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -56561,6 +56525,10 @@
},
/turf/closed/wall,
/area/crew_quarters/fitness/pool)
+"maT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
"mbU" = (
/obj/machinery/vr_sleeper{
dir = 8
@@ -56585,6 +56553,11 @@
/obj/structure/bed,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/pool)
+"mfI" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"mgF" = (
/obj/structure/bed,
/turf/open/floor/plasteel,
@@ -56674,6 +56647,10 @@
},
/turf/open/floor/wood,
/area/crew_quarters/bar)
+"moS" = (
+/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"mps" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -56800,6 +56777,12 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/gravity_generator)
+"mOG" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/engine/atmos)
"mPk" = (
/obj/structure/bed,
/obj/machinery/button/door{
@@ -56903,12 +56886,6 @@
/obj/machinery/vending/autodrobe,
/turf/open/floor/wood,
/area/maintenance/bar)
-"nfw" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"ngs" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -56944,6 +56921,19 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"nmZ" = (
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{
+ pixel_x = 38;
+ pixel_y = 6
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
"nnp" = (
/obj/structure/closet/secure_closet/medical1,
/obj/effect/decal/cleanable/dirt,
@@ -56999,6 +56989,12 @@
},
/turf/open/floor/plating,
/area/construction)
+"nzR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
"nBI" = (
/obj/item/cigbutt/cigarbutt,
/obj/effect/decal/cleanable/blood/old,
@@ -57014,6 +57010,13 @@
},
/turf/open/floor/plating,
/area/security/processing)
+"nFj" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 10
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
"nGf" = (
/obj/machinery/hydroponics/constructable,
/obj/machinery/light{
@@ -57032,6 +57035,14 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"nJQ" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
"nLu" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -57089,6 +57100,12 @@
},
/turf/open/floor/plasteel,
/area/security/processing)
+"nTU" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Air to Ports"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"nUV" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -57115,6 +57132,14 @@
/obj/item/gun/ballistic/revolver/nagant,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/nuke_storage)
+"nYT" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space,
+/area/space/nearstation)
"nZE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral,
@@ -57237,6 +57262,12 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"omk" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"omX" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -57464,6 +57495,17 @@
/obj/structure/pool/ladder,
/turf/open/pool,
/area/crew_quarters/fitness/pool)
+"oVN" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"oXn" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
"oZl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/closet/wardrobe/pjs,
@@ -57512,21 +57554,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/pool)
-"plm" = (
-/obj/structure/reagent_dispensers/watertank/high,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/box,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"plC" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -57624,6 +57651,22 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"pzG" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
"pAK" = (
/obj/machinery/door/window/brigdoor/security/cell{
id = "Cell 3";
@@ -57651,6 +57694,13 @@
/obj/effect/landmark/event_spawn,
/turf/closed/wall,
/area/crew_quarters/fitness)
+"pCj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
"pDe" = (
/obj/machinery/door/window/southright{
name = "Target Storage"
@@ -57772,13 +57822,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/fitness)
-"pRW" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
"pTB" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -57796,6 +57839,13 @@
},
/turf/open/floor/plasteel,
/area/security/processing)
+"pUP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
"qaY" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/tile/bar,
@@ -57906,6 +57956,15 @@
/obj/structure/grille/broken,
/turf/open/space/basic,
/area/space/nearstation)
+"qvf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"qyj" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
@@ -57928,6 +57987,11 @@
},
/turf/open/space,
/area/solar/port/aft)
+"qJV" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
"qLR" = (
/obj/structure/mirror{
pixel_y = 32
@@ -58021,6 +58085,13 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"rdl" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
"rdG" = (
/obj/machinery/hydroponics/constructable,
/obj/item/radio/intercom{
@@ -58040,10 +58111,12 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"rfW" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/maintenance/disposal/incinerator)
+"rgL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"rhX" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
@@ -58059,6 +58132,13 @@
/obj/structure/chair/comfy/brown,
/turf/open/floor/wood,
/area/crew_quarters/bar)
+"rmQ" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"rmX" = (
/obj/structure/table,
/obj/item/reagent_containers/food/drinks/beer,
@@ -58315,6 +58395,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/fore)
+"rTo" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "External to Pumps"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"rTu" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -58330,6 +58417,18 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"rVN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/atmos)
"rXl" = (
/obj/structure/chair/office/light,
/obj/machinery/firealarm{
@@ -58417,6 +58516,13 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plating,
/area/maintenance/department/medical/morgue)
+"smP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"sqg" = (
/obj/structure/table/wood,
/obj/item/clothing/under/misc/pj/red,
@@ -58696,6 +58802,10 @@
"sXV" = (
/turf/closed/wall/r_wall,
/area/security/range)
+"sYm" = (
+/obj/effect/turf_decal/vg_decals/atmos/mix,
+/turf/open/floor/engine/vacuum,
+/area/engine/atmos)
"sYR" = (
/obj/machinery/door/airlock{
name = "Unisex Restrooms"
@@ -58968,6 +59078,13 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
+"tSo" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
"tWj" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -59024,12 +59141,28 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
+"udT" = (
+/obj/machinery/atmospherics/pipe/manifold/purple/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"uei" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"ueZ" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/camera{
+ c_tag = "Atmospherics Central";
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"ufD" = (
/obj/machinery/vr_sleeper{
dir = 4
@@ -59045,6 +59178,12 @@
dir = 4
},
/area/crew_quarters/fitness)
+"ugp" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"ugu" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -59239,6 +59378,24 @@
"uGI" = (
/turf/open/floor/grass,
/area/security/prison)
+"uHc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
+"uHl" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/engine/atmos)
"uHp" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
@@ -59293,13 +59450,13 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/nuke_storage)
-"uPT" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+"uQR" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "O2 to Pure"
},
-/turf/closed/wall/r_wall,
-/area/maintenance/disposal/incinerator)
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"uQS" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1;
@@ -59365,15 +59522,6 @@
},
/turf/open/floor/plating,
/area/space/nearstation)
-"vaW" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"vbi" = (
/obj/structure/table,
/obj/item/instrument/guitar{
@@ -59785,11 +59933,26 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/fore)
+"vOC" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 5
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
"vOU" = (
/obj/structure/sign/warning/securearea,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/ai_monitored/nuke_storage)
+"vOV" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space,
+/area/space/nearstation)
"vPs" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -59803,6 +59966,24 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"vPQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"vQf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to External"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"vTP" = (
/obj/machinery/door/airlock/external{
name = "Labor Camp Shuttle Airlock";
@@ -59955,6 +60136,13 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/service)
+"wvg" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Ports to Incinerator"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"wvX" = (
/obj/structure/table/reinforced,
/obj/machinery/light,
@@ -59968,6 +60156,13 @@
},
/turf/open/floor/wood,
/area/crew_quarters/bar)
+"wyE" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"wBd" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -60113,6 +60308,13 @@
/obj/item/coin/gold,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
+"xcl" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/turf/open/space,
+/area/space/nearstation)
"xgk" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -60265,6 +60467,12 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"xud" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
"xxi" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -60326,12 +60534,6 @@
/obj/structure/closet/secure_closet/personal,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"xEu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
- },
-/turf/closed/wall/r_wall,
-/area/maintenance/disposal/incinerator)
"xEB" = (
/obj/machinery/power/apc{
areastring = "/area/ai_monitored/nuke_storage";
@@ -60378,6 +60580,12 @@
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"xJC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
"xJW" = (
/obj/machinery/door/airlock/maintenance{
name = "Security Maintenance";
@@ -60537,6 +60745,14 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/pool)
+"yan" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
"ycd" = (
/obj/structure/toilet/secret/low_loot{
dir = 4
@@ -86149,7 +86365,7 @@ cCi
aqX
arR
asj
-iUK
+cLS
ajr
atY
auo
@@ -89803,7 +90019,6 @@ bGO
bHl
bHS
bLI
-bLI
bOR
bQg
bQg
@@ -89813,6 +90028,7 @@ bQg
bQg
bQg
bQg
+bQg
bYI
bDG
bHP
@@ -90061,17 +90277,17 @@ bKw
bLH
bRq
bNO
-bOQ
-bQf
-bRq
+bQg
bRq
bTK
-bUE
+jVX
+jVX
+uHl
bUE
bWM
bXJ
-bYH
-bYH
+bMK
+bMK
bYH
bYH
bVg
@@ -90317,17 +90533,17 @@ bJs
bKy
bLK
bLK
-bLK
bOT
bQi
bRs
bSC
-bLK
+oXn
+gxw
bUG
bVO
bWO
bXK
-bYH
+bLK
bZz
caw
bYH
@@ -90573,18 +90789,18 @@ bCv
bJs
bKy
bLJ
-bLJ
+bWR
bNP
bOS
bQh
bRr
-bSB
bTL
+rVN
bUF
bVN
bWN
+jDr
bLK
-bYJ
bRi
bZy
cbu
@@ -90830,7 +91046,7 @@ bCv
bJs
bKy
bLM
-bLM
+fKC
bNQ
bOV
bQk
@@ -90838,9 +91054,9 @@ bRt
bSD
bTM
bUH
+bRt
bVQ
-bWN
-bXM
+jDr
bYL
cew
bTh
@@ -91087,18 +91303,18 @@ bCv
bJs
bKy
bLL
-bLL
+bOd
bNQ
bOU
bQj
bOd
-bOd
+bMK
bRx
bTP
bVP
+cbA
bWP
-bXL
-bYK
+bLK
bRj
bTg
bUm
@@ -91343,19 +91559,19 @@ bDr
bCy
bGP
bHn
-bLN
+cbz
bLN
bNS
bOX
bQm
bRv
-bOd
+bSC
bTN
bTP
-bRA
+diH
+bWQ
bWQ
bWQ
-bYN
bRm
bTj
caA
@@ -91606,8 +91822,8 @@ bNR
bOW
bQl
bRu
-bSE
-bRx
+bSC
+bTN
bUI
bVR
bWQ
@@ -91862,9 +92078,9 @@ bMK
bMK
bOY
bQn
-bRx
-bMK
+bSC
bMK
+mOG
bUJ
bVS
bWQ
@@ -92117,8 +92333,8 @@ bKz
bLK
bML
bNT
-bOV
-bQj
+smP
+giT
bRw
bSF
daI
@@ -92375,12 +92591,12 @@ bLK
bMN
bNV
bOV
-bQo
-bRz
-bSH
-plm
-bTP
-bRA
+giT
+bRw
+bSF
+daI
+bUK
+bVT
bWQ
bWQ
bWQ
@@ -92575,7 +92791,7 @@ aqe
arf
aqo
atm
-fPL
+rgL
arf
avv
awu
@@ -92629,29 +92845,29 @@ bHU
bJv
bKB
bLK
-bMM
+bVW
bOd
-bOV
+iql
bQj
-bRy
-bSG
-daI
-bUK
-bVT
-bWR
+bVP
+cbA
+fSO
+kJE
+ugp
+ueZ
bXQ
-bOd
+cbA
bZF
-bPc
-bOd
+ezF
+hgG
ccv
cdw
cex
-bOd
-cfN
-cfN
-bLK
-aaf
+dEX
+cbA
+bQt
+bLQ
+dbb
bOh
bOh
bOh
@@ -92892,20 +93108,20 @@ bJB
bKV
bRB
bSI
-bSI
+vQf
bUM
bVV
-bWS
-bSI
-bSI
+bVV
+bVV
+iVJ
bZG
-caE
-cbA
-ccy
bOd
bOd
-bQu
-cfO
+bOd
+bOd
+bOd
+bOd
+bOd
cgW
cit
cph
@@ -93147,22 +93363,22 @@ bMO
bIF
bOZ
bQp
-bRA
+alk
+gAu
+eqq
+bOd
+bOd
+bOd
bOd
-bTO
-bUL
-bVU
-bMK
-bXR
bYQ
-bXR
-bMK
-cbz
-ccx
-cbA
-cbA
+bOd
+bOd
+bOd
+bOd
+bOd
+dMj
cfi
-bRH
+bOd
cgV
bMQ
aaf
@@ -93403,23 +93619,23 @@ bLK
bMR
bIH
bJF
-bQr
-bRA
-bOd
-bTP
-bOd
bVX
-bMK
-bMK
-bYR
-bMK
-bMK
-cbC
bRA
+bTP
+rTo
+bOd
+bOd
+bOd
+bOd
+bYQ
+bOd
+bOd
+bOd
+bOd
+bOd
+jtj
+jIj
bTO
-cez
-cez
-cfQ
cgY
ciu
bVu
@@ -93603,7 +93819,7 @@ aqi
arf
ask
atm
-fPL
+rgL
arf
awq
axO
@@ -93662,24 +93878,24 @@ bNY
bPa
bMQ
bRC
-bMQ
-bTP
-bUN
-bVW
-bMK
-bXS
-bXS
-bXS
-bMK
-cbB
-alk
-alX
-cbA
-bQt
+rdl
+daq
+bUO
+bOd
+bOd
+bOd
+bYQ
+bOd
+bOd
+bOd
+bOd
+bOd
+rmQ
+lzt
apa
cgX
apF
-apI
+aaf
bOh
bOh
bOh
@@ -93919,21 +94135,21 @@ bOb
bPd
cBF
bRD
-bSK
-bTR
-bUP
-bVZ
-bWT
-bWa
-bYS
-bZH
-caF
-bQt
-cBJ
-cdy
+rdl
+daq
+bUO
bOd
+bOd
+bOd
+bYQ
+bOd
+bOd
+bOd
+cBJ
+bOd
+eus
bRy
-cfR
+bTP
cha
civ
cph
@@ -94172,27 +94388,27 @@ bvd
bKH
bLK
bMS
-bOa
+bTO
bPc
bQs
-bMZ
-bSJ
-bTQ
+cez
+ceA
+daq
bUO
-bVY
+bOd
+bOd
+bOd
+lhQ
bOd
bOd
bOd
bOd
bOd
-cbD
bTO
-cdx
-bOd
-bOd
-cfP
+cez
+bUL
cgZ
-bMQ
+rdl
aaf
bQA
ckX
@@ -94429,27 +94645,27 @@ bvd
bKJ
bLR
bMV
-bOd
-bMZ
+bTP
+eiZ
bQv
bRF
bSM
-bTS
-bUQ
-agd
-bUO
bVZ
-bVZ
-bZI
-caH
-cbF
-ccz
-cdA
-cez
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bTP
+bTO
bOe
-cfQ
chb
-ciu
+iIS
bVu
ckb
ckZ
@@ -94628,15 +94844,15 @@ aoa
ajo
apt
aql
-pRW
-pRW
-pRW
-pRW
+wyE
+wyE
+wyE
+wyE
avw
awy
-nfw
-nfw
-vaW
+lgX
+lgX
+qvf
wqF
aAh
aAh
@@ -94687,26 +94903,26 @@ bKH
bLK
bMU
bOc
-bPe
-bQu
-bRE
-bSJ
-bPe
-bOd
+udT
+omk
+nTU
+pUP
+jBQ
+agd
cCB
cCC
-bXT
-bXT
-bXT
-caG
-cbE
-bTU
-cdz
-cez
-bUL
-cfP
bOd
-bMQ
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+ccz
+uQR
+cfP
+cfQ
+ceA
aaf
bOh
bOh
@@ -94943,25 +95159,25 @@ bvd
bKH
bLK
bMX
-bOd
+omk
bPg
-bQx
-bRH
-bSM
-bTU
-bUS
-bUS
+hQY
+bRE
+pCj
+bPe
+wvg
+bOd
cCD
-bXU
-bUS
-bUS
-bUS
-bXU
-bRF
-bMW
-cez
-cez
-cfQ
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bTU
+fPi
+fHi
chd
bQy
cpP
@@ -95200,25 +95416,25 @@ bvd
bKH
bLK
bMW
-bOe
+oVN
bPf
-bQw
-bRG
-bSN
-bTT
-bUR
-bWb
+bQx
+bRH
+vPQ
+moS
+kGv
+bUS
cCE
bTT
+bUS
+bUS
+bUS
+bXU
+bUS
+bUS
+gMD
+eyS
bUR
-bZJ
-bUR
-bTT
-bUR
-cdB
-bUR
-bUR
-cfT
chc
bMQ
aaf
@@ -95457,11 +95673,11 @@ bvd
bKH
bLK
bMZ
-bOg
+cdx
bPi
bQz
bRJ
-bSM
+hxn
bTV
bUT
bWc
@@ -95469,12 +95685,12 @@ bWU
bXV
bYT
bZK
-bOd
+bUR
cbG
ccA
cdC
ceB
-cez
+dAe
cez
chf
cix
@@ -95713,25 +95929,25 @@ bvj
bvd
bKH
bLK
-bMY
+bLK
bOf
-bPh
+ivJ
bQy
bRI
bSP
-bPh
-bQy
+ivJ
+jzM
bRI
cCF
-bPh
+ivJ
bQy
bRI
bQy
-bPh
+ivJ
bQy
bRI
-ceA
-bLK
+bSP
+bVO
bLK
che
bLK
@@ -95936,7 +96152,7 @@ aOJ
oIJ
unA
aKR
-aKR
+akH
aUg
bFC
hSZ
@@ -95971,13 +96187,13 @@ bvd
bKH
bzs
bRK
-aaf
-bRK
-aaf
-bVv
-aaf
-bRK
-aaf
+qJV
+nJQ
+qJV
+vOV
+qJV
+nYT
+eUW
bVv
cCG
cCH
@@ -96227,7 +96443,7 @@ bFF
bvd
bKH
bzs
-bRK
+fjU
bOh
bPj
bQA
@@ -96257,8 +96473,8 @@ aaf
aoV
aoV
aoV
-aoV
-aoV
+aaa
+aaa
cCQ
aoV
aaa
@@ -96484,7 +96700,7 @@ bFK
bvd
bKH
bzs
-bRK
+fjU
bOh
bPl
bQB
@@ -96741,10 +96957,10 @@ bvj
bJC
bKH
bzs
-bRK
+fjU
bOh
bPk
-bPm
+sYm
bPm
bOh
bTW
@@ -96760,7 +96976,7 @@ ccB
cbH
bOh
aaf
-aoV
+aaa
aoV
aaf
aoV
@@ -96773,7 +96989,7 @@ aoV
aoV
aoV
aoV
-aaf
+gXs
aoV
aaa
aaa
@@ -96998,7 +97214,7 @@ bIj
bJC
bKH
bzs
-bRK
+fjU
bOh
bPm
bQC
@@ -97030,7 +97246,7 @@ aoV
aoV
aoV
aae
-aaf
+gXs
aoV
aaa
aaa
@@ -97255,7 +97471,7 @@ bIi
bJC
bKH
bzs
-bRK
+fjU
bOh
bOh
bOh
@@ -97273,21 +97489,21 @@ bOh
bOh
bOh
bOh
-aaf
-aaf
-ciC
-bVu
-bVu
-bVu
-bVu
-bVu
+xcl
caJ
+ciC
+gXs
+gXs
+tSo
+kcx
+kcx
+kcx
+ciC
aoV
aoV
aoV
aoV
-aoV
-aaf
+gXs
aoV
aaa
aaa
@@ -97513,52 +97729,52 @@ bJC
bKH
bzs
bUr
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
caJ
-aaf
-aaf
-aaf
-aaf
-aaf
+caJ
+caJ
+caJ
+caJ
+eUW
cfj
cfU
-cfj
-cfj
+maT
+maT
ckf
-cfj
-cfj
-bUr
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
-bVu
+maT
+lKj
+nzR
+nFj
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
csM
-bVu
-bVu
+mfI
+mfI
ctd
-bVu
-bVu
-bVu
-bVu
-caJ
+mfI
+mfI
+mfI
+mfI
+vOC
ctZ
ctZ
cuo
@@ -97782,19 +97998,20 @@ bPn
bzs
bzs
bPn
-caI
+bPn
bPn
bzs
bzs
bzs
cfj
-cfj
+chk
cjp
chh
ciy
cke
-clg
-cfj
+cjr
+pzG
+uHc
aoV
aoV
aoV
@@ -97804,7 +98021,6 @@ aoV
aoV
aoV
aaa
-aaa
aaf
aaa
csn
@@ -97815,7 +98031,7 @@ aag
aaa
aaa
aaa
-ctN
+nFj
ctY
cuh
cun
@@ -97966,7 +98182,7 @@ con
uSC
con
con
-eVJ
+akE
wHk
ewu
pQp
@@ -98044,14 +98260,15 @@ bAw
bzs
bAw
caK
-cfj
+uHc
ciB
ckh
chj
ciA
+dQD
cjr
clh
-cfj
+uHc
aoV
aoV
aoV
@@ -98061,7 +98278,6 @@ aoV
aoV
aoV
aaa
-aaa
aaf
aaa
csn
@@ -98297,18 +98513,19 @@ bzs
bzs
bZM
cbJ
-ceC
-ceC
+bWe
+bWe
cfW
cfX
chk
chl
-ciz
+xud
chi
ciz
-cjq
+ciz
ckg
cmb
+yan
cpO
cpQ
cpQ
@@ -98318,7 +98535,6 @@ czJ
aaf
aoV
aaa
-aaa
aaf
aaa
csn
@@ -98558,14 +98774,15 @@ bzs
ccF
cdG
ceE
-cfl
+grr
cfZ
-cki
+cjr
cld
-eHI
-cjt
+cjr
+cjr
+cjr
csq
-xEu
+xJC
wHz
cmd
cmd
@@ -98575,7 +98792,6 @@ aag
aag
aag
aaa
-aaa
aaf
csD
csO
@@ -98817,12 +99033,13 @@ cdF
ceD
cfk
cfY
-rfW
+cjr
ckj
-cjs
+cle
+cle
cle
cli
-uPT
+cme
cmY
cme
cop
@@ -98832,7 +99049,6 @@ cqs
aaa
aag
aaa
-aaa
aaf
csD
csN
@@ -99072,14 +99288,15 @@ cbL
cbL
cdI
ceG
-cfj
+jGI
cgb
chn
ciE
cjv
clj
-ckk
+clj
cmf
+nmZ
cna
cnC
cor
@@ -99089,7 +99306,6 @@ cqt
aaa
aag
aaa
-aaa
aaf
csD
csU
@@ -99329,12 +99545,13 @@ cbK
ccG
cdH
ceF
-cfj
+jGI
cga
chm
ciD
cju
clf
+cle
csr
cme
cmZ
@@ -99346,7 +99563,6 @@ cqs
aaa
aag
aaa
-aaa
aaf
csD
ctb
@@ -99586,13 +99802,14 @@ bzs
bzs
bzs
bzs
-cfj
-cfj
-cfj
-cfj
+fiy
+cfl
+cfl
+cfl
cjx
cfl
cfl
+cfl
dqu
tXL
cmd
@@ -99603,7 +99820,6 @@ aag
aag
aag
aaa
-aaa
aaf
csD
csD
@@ -103171,15 +103387,15 @@ bIP
bPA
bJN
bRU
-bEm
+aml
bEm
bJN
bRU
-bXe
+aop
bEm
bJN
bRU
-bEm
+aml
bEm
bDb
cgi
@@ -103428,15 +103644,15 @@ bOx
bPz
bJN
bRU
-bEm
+amo
bEm
bJN
bRU
-bEm
+amo
bEm
bJN
bRU
-bEm
+amo
cBz
bDb
cgi
@@ -103674,26 +103890,26 @@ bAB
bBV
bDb
bEn
-bEm
-bEm
-bEm
-bJL
-bLa
-bMi
-bNo
-bPy
-bPA
+akK
+akP
+akP
+akV
+akW
+alf
+alm
+aln
+alr
bJN
bRW
-bTb
+amG
bUe
bJN
bWl
-bXf
+aoq
bYg
bJN
bZV
-caV
+apw
cbS
bDb
cgl
@@ -103939,18 +104155,18 @@ bKZ
bMi
bIu
bIO
-bPB
+alx
bLe
bRV
-bTa
+amH
bUd
bVi
bRV
-bTa
+amH
bYf
bVi
bRV
-bTa
+amH
cbR
bDb
cgk
@@ -104196,18 +104412,18 @@ bLc
bMi
bNo
bOx
-bPD
+alV
bQM
bMi
-bMi
+bOx
bRZ
bVj
bMi
-bMi
+bOx
bRZ
bZa
bMi
-bMi
+bOx
bRZ
cTY
cTZ
@@ -104453,24 +104669,24 @@ bLb
bMk
bNn
bIQ
-bPC
-bQL
-cBG
-bTc
-bUf
-bTc
-bRX
-bTc
-bUf
-bTc
-bRX
-bTc
-cbT
-ccP
-ccP
-cht
-ckn
-csk
+alW
+amh
+ami
+amP
+anp
+anx
+anN
+amP
+anp
+anx
+anN
+amP
+aqG
+aqS
+aqS
+ars
+asr
+asC
czQ
czU
czZ
@@ -104713,15 +104929,15 @@ bOx
bMi
bQN
bRZ
-bMi
+bOx
bMi
bVk
bRZ
-bMi
+bOx
bMi
bZb
bRZ
-bMi
+bOx
bMi
cfy
cgn
@@ -104970,15 +105186,15 @@ bIR
bPE
bLe
bRY
-bTd
+amQ
bUg
bVi
bWm
-bTd
+amQ
bUg
bVi
bZW
-bTd
+amQ
bUg
bDb
bDb
@@ -105227,15 +105443,15 @@ bOx
bPH
bJN
bSa
-bTe
+amT
bUh
bJN
bWn
-bXg
+aos
bYh
bJN
bZX
-caW
+aqB
cbU
bDb
aaf
@@ -105484,15 +105700,15 @@ bOz
bPG
bJN
bEm
-bEm
+amo
bRU
bJN
bEm
-bEm
+amo
bRU
bJN
bEm
-bEm
+amo
bRU
bDb
aaf
@@ -105741,15 +105957,15 @@ bOx
bPJ
bJN
bEm
-bEm
+ano
bRU
bJN
bEm
-bXe
+apb
bRU
bJN
bEm
-bEm
+ano
bRU
bDb
aaf
diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm
index 28eded5c85..ebb3493a35 100644
--- a/_maps/map_files/CogStation/CogStation.dmm
+++ b/_maps/map_files/CogStation/CogStation.dmm
@@ -705,6 +705,7 @@
/obj/item/circuitboard/machine/vending/donksofttoyvendor,
/obj/item/storage/pill_bottle/happy,
/obj/effect/decal/cleanable/dirt,
+/obj/item/paper/fluff/cogstation/cluwne,
/turf/open/floor/plating,
/area/crew_quarters/theatre/clown)
"abJ" = (
@@ -800,24 +801,11 @@
/turf/closed/wall/r_wall,
/area/router/aux)
"abX" = (
-/obj/machinery/computer/secure_data,
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/machinery/camera{
- c_tag = "Security Checkpoint";
- pixel_x = 22
- },
-/obj/machinery/newscaster/security_unit{
- pixel_y = 32
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/security/checkpoint)
"abY" = (
/obj/structure/grille,
@@ -1523,9 +1511,9 @@
dir = 1
},
/obj/structure/closet,
-/obj/item/clothing/under/staffassistant,
-/obj/item/clothing/under/staffassistant,
-/obj/item/clothing/under/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
/turf/open/floor/plasteel,
/area/crew_quarters/lounge)
"adK" = (
@@ -3511,9 +3499,9 @@
c_tag = "Clown's Office";
pixel_x = 22
},
-/obj/item/clothing/under/rank/yellowclown,
-/obj/item/clothing/under/rank/blueclown,
-/obj/item/clothing/under/rank/greenclown,
+/obj/item/clothing/under/rank/civilian/clown/yellow,
+/obj/item/clothing/under/rank/civilian/clown/blue,
+/obj/item/clothing/under/rank/civilian/clown/green,
/obj/item/toy/crayon/spraycan/lubecan,
/obj/item/megaphone/clown,
/turf/open/floor/plating,
@@ -4141,20 +4129,12 @@
/turf/open/floor/plasteel,
/area/construction/secondary)
"akd" = (
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
+/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "0-4"
},
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel,
+/obj/structure/cable,
+/turf/open/floor/plating,
/area/security/checkpoint)
"ake" = (
/obj/machinery/firealarm{
@@ -4809,6 +4789,7 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/item/paper/guides/cogstation/letter_sec,
/turf/open/floor/plasteel,
/area/security/warden)
"alG" = (
@@ -6070,8 +6051,27 @@
/turf/open/floor/plasteel/dark/corner,
/area/hallway/secondary/entry)
"aoy" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Security Checkpoint";
+ pixel_x = 22
+ },
+/obj/machinery/newscaster/security_unit{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
/area/security/checkpoint)
"aoz" = (
/obj/structure/closet,
@@ -7342,7 +7342,7 @@
pixel_y = 26
},
/obj/effect/landmark/start/bartender,
-/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/costume/maid,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/bar)
@@ -8418,6 +8418,7 @@
/obj/item/storage/bag/tray,
/obj/item/clothing/gloves/color/white,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/item/paper/guides/cogstation/cooks,
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
"atP" = (
@@ -9400,12 +9401,19 @@
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/barbershop)
"avY" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "AIShutter";
- name = "AI Core Shutters"
+/obj/machinery/newscaster/security_unit{
+ pixel_y = 32
},
-/turf/open/floor/plating,
+/obj/machinery/turretid{
+ name = "AI Chamber turret control";
+ pixel_x = 5;
+ pixel_y = -24
+ },
+/obj/machinery/door/window/westleft{
+ name = "AI Core Access";
+ req_access_txt = "65"
+ },
+/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"avZ" = (
/obj/effect/landmark/start/cook,
@@ -9528,13 +9536,15 @@
/turf/closed/wall/r_wall,
/area/maintenance/solars/port)
"awn" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "AIShutter";
- name = "AI Core Shutters"
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#e8eaff"
},
/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"awo" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -10387,11 +10397,15 @@
/turf/open/floor/plasteel,
/area/hydroponics/lobby)
"axZ" = (
-/obj/machinery/light{
- dir = 1;
- light_color = "#e8eaff"
+/obj/machinery/requests_console{
+ department = "AI";
+ departmentType = 5;
+ pixel_y = 28
+ },
+/obj/machinery/door/window/eastright{
+ name = "AI Core Access";
+ req_access_txt = "65"
},
-/obj/structure/disposalpipe/segment,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aya" = (
@@ -11286,9 +11300,9 @@
"azR" = (
/obj/structure/closet/secure_closet/bar,
/obj/structure/disposalpipe/segment,
-/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/costume/maid,
/obj/item/stack/spacecash/c10,
-/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/suit/waiter,
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/bar)
"azS" = (
@@ -11768,27 +11782,31 @@
/turf/closed/wall,
/area/crew_quarters/toilet)
"aAP" = (
-/obj/effect/turf_decal/tile/red,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"aAQ" = (
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/obj/structure/disposalpipe/segment{
- dir = 4
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
},
/turf/open/floor/plasteel,
-/area/security/brig)
-"aAQ" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/security/glass{
- name = "Security Office";
- req_access_txt = "63"
- },
-/obj/effect/turf_decal/delivery,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/main)
+/area/security/checkpoint)
"aAR" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
@@ -12361,11 +12379,20 @@
/turf/open/floor/plating,
/area/security/main)
"aCb" = (
-/obj/effect/spawner/structure/window/reinforced,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plating,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
/area/security/brig)
"aCc" = (
/obj/structure/closet/secure_closet/security/sec,
@@ -12680,6 +12707,7 @@
/obj/item/stack/packageWrap,
/obj/item/hand_labeler,
/obj/item/book/manual/wiki/security_space_law,
+/obj/item/paper/guides/cogstation/letter_sec,
/turf/open/floor/carpet/red,
/area/security/brig)
"aCM" = (
@@ -12867,9 +12895,11 @@
/area/crew_quarters/barbershop)
"aDb" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating,
-/area/security/main)
+/area/security/checkpoint)
"aDc" = (
/obj/machinery/firealarm{
dir = 4;
@@ -12972,16 +13002,19 @@
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet)
"aDm" = (
-/obj/structure/table,
-/obj/machinery/recharger,
+/obj/machinery/computer/security{
+ dir = 1
+ },
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plasteel,
/area/security/checkpoint)
"aDn" = (
@@ -13176,19 +13209,23 @@
/area/maintenance/port/fore)
"aDF" = (
/obj/structure/table,
-/obj/machinery/firealarm{
- pixel_y = 26
- },
+/obj/machinery/recharger,
+/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
- dir = 4
+ dir = 8
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/item/paper_bin,
-/obj/item/pen,
/turf/open/floor/plasteel,
-/area/security/main)
+/area/security/checkpoint)
"aDG" = (
/obj/machinery/holopad,
/turf/open/floor/plasteel,
@@ -13340,18 +13377,26 @@
/turf/open/floor/plating/airless,
/area/space/nearstation)
"aEc" = (
-/obj/structure/closet{
- name = "Evidence Closet 5"
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
},
-/obj/machinery/light_switch{
- pixel_y = -24
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/turf_decal/tile/red{
- dir = 8
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
},
/turf/open/floor/plasteel,
/area/security/brig)
@@ -13839,7 +13884,7 @@
"aFc" = (
/obj/structure/table,
/obj/item/clothing/suit/toggle/owlwings,
-/obj/item/clothing/under/owl,
+/obj/item/clothing/under/costume/owl,
/obj/item/clothing/mask/gas/owl_mask,
/turf/open/floor/plating/asteroid,
/area/hydroponics/garden{
@@ -13904,12 +13949,11 @@
/turf/closed/wall/r_wall,
/area/crew_quarters/heads/hos)
"aFk" = (
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red,
-/turf/open/floor/plasteel,
-/area/security/main)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/checkpoint)
"aFl" = (
/obj/structure/chair/sofa/right,
/obj/effect/turf_decal/tile/green{
@@ -14215,10 +14259,18 @@
/turf/open/floor/plasteel,
/area/storage/emergency/generic)
"aFP" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating,
-/area/security/checkpoint)
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
"aFQ" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -14241,11 +14293,17 @@
/turf/open/floor/plasteel,
/area/storage/emergency/generic)
"aFT" = (
-/obj/structure/cable{
- icon_state = "0-2";
- pixel_y = 1
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
},
-/turf/closed/wall,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
/area/security/brig)
"aFU" = (
/obj/machinery/atmospherics/components/binary/circulator/cold{
@@ -15134,17 +15192,14 @@
/turf/open/floor/plasteel/dark,
/area/bridge)
"aHE" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = -6;
- pixel_y = 2
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = 6;
- pixel_y = 3
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/bridge)
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
"aHF" = (
/turf/open/floor/plasteel/dark,
/area/bridge)
@@ -15191,7 +15246,7 @@
},
/area/chapel/main)
"aHK" = (
-/obj/structure/piano,
+/obj/structure/musician/piano,
/turf/open/floor/carpet{
icon_state = "carpetsymbol"
},
@@ -15630,34 +15685,71 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/civilian)
"aIC" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/main)
"aID" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/main)
"aIE" = (
/turf/open/floor/carpet/royalblue,
/area/bridge)
"aIF" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/disposalpipe/segment{
+/obj/structure/table,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/noticeboard{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/tile/red{
dir = 4
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/recharger,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
"aIG" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/disposalpipe/segment{
+/obj/structure/table,
+/obj/machinery/firealarm{
+ pixel_y = 26
+ },
+/obj/effect/turf_decal/tile/red{
dir = 4
},
-/turf/open/floor/plating,
-/area/security/detectives_office)
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
"aIH" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 6
@@ -15752,14 +15844,42 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aIS" = (
+/obj/structure/disposalpipe/segment,
/obj/effect/landmark/start/ai,
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_x = 27;
+ pixel_y = -7
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = 27;
+ pixel_y = 5
+ },
/obj/machinery/button/door{
id = "AIShutter";
layer = 3.6;
name = "AI Core Shutter Control";
- pixel_x = 24
+ pixel_x = 24;
+ pixel_y = -24
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_x = -24;
+ pixel_y = -8
+ },
+/obj/machinery/button/door{
+ id = "AIChamberShutter";
+ layer = 3.6;
+ name = "AI Chamber Shutter Control";
+ pixel_x = -24;
+ pixel_y = -24
},
-/obj/structure/disposalpipe/segment,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aIT" = (
@@ -15918,14 +16038,23 @@
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"aJj" = (
-/obj/machinery/light{
- dir = 1
+/obj/structure/chair{
+ dir = 4
},
-/obj/machinery/light_switch{
- pixel_y = 24
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/aft";
+ dir = 8;
+ name = "Chapel APC";
+ pixel_x = -26
+ },
+/turf/open/floor/plasteel{
+ icon_state = "chapel"
+ },
+/area/chapel/main)
"aJk" = (
/obj/structure/table/wood,
/obj/item/candle,
@@ -16429,11 +16558,21 @@
/turf/open/floor/carpet/red,
/area/security/brig)
"aKi" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
"aKj" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 6
@@ -17300,25 +17439,12 @@
/turf/open/floor/plasteel,
/area/security/brig)
"aLX" = (
-/obj/structure/table,
-/obj/machinery/light{
- dir = 1
- },
-/obj/structure/noticeboard{
- pixel_y = 28
- },
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/machinery/recharger,
+/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "0-2"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/turf/open/floor/plasteel,
+/obj/structure/cable,
+/turf/open/floor/plating,
/area/security/main)
"aLY" = (
/obj/effect/turf_decal/tile/red,
@@ -17718,13 +17844,12 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/civilian)
"aMN" = (
-/obj/effect/turf_decal/tile/red{
+/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/open/floor/plasteel,
/area/security/main)
"aMO" = (
@@ -17909,9 +18034,7 @@
/turf/open/floor/plasteel,
/area/bridge)
"aNh" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aNi" = (
@@ -17990,37 +18113,13 @@
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aNo" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "AIShutter";
+ name = "AI Core Shutters"
},
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/item/aiModule/supplied/oxygen{
- pixel_x = 2;
- pixel_y = 10
- },
-/obj/item/aiModule/supplied/quarantine{
- pixel_x = 1;
- pixel_y = 8
- },
-/obj/item/aiModule/zeroth/oneHuman{
- pixel_y = 4
- },
-/obj/effect/spawner/lootdrop/aimodule_harmful{
- pixel_x = -1;
- pixel_y = 2
- },
-/obj/item/aiModule/supplied/protectStation{
- pixel_x = -2
- },
-/obj/structure/window/reinforced/spawner/north,
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/ai_monitored/turret_protected/ai)
"aNp" = (
/obj/effect/turf_decal/delivery,
@@ -18038,17 +18137,11 @@
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"aNr" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/structure/window/reinforced/spawner/north,
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aNs" = (
/obj/effect/turf_decal/tile/yellow{
@@ -18119,21 +18212,10 @@
},
/area/chapel/main)
"aNz" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 5
},
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/machinery/door/window/northleft{
- name = "AI Chamber";
- req_one_access_txt = "65"
- },
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aNA" = (
/obj/machinery/door/firedoor,
@@ -18407,6 +18489,9 @@
"aOe" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/ai)
"aOf" = (
@@ -18682,16 +18767,15 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aOI" = (
-/obj/structure/chair/stool,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 10
},
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
+/obj/machinery/flasher{
+ id = "ID";
+ pixel_x = 8;
+ pixel_y = 24
},
-/obj/structure/window/reinforced/spawner/north,
-/turf/open/floor/plasteel,
+/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aOJ" = (
/turf/closed/wall/r_wall,
@@ -18784,7 +18868,7 @@
/obj/effect/turf_decal/bot,
/obj/item/clothing/accessory/armband/hydro,
/obj/item/encryptionkey/headset_service,
-/obj/item/clothing/under/rank/vice,
+/obj/item/clothing/under/misc/vice_officer,
/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
dir = 4
},
@@ -18859,21 +18943,13 @@
name = "Engine Room"
})
"aPf" = (
-/obj/machinery/computer/upload/ai{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 6
},
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/structure/window/reinforced/spawner/north,
-/turf/open/floor/plasteel,
+/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aPg" = (
/obj/structure/grille,
@@ -18976,15 +19052,15 @@
},
/area/hallway/primary/central)
"aPs" = (
-/obj/structure/closet/secure_closet/hop,
-/obj/machinery/light{
- dir = 1;
- light_color = "#e8eaff"
+/obj/effect/turf_decal/tile/red{
+ dir = 4
},
-/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit,
-/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/hop)
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
"aPt" = (
/obj/structure/table/wood,
/obj/machinery/recharger,
@@ -19101,6 +19177,9 @@
pixel_y = 6
},
/obj/item/clothing/glasses/meson,
+/obj/machinery/status_display{
+ pixel_x = -32
+ },
/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"aPF" = (
@@ -19245,30 +19324,40 @@
/turf/open/floor/plasteel/white,
/area/crew_quarters/fitness/cogpool)
"aPT" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-02"
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/bridge)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
"aPU" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/obj/machinery/camera{
- c_tag = "Bridge - Port Quarter";
- dir = 1
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/machinery/keycard_auth{
- pixel_y = -24
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plating,
/area/bridge)
"aPV" = (
-/obj/machinery/photocopier,
-/turf/open/floor/plasteel/dark,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
/area/bridge)
"aPW" = (
-/obj/structure/reagent_dispensers/water_cooler,
-/turf/open/floor/plasteel/dark,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
/area/bridge)
"aPX" = (
/obj/structure/table,
@@ -20551,9 +20640,20 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/civilian)
"aSJ" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/crew_quarters/heads/captain)
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
"aSK" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -20819,11 +20919,16 @@
/turf/open/floor/plating,
/area/maintenance/department/eva)
"aTo" = (
-/obj/effect/landmark/start/captain,
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/area/crew_quarters/heads/captain)
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/detectives_office)
"aTp" = (
/obj/structure/chair{
dir = 4
@@ -20856,17 +20961,24 @@
},
/area/chapel/main)
"aTr" = (
-/obj/structure/table/wood,
-/obj/machinery/recharger,
-/turf/open/floor/carpet/blue,
-/area/crew_quarters/heads/captain)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/detectives_office)
"aTs" = (
/turf/closed/wall,
/area/maintenance/department/eva)
"aTt" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/crew_quarters/heads/hop)
+/obj/structure/closet/secure_closet/detective,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aTu" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command/glass{
@@ -20962,14 +21074,16 @@
/turf/closed/wall,
/area/router/public)
"aTH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "0-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/turf/open/floor/plating/airless,
-/area/space/nearstation)
+/turf/open/floor/plating,
+/area/bridge)
"aTI" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/line,
@@ -20985,16 +21099,12 @@
/turf/open/floor/plasteel,
/area/router/public)
"aTJ" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/obj/item/pen/fourcolor,
-/obj/item/pen/fountain{
- pixel_x = 2;
- pixel_y = 6
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/obj/item/stamp/hop,
-/turf/open/floor/carpet/green,
-/area/crew_quarters/heads/hop)
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aTK" = (
/obj/machinery/door/firedoor,
/obj/structure/cable{
@@ -21551,9 +21661,13 @@
/turf/open/floor/plasteel,
/area/science/mixing)
"aVa" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plating,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"aVb" = (
/obj/structure/pool/Rboard,
@@ -22108,9 +22222,12 @@
/turf/open/floor/plasteel,
/area/gateway)
"aWn" = (
-/obj/structure/closet/secure_closet/detective,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"aWo" = (
@@ -22197,27 +22314,40 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aWw" = (
-/obj/structure/table/wood,
-/obj/item/pinpointer/nuke,
-/obj/item/card/id/captains_spare,
-/obj/item/hand_tele,
-/obj/item/disk/nuclear,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/captain)
-"aWx" = (
-/obj/structure/table/wood,
-/obj/machinery/light,
-/obj/item/storage/photo_album/Captain,
-/obj/item/camera{
- pixel_y = -6
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/item/stamp/captain,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/captain)
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aWx" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/detectives_office)
"aWy" = (
-/obj/machinery/suit_storage_unit/captain,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/captain)
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aWz" = (
/obj/machinery/door/firedoor,
/obj/structure/cable{
@@ -23026,9 +23156,12 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/nuke_storage)
"aYm" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/ai_monitored/storage/eva)
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aYn" = (
/obj/structure/table,
/obj/effect/turf_decal/stripes/line{
@@ -23188,30 +23321,40 @@
/turf/open/floor/plating,
/area/maintenance/starboard/central)
"aYD" = (
-/obj/structure/table,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/cell_charger,
-/obj/item/stock_parts/cell/high/plus,
-/turf/open/floor/plasteel,
-/area/ai_monitored/storage/eva)
-"aYE" = (
-/obj/item/beacon,
-/turf/open/floor/plasteel,
-/area/ai_monitored/storage/eva)
-"aYF" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 8
},
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel/checker,
-/area/ai_monitored/storage/eva)
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aYE" = (
+/obj/structure/closet/crate/trashcart,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/disposalpipe/junction,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aYF" = (
+/obj/structure/table/wood,
+/obj/item/storage/box/evidence,
+/obj/item/hand_labeler,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aYG" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -23229,14 +23372,17 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aYI" = (
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
-/turf/open/floor/plasteel/dark/side{
- dir = 4
+/obj/machinery/photocopier,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -32
},
-/area/hallway/primary/central)
+/obj/item/paper/guides/cogstation/letter_sec,
+/turf/open/floor/plasteel,
+/area/security/main)
"aYJ" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
@@ -23584,7 +23730,7 @@
/obj/effect/turf_decal/bot_white/left,
/obj/item/stack/sheet/mineral/diamond,
/obj/item/gun/ballistic/revolver/mateba,
-/obj/item/clothing/under/soviet,
+/obj/item/clothing/under/costume/soviet,
/obj/item/clothing/suit/armor/vest/russian_coat,
/obj/item/clothing/head/helmet/rus_helmet,
/obj/machinery/light,
@@ -23857,6 +24003,9 @@
/obj/item/aiModule/core/full/custom{
pixel_x = -4
},
+/obj/machinery/status_display{
+ pixel_x = 32
+ },
/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"aZQ" = (
@@ -23884,10 +24033,18 @@
/turf/open/floor/plasteel/dark/corner,
/area/ai_monitored/storage/eva)
"aZT" = (
-/obj/structure/table/wood,
-/obj/item/stack/packageWrap,
-/turf/open/floor/carpet/royalblue,
-/area/bridge)
+/obj/structure/closet/secure_closet/hos,
+/obj/machinery/light_switch{
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/item/storage/box/deputy,
+/obj/item/paper/guides/cogstation/letter_hos,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/heads/hos)
"aZU" = (
/obj/structure/chair,
/obj/machinery/light{
@@ -24280,8 +24437,8 @@
"baP" = (
/obj/structure/closet/secure_closet/captains,
/obj/item/reagent_containers/food/drinks/flask/gold,
-/obj/item/clothing/under/gimmick/rank/captain/suit,
-/obj/item/clothing/under/gimmick/rank/captain/suit/skirt,
+/obj/item/clothing/under/rank/captain/suit,
+/obj/item/clothing/under/rank/captain/suit/skirt,
/obj/machinery/airalarm{
pixel_y = 24
},
@@ -24349,11 +24506,39 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"baW" = (
-/obj/structure/grille,
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/item/aiModule/core/full/asimov{
+ pixel_x = 2;
+ pixel_y = 10
+ },
+/obj/effect/spawner/lootdrop/aimodule_neutral{
+ pixel_x = 1;
+ pixel_y = 8
+ },
+/obj/effect/spawner/lootdrop/aimodule_harmless{
+ pixel_y = 6
+ },
+/obj/item/aiModule/core/freeformcore{
+ pixel_x = -1;
+ pixel_y = 2
+ },
+/obj/item/aiModule/supplied/freeform{
+ pixel_x = -2
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"baX" = (
/obj/effect/turf_decal/tile/yellow,
@@ -25772,36 +25957,12 @@
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"beu" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/structure/grille,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/item/aiModule/core/full/asimov{
- pixel_x = 2;
- pixel_y = 10
- },
-/obj/effect/spawner/lootdrop/aimodule_neutral{
- pixel_x = 1;
- pixel_y = 8
- },
-/obj/effect/spawner/lootdrop/aimodule_harmless{
- pixel_y = 6
- },
-/obj/item/aiModule/core/freeformcore{
- pixel_x = -1;
- pixel_y = 2
- },
-/obj/item/aiModule/supplied/freeform{
- pixel_x = -2
- },
-/turf/open/floor/plasteel,
+/obj/structure/cable,
+/turf/open/floor/plating,
/area/ai_monitored/turret_protected/ai)
"bev" = (
/obj/structure/cable{
@@ -25943,7 +26104,11 @@
/area/security/courtroom/jury)
"beQ" = (
/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel/grimy,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/closed/wall,
/area/security/detectives_office)
"beR" = (
/obj/structure/chair{
@@ -26304,23 +26469,19 @@
/turf/open/floor/plating,
/area/quartermaster/warehouse)
"bfH" = (
-/obj/structure/chair{
- dir = 4
+/obj/machinery/light{
+ dir = 1
},
-/obj/structure/cable,
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/machinery/light_switch{
+ pixel_y = 24
},
-/obj/machinery/power/apc{
- areastring = "/area/maintenance/aft";
- dir = 8;
- name = "Chapel APC";
- pixel_x = -24
+/obj/machinery/button/crematorium{
+ id = "foo";
+ pixel_x = 8;
+ pixel_y = 24
},
-/turf/open/floor/plasteel{
- icon_state = "chapel"
- },
-/area/chapel/main)
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"bfI" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -26349,6 +26510,10 @@
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
},
+/obj/item/paper/fluff/cogstation/letter_chap{
+ pixel_x = 10;
+ pixel_y = 2
+ },
/turf/open/floor/carpet{
icon_state = "carpetsymbol"
},
@@ -26549,18 +26714,13 @@
/turf/open/floor/plating,
/area/quartermaster/warehouse)
"bgh" = (
-/obj/machinery/conveyor_switch{
- id = "EngiCargoConveyer"
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 6
},
-/obj/structure/cable,
-/obj/machinery/power/apc{
- areastring = "/area/quartermaster/sorting";
- dir = 8;
- name = "Delivery Office APC";
- pixel_x = -24
- },
-/turf/open/floor/plasteel,
-/area/quartermaster/sorting)
+/turf/open/space/basic,
+/area/space/nearstation)
"bgi" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -27190,18 +27350,15 @@
/turf/open/floor/plasteel,
/area/quartermaster/sorting)
"bhB" = (
-/obj/structure/closet/secure_closet/quartermaster,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
+/obj/structure/table/wood,
+/obj/item/stack/packageWrap,
+/obj/item/paper/fluff/cogstation/bsrb,
+/obj/item/paper/fluff/cogstation/survey{
+ pixel_x = -4;
+ pixel_y = 2
},
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown,
-/obj/item/clothing/suit/space/eva,
-/obj/item/clothing/head/helmet/space/eva,
-/turf/open/floor/plasteel,
-/area/quartermaster/qm)
+/turf/open/floor/carpet/royalblue,
+/area/bridge)
"bhC" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -27517,16 +27674,12 @@
/turf/open/floor/plating,
/area/quartermaster/storage)
"bik" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "0-2"
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plating,
/area/bridge)
"bil" = (
/obj/effect/turf_decal/stripes/line{
@@ -27573,14 +27726,16 @@
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"biq" = (
-/obj/machinery/computer/cargo/request{
- dir = 1
+/obj/structure/closet/secure_closet/hop,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#e8eaff"
},
-/obj/machinery/keycard_auth{
- pixel_x = 24;
- pixel_y = -8
+/obj/item/clothing/under/rank/civilian/head_of_personnel/suit,
+/obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt{
+ name = "head of personnel's suitskirt"
},
-/turf/open/floor/carpet/green,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/hop)
"bir" = (
/obj/effect/turf_decal/tile/brown{
@@ -28094,17 +28249,25 @@
/turf/open/floor/plating,
/area/security/courtroom/jury)
"bjw" = (
-/obj/machinery/computer/card{
- dir = 8
+/obj/item/storage/secure/safe{
+ pixel_x = 4;
+ pixel_y = 32
},
-/obj/machinery/keycard_auth{
- pixel_x = 8;
- pixel_y = -24
+/obj/structure/disposalpipe/segment{
+ dir = 5
},
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
+/obj/effect/decal/cleanable/cobweb{
+ icon_state = "cobweb2"
},
-/area/crew_quarters/heads/captain)
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/central)
"bjx" = (
/obj/structure/table/optable,
/obj/effect/turf_decal/bot,
@@ -28136,21 +28299,13 @@
/turf/open/floor/plating,
/area/maintenance/department/eva)
"bjB" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red{
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/item/folder/red,
-/turf/open/floor/plasteel,
-/area/security/checkpoint/supply)
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/brig)
"bjC" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -28193,9 +28348,18 @@
},
/area/engine/atmos)
"bjF" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/checkpoint/supply)
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/aft";
+ dir = 8;
+ name = "Head of Personnel APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/carpet/green,
+/area/crew_quarters/heads/hop)
"bjG" = (
/obj/structure/rack,
/turf/open/floor/plasteel,
@@ -28350,21 +28514,24 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bjV" = (
+/obj/structure/closet{
+ name = "Evidence Closet 5"
+ },
+/obj/machinery/light_switch{
+ pixel_y = -24
+ },
/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/red{
dir = 8
},
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/structure/chair{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
/turf/open/floor/plasteel,
-/area/security/checkpoint/supply)
+/area/security/brig)
"bjW" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -28642,12 +28809,12 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"bkC" = (
-/obj/machinery/modular_computer/console/preset/research{
- dir = 8
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/obj/item/reagent_containers/food/drinks/coffee,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/hor)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/captain)
"bkD" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -29496,13 +29663,12 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bmj" = (
-/obj/structure/closet/secure_closet/RD,
-/obj/machinery/light{
- dir = 4;
- light_color = "#c1caff"
+/obj/machinery/vending/wardrobe/cap_wardrobe,
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/hor)
+/turf/open/floor/carpet/blue,
+/area/crew_quarters/heads/captain)
"bmk" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
@@ -29914,6 +30080,7 @@
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 8
},
+/obj/item/paper/guides/cogstation/cdn_chap,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"bmY" = (
@@ -30540,9 +30707,17 @@
/turf/closed/wall/r_wall,
/area/crew_quarters/fitness/cogpool)
"boj" = (
-/obj/structure/rack,
-/obj/item/caution,
-/obj/item/caution,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"bok" = (
@@ -31307,17 +31482,10 @@
name = "Aft Air Hookup"
})
"bpW" = (
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/security/brig)
"bpX" = (
/obj/machinery/disposal/bin,
@@ -32621,12 +32789,9 @@
/turf/open/floor/plating,
/area/maintenance/disposal)
"bsz" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
dir = 4
},
/turf/open/space/basic,
@@ -32770,15 +32935,11 @@
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"bsT" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 10
},
-/obj/structure/transit_tube/crossing/horizontal,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
/turf/open/space/basic,
/area/space/nearstation)
"bsU" = (
@@ -33505,19 +33666,25 @@
/turf/open/floor/plating,
/area/maintenance/department/chapel)
"buM" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/crew_quarters/heads/cmo)
+/obj/structure/table/wood,
+/obj/machinery/recharger,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/carpet/blue,
+/area/crew_quarters/heads/captain)
"buN" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/closed/wall/rust,
/area/chapel/main)
"buO" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/closed/wall,
-/area/security/detectives_office)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/captain)
"buP" = (
/obj/item/trash/plate,
/obj/item/lighter/greyscale,
@@ -33535,22 +33702,15 @@
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"buR" = (
-/obj/item/storage/secure/safe{
- pixel_x = 4;
- pixel_y = 32
- },
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/effect/decal/cleanable/cobweb{
- icon_state = "cobweb2"
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
},
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "0-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/open/floor/plating,
-/area/maintenance/starboard/central)
+/area/crew_quarters/heads/hop)
"buS" = (
/turf/closed/wall/r_wall,
/area/crew_quarters/heads/cmo)
@@ -34517,7 +34677,7 @@
dir = 8
},
/obj/structure/table,
-/obj/item/clothing/under/rank/mailman,
+/obj/item/clothing/under/misc/mailman,
/obj/item/clothing/head/mailman,
/obj/item/wirecutters,
/obj/item/stack/packageWrap,
@@ -34620,8 +34780,8 @@
/obj/structure/disposalpipe/segment,
/obj/item/clothing/gloves/color/purple,
/obj/item/clothing/gloves/color/purple,
-/obj/item/clothing/under/janimaid,
-/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/costume/maid,
/obj/structure/sign/poster/official/bless_this_spess{
pixel_x = -32
},
@@ -35067,13 +35227,19 @@
/turf/open/floor/engine/vacuum,
/area/science/mixing)
"byd" = (
-/obj/machinery/computer/crew,
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
+/obj/structure/table/wood,
+/obj/item/paper_bin,
+/obj/item/pen/fourcolor,
+/obj/item/pen/fountain{
+ pixel_x = 2;
+ pixel_y = 6
},
-/turf/open/floor/plasteel/white,
-/area/crew_quarters/heads/cmo)
+/obj/item/stamp/hop,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/carpet/green,
+/area/crew_quarters/heads/hop)
"bye" = (
/obj/structure/safe/floor,
/obj/effect/turf_decal/tile/green,
@@ -35615,19 +35781,16 @@
/turf/open/floor/plating/airless,
/area/quartermaster/miningoffice)
"bzw" = (
-/obj/effect/turf_decal/stripes/end{
- dir = 4
+/obj/structure/disposalpipe/segment{
+ dir = 9
},
-/obj/machinery/conveyor{
- dir = 4;
- id = "MiningConveyer"
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 9
},
-/obj/machinery/door/poddoor{
- id = "MiningConveyerBlastDoor";
- name = "Asteroid Mining Load Door"
- },
-/turf/open/floor/plating/airless,
-/area/quartermaster/miningoffice)
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
"bzx" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{
@@ -35701,45 +35864,10 @@
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
"bzH" = (
-/obj/structure/table,
-/obj/machinery/light{
- dir = 4;
- light_color = "#c1caff"
- },
-/obj/machinery/cell_charger,
-/obj/item/stock_parts/cell/high/plus,
-/obj/item/stock_parts/cell/high/plus{
- pixel_y = 8
- },
-/obj/item/stock_parts/cell/high/plus{
- pixel_y = 8
- },
-/obj/item/assembly/flash{
- pixel_x = -8;
- pixel_y = 4
- },
-/obj/item/assembly/flash{
- pixel_x = -8;
- pixel_y = 4
- },
-/obj/item/assembly/flash{
- pixel_x = -8;
- pixel_y = 4
- },
-/obj/item/assembly/flash{
- pixel_x = -8;
- pixel_y = 4
- },
-/obj/item/assembly/flash{
- pixel_x = -8;
- pixel_y = 4
- },
-/obj/item/assembly/flash{
- pixel_x = -8;
- pixel_y = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/science/robotics/lab)
+/obj/structure/disposalpipe/segment,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
"bzI" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -35995,17 +36123,20 @@
/turf/open/floor/plasteel,
/area/router)
"bAn" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel/dark/side{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
},
-/area/gateway)
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/carpet/green,
+/area/crew_quarters/heads/hop)
"bAo" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -36131,12 +36262,13 @@
/area/science/mixing)
"bAA" = (
/obj/structure/lattice,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/camera{
- c_tag = "Supply - Warehouse Exterior";
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 10
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/space/basic,
/area/space/nearstation)
"bAB" = (
@@ -36327,16 +36459,22 @@
/turf/closed/wall,
/area/hallway/secondary/exit)
"bAX" = (
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
-/obj/machinery/photocopier,
-/obj/structure/extinguisher_cabinet{
- pixel_y = -32
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/turf/open/floor/plasteel,
-/area/security/main)
+/obj/item/paper/fluff/cogstation/letter_cap{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/item/flashlight/lamp,
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bAY" = (
/obj/machinery/status_display,
/turf/closed/wall,
@@ -36520,17 +36658,16 @@
/turf/open/floor/plasteel,
/area/science/robotics/lab)
"bBt" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/turf/open/floor/carpet/green,
-/area/crew_quarters/heads/hop)
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bBu" = (
/turf/open/floor/plasteel/showroomfloor,
/area/medical/morgue)
@@ -36827,11 +36964,14 @@
/turf/open/floor/plasteel,
/area/router/eva)
"bCd" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
+/obj/effect/landmark/start/captain,
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel/white,
-/area/gateway)
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bCe" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -36996,7 +37136,7 @@
},
/obj/effect/turf_decal/tile/yellow,
/obj/structure/closet/secure_closet/engineering_personal,
-/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/misc/overalls,
/obj/structure/window/reinforced/spawner/east,
/turf/open/floor/plasteel,
/area/storage/primary)
@@ -37007,9 +37147,11 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
"bCB" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/grille/broken,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposaloutlet,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
/turf/open/floor/plating,
/area/maintenance/disposal)
"bCC" = (
@@ -37038,8 +37180,11 @@
/turf/open/floor/plating,
/area/router/eva)
"bCF" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 9
},
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
@@ -37376,11 +37521,8 @@
"bDw" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
- id = "AIShutter";
- name = "AI Core Shutters"
- },
-/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
- dir = 10
+ id = "AIChamberShutter";
+ name = "AI Chamber Shutters"
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/ai)
@@ -37580,13 +37722,11 @@
/turf/open/floor/plasteel,
/area/medical/chemistry)
"bDU" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
- id = "AIShutter";
- name = "AI Core Shutters"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
+ id = "AIChamberShutter";
+ name = "AI Chamber Shutters"
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/ai)
@@ -37594,13 +37734,16 @@
/turf/open/floor/plasteel/stairs/left,
/area/crew_quarters/bar)
"bDW" = (
+/obj/structure/disposalpipe/segment,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "AI Chamber";
+ req_access_txt = "65"
},
-/turf/open/floor/circuit,
+/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"bDX" = (
/turf/open/floor/plasteel/stairs/right,
@@ -37797,18 +37940,22 @@
/turf/closed/wall/r_wall,
/area/maintenance/solars/starboard/fore)
"bEq" = (
-/obj/machinery/computer/security{
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
+/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
dir = 8
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/turf/open/floor/plasteel,
-/area/security/checkpoint)
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bEr" = (
/obj/structure/cable,
/obj/machinery/power/apc{
@@ -38011,23 +38158,13 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"bEL" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/security/glass{
- name = "Security Office";
- req_access_txt = "63"
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4
- },
-/obj/effect/turf_decal/delivery,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
"bEM" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -38178,12 +38315,12 @@
/turf/open/floor/plating,
/area/router)
"bEZ" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
- id = "AIShutter";
- name = "AI Core Shutters"
+ id = "AIChamberShutter";
+ name = "AI Chamber Shutters"
},
-/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/ai)
"bFa" = (
@@ -38221,13 +38358,36 @@
/turf/open/floor/plating,
/area/maintenance/starboard/central)
"bFf" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "AIShutter";
- name = "AI Core Shutters"
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/item/aiModule/supplied/oxygen{
+ pixel_x = 2;
+ pixel_y = 10
+ },
+/obj/item/aiModule/supplied/quarantine{
+ pixel_x = 1;
+ pixel_y = 8
+ },
+/obj/item/aiModule/zeroth/oneHuman{
+ pixel_y = 4
+ },
+/obj/effect/spawner/lootdrop/aimodule_harmful{
+ pixel_x = -1;
+ pixel_y = 2
+ },
+/obj/item/aiModule/supplied/protectStation{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"bFg" = (
/obj/effect/turf_decal/tile/brown,
@@ -38329,8 +38489,16 @@
/turf/open/floor/plating,
/area/medical/chemistry)
"bFv" = (
-/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
-/turf/open/floor/circuit,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"bFw" = (
/obj/machinery/monkey_recycler,
@@ -38352,27 +38520,22 @@
/turf/open/floor/plasteel,
/area/medical/chemistry)
"bFy" = (
-/obj/structure/cable,
-/obj/machinery/power/apc{
- areastring = "/area/maintenance/aft";
- dir = 8;
- name = "Head of Personnel APC";
- pixel_x = -24
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
},
-/turf/open/floor/carpet/green,
-/area/crew_quarters/heads/hop)
-"bFz" = (
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel/dark/side{
- dir = 8
- },
-/area/gateway)
+/area/crew_quarters/heads/captain)
+"bFz" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/item/paper/guides/cogstation/janitor,
+/turf/open/floor/plasteel,
+/area/janitor)
"bFA" = (
/obj/structure/chair/stool,
/obj/effect/turf_decal/tile/neutral,
@@ -38760,11 +38923,17 @@
/turf/open/floor/plasteel,
/area/security/main)
"bGg" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/circuit,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"bGh" = (
/obj/structure/lattice,
@@ -38967,11 +39136,10 @@
/obj/effect/turf_decal/tile/blue{
dir = 1
},
+/obj/structure/disposalpipe/segment,
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "1-8"
},
-/obj/structure/window/reinforced/spawner/north,
-/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"bGC" = (
@@ -38991,7 +39159,6 @@
/obj/effect/turf_decal/tile/blue{
dir = 1
},
-/obj/structure/window/reinforced/spawner/north,
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
@@ -39103,9 +39270,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/item/clothing/under/staffassistant,
-/obj/item/clothing/under/staffassistant,
-/obj/item/clothing/under/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"bGS" = (
@@ -39372,7 +39539,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/item/clothing/under/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"bHw" = (
@@ -39384,7 +39551,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/item/clothing/under/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"bHx" = (
@@ -39901,17 +40068,15 @@
/turf/open/floor/plating,
/area/maintenance/solars/starboard/aft)
"bIC" = (
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/machinery/conveyor/auto{
+ id = "disposal"
},
-/obj/machinery/power/apc{
- areastring = "/area/maintenance/aft";
- dir = 8;
- name = "Aft Maintenance APC";
- pixel_x = -24
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
-/area/maintenance/aft)
+/area/maintenance/disposal)
"bID" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/neutral{
@@ -40061,16 +40226,11 @@
name = "Research Sector"
})
"bIT" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/supplymain/visible{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
-/obj/machinery/atmospherics/pipe/simple/violet/hidden{
- icon_state = "pipe11-2";
- dir = 8
- },
+/obj/machinery/atmospherics/pipe/simple/violet/hidden,
/turf/open/space/basic,
/area/space/nearstation)
"bIU" = (
@@ -40121,12 +40281,9 @@
/turf/open/floor/plasteel,
/area/maintenance/department/chapel)
"bIY" = (
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 10
- },
-/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden,
/turf/open/space/basic,
-/area/space/nearstation)
+/area/space)
"bIZ" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -40749,16 +40906,13 @@
/turf/open/floor/plating,
/area/quartermaster/miningoffice)
"bKp" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hop)
"bKq" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
@@ -40932,12 +41086,18 @@
/turf/open/floor/engine,
/area/science/xenobiology)
"bKG" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/machinery/computer/cargo/request{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/science/xenobiology)
+/obj/machinery/keycard_auth{
+ pixel_x = 24;
+ pixel_y = -8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet/green,
+/area/crew_quarters/heads/hop)
"bKH" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 4
@@ -40952,25 +41112,23 @@
/turf/open/floor/engine,
/area/science/mixing)
"bKJ" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hop)
"bKK" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/obj/effect/turf_decal/tile/purple{
- dir = 1
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hop)
"bKL" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -41191,12 +41349,13 @@
/turf/open/floor/engine,
/area/science/xenobiology)
"bLe" = (
-/obj/machinery/door/window/westright{
- name = "Containment Pen";
- req_one_access_txt = "55"
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/turf/open/floor/engine,
-/area/science/xenobiology)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hop)
"bLf" = (
/obj/machinery/door/window/eastleft{
name = "Containment Pen";
@@ -41218,8 +41377,23 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bLh" = (
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/obj/structure/bed,
+/obj/item/radio/intercom{
+ name = "Station Intercom (Common)";
+ pixel_y = -28
+ },
+/obj/item/bedsheet/captain,
+/obj/effect/landmark/start/captain,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bLi" = (
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -41237,12 +41411,16 @@
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bLk" = (
-/obj/machinery/door/window/eastleft{
- name = "Containment Pen";
- req_one_access_txt = "55"
+/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
+ dir = 1
},
-/turf/open/floor/engine,
-/area/science/xenobiology)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bLl" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
dir = 4
@@ -41703,11 +41881,23 @@
/turf/open/floor/plasteel/white,
/area/medical/genetics)
"bMh" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bMi" = (
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
@@ -41731,7 +41921,7 @@
"bMm" = (
/obj/structure/table/wood,
/obj/machinery/light,
-/obj/item/clothing/under/assistantformal{
+/obj/item/clothing/under/misc/assistantformal{
pixel_y = 4
},
/turf/open/floor/carpet{
@@ -41898,18 +42088,14 @@
/turf/open/floor/plasteel/white,
/area/medical/virology)
"bMD" = (
-/obj/structure/flora/tree/palm{
- pixel_x = 0
- },
+/obj/structure/flora/tree/palm,
/obj/machinery/light{
dir = 8
},
/turf/open/floor/grass,
/area/medical/virology)
"bME" = (
-/obj/structure/flora/tree/palm{
- pixel_x = 0
- },
+/obj/structure/flora/tree/palm,
/obj/machinery/light{
dir = 4;
light_color = "#c1caff"
@@ -41979,16 +42165,18 @@
/turf/open/floor/plasteel/white,
/area/medical/virology)
"bMK" = (
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
+/obj/structure/lattice,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
dir = 5
},
-/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
"bML" = (
-/obj/structure/flora/tree/palm{
- pixel_x = 0
- },
+/obj/structure/flora/tree/palm,
/turf/open/floor/grass,
/area/medical/virology)
"bMM" = (
@@ -42100,9 +42288,13 @@
/turf/open/floor/plating,
/area/router)
"bMX" = (
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/simple/violet/visible,
-/obj/machinery/atmospherics/pipe/simple/supplymain/visible{
+/obj/structure/lattice,
+/obj/structure/sign/warning{
+ name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES";
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
dir = 4
},
/turf/open/space/basic,
@@ -42879,15 +43071,17 @@
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bOJ" = (
-/obj/structure/table/reinforced,
-/obj/structure/window/reinforced{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 9
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
+/mob/living/simple_animal/pet/cat/space,
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bOK" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/door/window/northright{
@@ -42897,18 +43091,20 @@
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bOL" = (
-/obj/structure/table/reinforced,
-/obj/structure/window/reinforced{
- dir = 8;
- layer = 2.9
+/obj/machinery/computer/card{
+ dir = 8
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
+/obj/machinery/keycard_auth{
+ pixel_x = 8;
+ pixel_y = -24
},
-/obj/item/clothing/mask/gas,
-/obj/item/clothing/glasses/science,
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/heads/captain)
"bOM" = (
/obj/machinery/disposal/bin,
/obj/effect/turf_decal/stripes/line{
@@ -42938,22 +43134,47 @@
/turf/open/floor/plating,
/area/science/xenobiology)
"bOQ" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/general/visible,
-/turf/open/floor/plating,
-/area/science/xenobiology)
-"bOR" = (
-/obj/machinery/door/window/southright{
- name = "Secure Xenobiological Containment";
- req_one_access_txt = "55"
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/turf/open/floor/engine,
-/area/science/xenobiology)
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/captain)
+"bOR" = (
+/obj/structure/table/wood,
+/obj/item/pinpointer/nuke,
+/obj/item/card/id/captains_spare,
+/obj/item/hand_tele,
+/obj/item/disk/nuclear,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/captain)
"bOS" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/science/xenobiology)
+/obj/structure/table/wood,
+/obj/machinery/light,
+/obj/item/storage/photo_album/Captain,
+/obj/item/camera{
+ pixel_y = -6
+ },
+/obj/item/stamp/captain,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/captain)
"bOT" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
dir = 1
@@ -43048,15 +43269,14 @@
/turf/open/floor/engine,
/area/science/xenobiology)
"bPh" = (
-/obj/machinery/light{
- dir = 1
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
-/obj/machinery/portable_atmospherics/scrubber,
-/turf/open/floor/engine,
-/area/engine/secure_construction{
- name = "Engineering Construction Area"
- })
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/space/basic,
+/area/space/nearstation)
"bPi" = (
/obj/structure/chair{
dir = 8
@@ -43070,8 +43290,8 @@
/area/science/xenobiology)
"bPk" = (
/obj/structure/table/reinforced,
-/obj/item/clothing/under/staffassistant,
-/obj/item/clothing/under/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
+/obj/item/clothing/under/misc/staffassistant,
/obj/item/clothing/suit/apron/surgical,
/obj/item/clothing/suit/apron/surgical,
/turf/open/floor/engine,
@@ -43141,10 +43361,14 @@
/turf/open/floor/plating,
/area/maintenance/disposal)
"bPr" = (
-/obj/structure/lattice,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 10
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 4
},
/turf/open/space/basic,
/area/space/nearstation)
@@ -43329,9 +43553,15 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPK" = (
-/obj/structure/window/reinforced/spawner/north,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel/dark,
+/obj/structure/chair/stool,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai)
"bPL" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -43445,18 +43675,13 @@
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"bPX" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/engineering{
- name = "Engineering Foyer";
- req_one_access_txt = "10;24"
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 9
},
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/break_room)
+/turf/open/space/basic,
+/area/space/nearstation)
"bPY" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -43502,7 +43727,8 @@
dir = 1;
name = "AI Chamber turret control";
pixel_x = 5;
- pixel_y = 24
+ pixel_y = 24;
+ req_access_txt = "65"
},
/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
dir = 6
@@ -44084,11 +44310,9 @@
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/captain)
"bRc" = (
+/obj/machinery/suit_storage_unit/captain,
/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 5
+ icon_state = "4-8"
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
@@ -44187,36 +44411,26 @@
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bRn" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/engineering{
- name = "Engineering Foyer";
- req_one_access_txt = "10;24"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/structure/lattice/catwalk,
/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/break_room)
-"bRo" = (
-/obj/structure/lattice,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 8
},
/turf/open/space/basic,
/area/space/nearstation)
+"bRo" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden,
+/turf/open/space/basic,
+/area/space/nearstation)
"bRp" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
/turf/open/space/basic,
/area/space/nearstation)
"bRq" = (
@@ -44325,20 +44539,14 @@
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
"bRA" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/engineering/glass{
- name = "Engineering Access";
- req_one_access_txt = "10;24"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+/obj/machinery/light{
dir = 1
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/break_room)
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/turf/open/floor/engine,
+/area/engine/secure_construction{
+ name = "Engineering Construction Area"
+ })
"bRB" = (
/obj/item/radio/intercom{
name = "Station Intercom (Common)";
@@ -44356,14 +44564,20 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRD" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = 6;
+ pixel_y = 3
+ },
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/turf/open/floor/plating/airless,
-/area/space/nearstation)
+/turf/open/floor/plasteel/dark,
+/area/bridge)
"bRE" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -45375,17 +45589,13 @@
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bTJ" = (
-/obj/effect/turf_decal/stripes/line{
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
dir = 8
},
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 23
- },
-/turf/open/floor/plasteel,
-/area/engine/secure_construction{
- name = "Engineering Construction Area"
- })
+/turf/open/space/basic,
+/area/space/nearstation)
"bTK" = (
/turf/open/floor/engine/co2,
/area/engine/atmos)
@@ -45704,15 +45914,15 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bUt" = (
-/obj/structure/grille,
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
},
-/turf/open/floor/plating,
-/area/science/server{
- name = "Computer Core"
- })
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plasteel/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central)
"bUu" = (
/obj/structure/grille,
/obj/structure/disposalpipe/segment{
@@ -45972,23 +46182,19 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"bUS" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/photocopier,
-/obj/structure/disposalpipe/segment{
+/obj/structure/closet/secure_closet/quartermaster,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
dir = 4
},
-/obj/machinery/requests_console{
- department = "Cargo Bay";
- departmentType = 2;
- name = "Cargo RC";
- pixel_y = 30
- },
-/obj/machinery/camera{
- c_tag = "Supply - Delivery Office Aft";
- network = list("ss13","rd")
- },
+/obj/effect/turf_decal/tile/brown,
+/obj/item/clothing/suit/space/eva,
+/obj/item/clothing/head/helmet/space/eva,
+/obj/item/paper/fluff/cogstation/letter_qm,
/turf/open/floor/plasteel,
-/area/quartermaster/sorting)
+/area/quartermaster/qm)
"bUT" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/light{
@@ -46009,13 +46215,14 @@
/turf/open/floor/plasteel,
/area/ai_monitored/turret_protected/ai_upload_foyer)
"bUV" = (
-/obj/effect/turf_decal/stripes/white/full,
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 4
+/obj/structure/lattice,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 10
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
+/turf/open/space/basic,
+/area/space/nearstation)
"bUW" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
@@ -46032,12 +46239,13 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"bUX" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/structure/disposalpipe/segment{
- dir = 10
+/obj/structure/transit_tube/station/reverse/flipped{
+ dir = 1
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
+/turf/open/floor/engine,
+/area/engine/secure_construction{
+ name = "Engineering Construction Area"
+ })
"bUY" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -46068,21 +46276,15 @@
/turf/open/floor/plasteel,
/area/router)
"bVb" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/engineering/glass{
- name = "Engineering Access";
- req_one_access_txt = "10;24"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/transit_tube/horizontal,
/turf/open/floor/plasteel,
-/area/engine/break_room)
+/area/engine/secure_construction{
+ name = "Engineering Construction Area"
+ })
"bVc" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -46157,17 +46359,12 @@
/turf/open/floor/plasteel,
/area/maintenance/department/chapel)
"bVj" = (
-/obj/effect/turf_decal/tile/brown{
- dir = 4
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/conveyor/auto{
+ id = "disposal"
},
-/obj/machinery/light{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/quartermaster/office)
+/turf/open/floor/plating,
+/area/maintenance/disposal)
"bVk" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
@@ -46477,9 +46674,13 @@
name = "Research Sector"
})
"bVN" = (
-/obj/structure/closet/l3closet/scientist,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/hor)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/captain)
"bVO" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -47522,30 +47723,15 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"bXI" = (
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/machinery/computer/security{
- dir = 8
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
},
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/machinery/power/apc{
- areastring = "/area/security/checkpoint/supply";
- dir = 4;
- name = "Cargo Security Checkpoint APC";
- pixel_x = 24
- },
-/turf/open/floor/plasteel,
-/area/security/checkpoint/supply)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/captain)
"bXJ" = (
/obj/structure/chair{
dir = 8
@@ -47769,15 +47955,13 @@
/turf/open/floor/plating,
/area/router)
"bYg" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/machinery/door/poddoor{
+ id = "toxinsdriver";
+ name = "toxins launcher bay door"
},
+/obj/structure/fans/tiny,
/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/area/science/mixing)
"bYh" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -48328,10 +48512,11 @@
/turf/open/floor/plating,
/area/quartermaster/warehouse)
"bZe" = (
-/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/grille,
/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "0-2"
},
/turf/open/floor/plating,
/area/science/server{
@@ -48748,17 +48933,11 @@
/turf/open/floor/plasteel/white,
/area/science/mixing)
"caf" = (
+/obj/structure/lattice,
/obj/structure/disposalpipe/segment,
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supplymain/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 5
},
/turf/open/space/basic,
/area/space/nearstation)
@@ -49168,15 +49347,16 @@
/turf/open/floor/plating,
/area/science/storage)
"cbi" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
},
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "0-8"
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/captain)
"cbj" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -49237,12 +49417,13 @@
/turf/open/floor/plasteel,
/area/science/xenobiology)
"cbp" = (
+/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "0-8"
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/captain)
"cbq" = (
/obj/structure/table/reinforced,
/obj/item/clipboard,
@@ -49304,20 +49485,12 @@
/turf/open/floor/engine,
/area/science/explab)
"cbA" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear{
- dir = 1
- },
+/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "0-2"
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel,
-/area/science/xenobiology)
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
"cbB" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -49361,21 +49534,16 @@
/turf/open/space/basic,
/area/space/nearstation)
"cbH" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
},
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "0-2"
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
"cbI" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -50097,11 +50265,16 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"cda" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
+/obj/structure/table,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/plasteel/dark/corner,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"cdb" = (
/obj/structure/disposalpipe/trunk{
@@ -50202,13 +50375,20 @@
/turf/open/floor/plasteel,
/area/engine/break_room)
"cdm" = (
-/obj/structure/closet/secure_closet/CMO,
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/photocopier,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/red{
dir = 1
},
-/turf/open/floor/plasteel/white,
-/area/crew_quarters/heads/cmo)
+/obj/item/paper/guides/cogstation/disposals,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
"cdn" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -50233,10 +50413,14 @@
/turf/open/floor/plating/airless,
/area/space/nearstation)
"cdp" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/violet/visible,
-/obj/machinery/atmospherics/pipe/simple/supplymain/visible{
- dir = 4
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
+/obj/machinery/atmospherics/pipe/simple/violet/hidden{
+ icon_state = "pipe11-2";
+ dir = 8
},
/turf/open/space/basic,
/area/space/nearstation)
@@ -50572,14 +50756,24 @@
/turf/closed/wall/r_wall,
/area/medical/medbay/lobby)
"cea" = (
-/obj/machinery/computer/cloning,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/segment,
-/obj/item/paper/guides/jobs/medical/cloning{
- pixel_x = -4
+/obj/effect/turf_decal/delivery,
+/obj/machinery/photocopier,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ name = "Cargo RC";
+ pixel_y = 30
+ },
+/obj/machinery/camera{
+ c_tag = "Supply - Delivery Office Aft";
+ network = list("ss13","rd")
+ },
+/obj/item/paper/guides/cogstation/disposals,
/turf/open/floor/plasteel,
-/area/medical/medbay/central)
+/area/quartermaster/sorting)
"ceb" = (
/obj/structure/table,
/obj/effect/turf_decal/stripes/line,
@@ -51327,10 +51521,18 @@
name = "Engineering Construction Area"
})
"cfx" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 23
+ },
+/obj/machinery/portable_atmospherics/scrubber,
/turf/open/floor/plasteel,
-/area/engine/atmos)
+/area/engine/secure_construction{
+ name = "Engineering Construction Area"
+ })
"cfy" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -51815,18 +52017,10 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"cgt" = (
-/obj/effect/landmark/start/cargo_technician,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
+/obj/structure/rack,
+/obj/item/caution,
+/obj/item/caution,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"cgu" = (
@@ -52674,13 +52868,23 @@
/turf/open/floor/plating,
/area/maintenance/disposal)
"cij" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
+/obj/structure/table/reinforced,
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/structure/disposaloutlet,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/maintenance/disposal)
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/westleft{
+ name = "Science Desk";
+ req_access_txt = "0";
+ req_one_access_txt = "29;47"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/lab)
"cik" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -52827,17 +53031,10 @@
/turf/open/floor/plating/airless,
/area/maintenance/port/fore)
"ciC" = (
-/obj/structure/closet/secure_closet/hos,
-/obj/machinery/light_switch{
- pixel_y = 24
- },
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
- },
-/obj/item/storage/box/deputy,
-/turf/open/floor/plasteel/grimy,
-/area/crew_quarters/heads/hos)
+/obj/structure/table,
+/obj/item/paper/pamphlet/gateway,
+/turf/open/floor/plasteel/white,
+/area/gateway)
"ciD" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -52848,26 +53045,13 @@
/turf/open/floor/plasteel/dark,
/area/engine/teg_cold)
"ciE" = (
-/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
},
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/structure/table,
-/obj/machinery/recharger,
-/obj/machinery/requests_console{
- department = "Security";
- departmentType = 5;
- name = "Security RC";
- pixel_x = 32
- },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/open/floor/plasteel,
-/area/security/checkpoint/supply)
+/area/quartermaster/office)
"ciF" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -53087,15 +53271,13 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"cjb" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
- dir = 9
+/obj/structure/cable{
+ icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/effect/landmark/start/shaft_miner,
/turf/open/floor/plasteel,
-/area/quartermaster/warehouse)
+/area/quartermaster/miningoffice)
"cjc" = (
/obj/structure/fans/tiny,
/obj/structure/plasticflaps,
@@ -53196,15 +53378,16 @@
/turf/closed/wall/rust,
/area/maintenance/port/central)
"cjr" = (
-/obj/structure/table,
-/obj/machinery/airalarm{
- pixel_y = 24
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/item/hand_labeler,
-/obj/item/reagent_containers/glass/bottle/formaldehyde,
-/obj/item/paper/guides/jobs/medical/morgue,
-/turf/open/floor/plasteel/showroomfloor,
-/area/medical/morgue)
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/science/server{
+ name = "Computer Core"
+ })
"cjs" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
@@ -53344,13 +53527,11 @@
/turf/open/space/basic,
/area/space/nearstation)
"cjG" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/window/reinforced/spawner,
/turf/open/floor/plasteel,
-/area/science/xenobiology)
+/area/ai_monitored/storage/eva)
"cjH" = (
/obj/structure/lattice,
/obj/structure/sign/warning/electricshock{
@@ -53581,13 +53762,12 @@
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
"cjZ" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+/obj/item/beacon,
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/window/reinforced/spawner/north,
/turf/open/floor/plasteel,
-/area/science/xenobiology)
+/area/ai_monitored/storage/eva)
"cka" = (
/obj/item/beacon,
/obj/structure/cable{
@@ -53651,22 +53831,15 @@
name = "Research Sector"
})
"ckg" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/machinery/light{
- dir = 8;
- light_color = "#e8eaff"
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
+/obj/effect/landmark/event_spawn,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/turf/open/floor/plasteel/dark/corner,
+/area/ai_monitored/storage/eva)
"ckh" = (
/obj/machinery/light_switch{
pixel_x = -24
@@ -53971,7 +54144,7 @@
dir = 1
},
/obj/effect/turf_decal/tile/purple,
-/obj/item/clothing/under/rank/miner,
+/obj/item/clothing/under/rank/cargo/miner,
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
"ckL" = (
@@ -53983,7 +54156,7 @@
dir = 4
},
/obj/effect/turf_decal/tile/purple,
-/obj/item/clothing/under/rank/miner,
+/obj/item/clothing/under/rank/cargo/miner,
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
"ckM" = (
@@ -53995,7 +54168,7 @@
dir = 8
},
/obj/effect/turf_decal/tile/purple,
-/obj/item/clothing/under/rank/miner,
+/obj/item/clothing/under/rank/cargo/miner,
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
"ckN" = (
@@ -54116,26 +54289,25 @@
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"ckY" = (
-/obj/effect/turf_decal/tile/purple{
- dir = 1
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
-/obj/effect/turf_decal/tile/purple{
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/turf/open/floor/plasteel/checker,
+/area/ai_monitored/storage/eva)
"ckZ" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
"cla" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -54975,12 +55147,26 @@
/turf/open/floor/plasteel,
/area/medical/chemistry)
"cmT" = (
-/obj/machinery/door/poddoor{
- id = "toxinsdriver";
- name = "toxins launcher bay door"
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/science/mixing)
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/item/folder/red,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/machinery/door/window/northright{
+ name = "Security Checkpoint";
+ req_access_txt = "1"
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
"cmU" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -55181,12 +55367,12 @@
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"cnm" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/turf/open/floor/plating,
+/area/gateway)
"cnn" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -55331,10 +55517,10 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/chair{
+ dir = 4
},
-/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/open/floor/plasteel,
/area/security/checkpoint/supply)
"cnC" = (
@@ -56486,19 +56672,14 @@
/turf/open/floor/plasteel,
/area/engine/teg_hot)
"cpM" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/turretid{
- control_area = "area/science/server";
- icon_state = "control_stun";
- name = "Computer Core turret control";
- pixel_x = -3;
- pixel_y = -23
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#e8eaff"
},
/turf/open/floor/plasteel,
-/area/ai_monitored/turret_protected/ai_upload_foyer)
+/area/engine/atmos)
"cpN" = (
/obj/structure/closet/secure_closet/atmospherics,
/obj/item/cartridge/atmos,
@@ -56947,24 +57128,16 @@
/turf/open/floor/plasteel,
/area/engine/teg_cold)
"cqB" = (
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/absinthe,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 8
},
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/machinery/computer/secure_data{
- dir = 8
- },
-/obj/machinery/newscaster/security_unit{
- pixel_x = 30
- },
-/turf/open/floor/plasteel,
-/area/security/checkpoint/supply)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hor)
"cqC" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
@@ -57777,7 +57950,11 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/open/floor/plasteel,
/area/security/checkpoint/supply)
"csi" = (
@@ -57804,15 +57981,15 @@
/turf/open/floor/plasteel,
/area/science/explab)
"csl" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-8"
},
-/obj/machinery/holopad,
-/turf/open/floor/plasteel/white,
-/area/science/xenobiology)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hor)
"csm" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -57918,37 +58095,33 @@
/turf/open/floor/plasteel,
/area/engine/teg_cold)
"csu" = (
-/obj/structure/table,
-/obj/machinery/computer/med_data/laptop,
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/machinery/requests_console{
- announcementConsole = 1;
- department = "Chief Medical Officer's Desk";
- departmentType = 5;
- name = "Chief Medical Officer RC";
- pixel_y = 32
+/turf/open/floor/plasteel/dark/side{
+ dir = 8
},
-/turf/open/floor/plasteel/white,
-/area/crew_quarters/heads/cmo)
+/area/gateway)
"csv" = (
-/obj/machinery/computer/card/minor/cmo{
- dir = 1
+/obj/structure/table,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
},
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
+/obj/effect/turf_decal/tile/brown,
+/obj/item/storage/toolbox/mechanical,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/machinery/keycard_auth{
- pixel_x = -24
- },
-/turf/open/floor/plasteel/white,
-/area/crew_quarters/heads/cmo)
+/obj/item/paper/guides/cogstation/letter_supp,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
"csw" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -57960,19 +58133,17 @@
/turf/open/floor/plasteel,
/area/security/main)
"csx" = (
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
+/obj/structure/closet/secure_closet/RD,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
},
-/obj/machinery/photocopier,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 5
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/break_room)
+/obj/item/paper/fluff/cogstation/letter_rd,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hor)
"csy" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
@@ -58325,17 +58496,22 @@
/turf/open/floor/plasteel,
/area/quartermaster/sorting)
"ctn" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/effect/turf_decal/tile/brown,
-/obj/item/storage/toolbox/mechanical,
-/obj/structure/disposalpipe/segment{
+/obj/structure/closet/secure_closet/engineering_chief,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ locked = 0;
+ pixel_y = -22
+ },
+/obj/item/paper/guides/cogstation/letter_chief,
/turf/open/floor/plasteel,
-/area/quartermaster/sorting)
+/area/crew_quarters/heads/chief)
"cto" = (
/obj/machinery/disposal/bin,
/obj/effect/turf_decal/tile/brown,
@@ -58388,14 +58564,20 @@
/area/quartermaster/sorting)
"ctu" = (
/obj/structure/table,
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple{
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera{
+ c_tag = "Supply - Cargo Office";
dir = 1
},
+/obj/machinery/newscaster{
+ pixel_y = -28
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/item/storage/box/disks,
/turf/open/floor/plasteel,
-/area/quartermaster/miningoffice)
+/area/quartermaster/office)
"ctv" = (
/obj/machinery/disposal/bin,
/obj/effect/turf_decal/tile/brown,
@@ -59209,7 +59391,9 @@
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 8
},
-/obj/effect/landmark/event_spawn,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/white,
/area/gateway)
"cuR" = (
@@ -59732,13 +59916,15 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"cvM" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/bottle/absinthe,
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/hor)
+/obj/effect/landmark/event_spawn,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white,
+/area/gateway)
"cvN" = (
/obj/effect/turf_decal/tile/yellow{
dir = 4
@@ -60186,20 +60372,13 @@
/turf/closed/wall/r_wall,
/area/engine/atmos)
"cwx" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/transit_tube/station/reverse/flipped{
- dir = 1
- },
-/obj/structure/transit_tube_pod{
- dir = 8
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
},
+/obj/effect/turf_decal/stripes/white/full,
/turf/open/floor/plasteel,
-/area/engine/secure_construction{
- name = "Engineering Construction Area"
- })
+/area/engine/atmos)
"cwy" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/transit_tube/horizontal,
@@ -60238,24 +60417,19 @@
/turf/open/floor/plasteel,
/area/engine/workshop)
"cwF" = (
-/obj/structure/lattice,
-/obj/structure/transit_tube/curved{
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/space/basic,
-/area/space/nearstation)
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"cwG" = (
-/obj/structure/lattice,
-/obj/structure/disposalpipe/segment,
-/obj/structure/transit_tube/horizontal,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/effect/landmark/event_spawn,
+/obj/structure/disposalpipe/segment{
+ dir = 10
},
-/turf/open/space/basic,
-/area/space/nearstation)
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"cwH" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/turf/closed/wall,
@@ -60283,6 +60457,9 @@
dir = 4
},
/obj/structure/transit_tube/station/reverse/flipped,
+/obj/structure/transit_tube_pod{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cwN" = (
@@ -60828,19 +61005,15 @@
/area/quartermaster/miningoffice)
"cxT" = (
/obj/structure/table,
-/obj/effect/turf_decal/bot,
-/obj/machinery/camera{
- c_tag = "Supply - Cargo Office";
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
dir = 1
},
-/obj/machinery/newscaster{
- pixel_y = -28
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
+/obj/item/paper/guides/cogstation/letter_supp,
/turf/open/floor/plasteel,
-/area/quartermaster/office)
+/area/quartermaster/miningoffice)
"cxU" = (
/obj/effect/turf_decal/tile/brown{
dir = 4
@@ -60881,10 +61054,15 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cxZ" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/delivery,
+/obj/machinery/button/door{
+ id = "MiningConveyorBlastDoor";
+ name = "Mining Conveyor Access";
+ pixel_x = 8;
+ pixel_y = -24;
+ req_access_txt = "0";
+ req_one_access_txt = "10;24;48"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
"cya" = (
@@ -61497,19 +61675,19 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
"czf" = (
-/obj/structure/chair/office/light{
+/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
},
-/obj/effect/landmark/start/chief_medical_officer,
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark/side{
dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/crew_quarters/heads/cmo)
+/area/gateway)
"czg" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -61708,26 +61886,32 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
"czz" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue,
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command/glass{
- name = "CMO's Office";
- req_access_txt = "40"
+ name = "Gateway Chamber";
+ req_access_txt = "62"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/engine,
+/area/gateway)
+"czA" = (
+/obj/machinery/modular_computer/console/preset/research{
+ dir = 8
+ },
+/obj/item/reagent_containers/food/drinks/coffee,
+/obj/structure/cable{
+ icon_state = "2-4"
},
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel/white,
-/area/crew_quarters/heads/cmo)
-"czA" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating,
-/area/crew_quarters/heads/cmo)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hor)
"czB" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
@@ -62159,9 +62343,23 @@
/turf/open/floor/plating,
/area/maintenance/disposal)
"cAo" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/door/window/northright{
+ name = "Medbay Desk";
+ req_access_txt = "5"
+ },
+/obj/item/clipboard,
+/obj/item/clothing/glasses/hud/health,
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel,
-/area/janitor)
+/obj/item/paper/fluff/cogstation/sleepers,
+/obj/item/pen,
+/obj/item/clothing/glasses/hud/health,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/lobby)
"cAp" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
@@ -62480,16 +62678,12 @@
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"cAQ" = (
-/obj/structure/closet/crate/trashcart,
-/obj/machinery/light/small{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/obj/structure/disposalpipe/junction,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hor)
"cAR" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 8
@@ -62499,13 +62693,20 @@
},
/area/chapel/office)
"cAS" = (
-/obj/structure/table/wood,
-/obj/item/storage/box/evidence,
-/obj/item/hand_labeler,
-/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark/side{
+ dir = 8
+ },
+/area/gateway)
"cAT" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
@@ -62778,15 +62979,12 @@
name = "Aft Air Hookup"
})
"cBt" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/security/glass{
- name = "Security Office";
- req_access_txt = "63"
+/obj/structure/closet/l3closet/scientist,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/delivery,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel,
-/area/security/main)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hor)
"cBu" = (
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -63668,11 +63866,19 @@
/turf/open/floor/plasteel/stairs/left,
/area/hallway/primary/central)
"cCO" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
- dir = 4
+/obj/structure/table,
+/obj/machinery/airalarm{
+ pixel_y = 24
},
-/turf/open/floor/plasteel,
-/area/security/main)
+/obj/item/hand_labeler,
+/obj/item/reagent_containers/glass/bottle/formaldehyde,
+/obj/item/paper/guides/jobs/medical/morgue,
+/obj/item/paper/guides/cogstation/cdn_med{
+ pixel_x = -6;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/medical/morgue)
"cCP" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -63832,21 +64038,19 @@
/turf/open/floor/plating,
/area/quartermaster/sorting)
"cDh" = (
-/obj/structure/closet/secure_closet/engineering_chief,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
+/obj/machinery/computer/card/minor/cmo{
+ dir = 1
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
},
-/obj/machinery/airalarm{
- dir = 1;
- locked = 0;
- pixel_y = -22
+/obj/machinery/keycard_auth{
+ pixel_x = -24
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/heads/chief)
+/obj/item/paper/guides/cogstation/letter_cmo,
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/cmo)
"cDi" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -63861,11 +64065,18 @@
/turf/open/floor/plasteel,
/area/storage/primary)
"cDj" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
},
-/turf/open/floor/plating,
/area/crew_quarters/heads/hor)
"cDk" = (
/obj/machinery/door/firedoor,
@@ -63996,9 +64207,21 @@
/turf/closed/wall/r_wall,
/area/crew_quarters/heads/captain)
"cDv" = (
-/obj/machinery/vending/wardrobe/cap_wardrobe,
-/turf/open/floor/carpet/blue,
-/area/crew_quarters/heads/captain)
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -26
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hor)
"cDw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -64019,35 +64242,39 @@
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/captain)
"cDy" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hor)
+"cDz" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/checkpoint/supply)
+"cDA" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/computer/secure_data{
+ dir = 8
+ },
+/obj/machinery/newscaster/security_unit{
+ pixel_x = 30
+ },
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
- dir = 8
- },
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
- },
-/area/crew_quarters/heads/captain)
-"cDz" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 4
- },
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
- },
-/area/crew_quarters/heads/captain)
-"cDA" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp,
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
- },
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
- },
-/area/crew_quarters/heads/captain)
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
"cDB" = (
/obj/item/storage/secure/safe{
pixel_x = -24
@@ -64072,49 +64299,64 @@
},
/area/crew_quarters/heads/captain)
"cDD" = (
-/obj/structure/bed,
-/obj/item/radio/intercom{
- name = "Station Intercom (Common)";
- pixel_y = -28
- },
-/obj/item/bedsheet/captain,
-/obj/effect/landmark/start/captain,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
- },
-/area/crew_quarters/heads/captain)
-"cDE" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
- },
-/area/crew_quarters/heads/captain)
-"cDF" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
+/obj/effect/turf_decal/tile/red{
+ dir = 4
},
-/area/crew_quarters/heads/captain)
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/computer/security{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/supply";
+ dir = 4;
+ name = "Cargo Security Checkpoint APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"cDE" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
+"cDF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
"cDG" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/mob/living/simple_animal/pet/cat/space,
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/area/crew_quarters/heads/captain)
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
"cDH" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 8
@@ -64128,16 +64370,19 @@
/turf/open/floor/plasteel,
/area/gateway)
"cDJ" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
+/obj/machinery/computer/crew,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/turf/open/floor/plasteel/dark/side{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/area/gateway)
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/cmo)
"cDK" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command/glass{
@@ -64286,29 +64531,35 @@
},
/area/crew_quarters/heads/hor)
"cDZ" = (
+/obj/structure/table,
+/obj/machinery/computer/med_data/laptop,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Chief Medical Officer's Desk";
+ departmentType = 5;
+ name = "Chief Medical Officer RC";
+ pixel_y = 32
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 4
- },
-/turf/open/floor/carpet{
- icon_state = "carpetsymbol"
- },
-/area/crew_quarters/heads/hor)
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/cmo)
"cEa" = (
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -26
- },
+/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-4"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/heads/hor)
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
"cEb" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command{
@@ -64726,22 +64977,17 @@
/turf/open/floor/plasteel,
/area/science/lab)
"cEE" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin,
-/obj/item/pen,
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/obj/effect/turf_decal/delivery,
-/obj/machinery/door/window/westleft{
- name = "Science Desk";
- req_access_txt = "29;47"
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/aft";
+ dir = 8;
+ name = "Aft Maintenance APC";
+ pixel_x = -26
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/science/lab)
+/turf/open/floor/plating,
+/area/maintenance/aft)
"cEF" = (
/obj/effect/turf_decal/tile/purple{
dir = 8
@@ -66706,23 +66952,20 @@
/turf/open/floor/plasteel/white,
/area/medical/genetics)
"cHV" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/effect/turf_decal/tile/red{
+ dir = 4
},
-/obj/machinery/power/apc{
- areastring = "/area/medical/genetics";
- dir = 8;
- name = "Genetics Lab APC";
- pixel_x = -24
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/maintenance/aft)
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
"cHW" = (
/obj/machinery/rnd/production/circuit_imprinter,
/obj/item/reagent_containers/glass/beaker,
@@ -68061,21 +68304,14 @@
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
"cKj" = (
-/obj/structure/table/reinforced,
+/obj/structure/closet/secure_closet/CMO,
+/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 1
},
-/obj/effect/turf_decal/tile/blue,
-/obj/machinery/door/window/northright{
- name = "Medbay Desk";
- req_access_txt = "5"
- },
-/obj/item/clipboard,
-/obj/item/pen,
-/obj/item/clothing/glasses/hud/health,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/item/paper/guides/cogstation/letter_cmo,
/turf/open/floor/plasteel/white,
-/area/medical/medbay/lobby)
+/area/crew_quarters/heads/cmo)
"cKk" = (
/obj/structure/chair/office/light{
dir = 1;
@@ -68258,20 +68494,22 @@
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"cKC" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/landmark/start/chief_medical_officer,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
},
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/science/xenobiology)
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/cmo)
"cKD" = (
/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
dir = 8
@@ -68550,7 +68788,7 @@
dir = 8
},
/obj/structure/closet/secure_closet/engineering_personal,
-/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/misc/overalls,
/turf/open/floor/plasteel,
/area/storage/primary)
"cLo" = (
@@ -68633,7 +68871,7 @@
"cLz" = (
/obj/effect/turf_decal/bot,
/obj/structure/closet/secure_closet/engineering_personal,
-/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/misc/overalls,
/turf/open/floor/plasteel,
/area/storage/primary)
"cLA" = (
@@ -70405,6 +70643,1036 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
+"cPz" = (
+/obj/structure/lattice,
+/obj/structure/transit_tube/curved{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"cPA" = (
+/obj/structure/lattice,
+/obj/structure/disposalpipe/segment,
+/obj/structure/transit_tube/horizontal,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"cPB" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/transit_tube/crossing/horizontal,
+/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"cPC" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/transit_tube/horizontal,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cPD" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cPE" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/space/basic,
+/area/space/nearstation)
+"cPF" = (
+/obj/structure/lattice,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/space/basic,
+/area/space/nearstation)
+"cPG" = (
+/obj/structure/lattice,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/camera{
+ c_tag = "Supply - Warehouse Exterior";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/space/basic,
+/area/space/nearstation)
+"cPH" = (
+/obj/machinery/conveyor_switch{
+ id = "EngiCargoConveyer"
+ },
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/sorting";
+ dir = 8;
+ name = "Delivery Office APC";
+ pixel_x = -26
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"cPI" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering{
+ name = "Engineering Foyer";
+ req_one_access_txt = "10;24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cPJ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering{
+ name = "Engineering Foyer";
+ req_one_access_txt = "10;24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cPK" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Engineering Access";
+ req_one_access_txt = "10;24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cPL" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Engineering Access";
+ req_one_access_txt = "10;24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cPM" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/machinery/recharger,
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ name = "Security RC";
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"cPN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cPO" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cPP" = (
+/obj/structure/table,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus{
+ pixel_y = 8
+ },
+/obj/item/stock_parts/cell/high/plus{
+ pixel_y = 8
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cPQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/medical/genetics";
+ dir = 8;
+ name = "Genetics Lab APC";
+ pixel_x = -26
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cPR" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
+"cPS" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "CMO's Office";
+ req_access_txt = "40"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/cmo)
+"cPT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
+"cPU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"cPV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"cPW" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"cPX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"cPY" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/caution/stand_clear{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cPZ" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/caution/stand_clear{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQa" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQb" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQc" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQd" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQe" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/window/reinforced/spawner,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "xenobio2";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQg" = (
+/obj/machinery/door/window/westright{
+ name = "Containment Pen";
+ req_one_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cQh" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQj" = (
+/obj/machinery/door/window/eastleft{
+ name = "Containment Pen";
+ req_one_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cQk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQl" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/window/reinforced/spawner/north,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "xenobio1";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQm" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQq" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQr" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/window/reinforced/spawner,
+/obj/machinery/button/door{
+ id = "xenobio4";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQs" = (
+/obj/machinery/door/window/westright{
+ name = "Containment Pen";
+ req_one_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cQt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQu" = (
+/obj/machinery/door/window/eastleft{
+ name = "Containment Pen";
+ req_one_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio4";
+ name = "containment blast door"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cQv" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/window/reinforced/spawner/north,
+/obj/machinery/button/door{
+ id = "xenobio3";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQw" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQx" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/window/reinforced/spawner,
+/obj/machinery/button/door{
+ id = "xenobio6";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQy" = (
+/obj/machinery/door/window/westright{
+ name = "Containment Pen";
+ req_one_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio5";
+ name = "containment blast door"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cQz" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQA" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQB" = (
+/obj/machinery/door/window/eastleft{
+ name = "Containment Pen";
+ req_one_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cQC" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/window/reinforced/spawner/north,
+/obj/machinery/button/door{
+ id = "xenobio5";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQD" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQE" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cQH" = (
+/obj/structure/table/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "xenobio7";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQI" = (
+/obj/structure/table/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8;
+ layer = 2.9
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/glasses/science,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cQJ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQM" = (
+/obj/machinery/door/window/southright{
+ name = "Secure Xenobiological Containment";
+ req_one_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cQN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cQQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"cQR" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"cQS" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"cQT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"cQU" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"cQV" = (
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-02"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"cQW" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin,
+/obj/machinery/camera{
+ c_tag = "Bridge - Port Quarter";
+ dir = 1
+ },
+/obj/machinery/keycard_auth{
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"cQX" = (
+/obj/machinery/photocopier,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"cQY" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"cQZ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"cRa" = (
+/obj/effect/turf_decal/stripes/end{
+ dir = 4
+ },
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "MiningConveyer"
+ },
+/obj/machinery/door/poddoor{
+ id = "MiningConveyorBlastDoor";
+ name = "Asteroid Mining Load Door"
+ },
+/turf/open/floor/plating/airless,
+/area/quartermaster/miningoffice)
+"cRb" = (
+/obj/machinery/computer/cloning,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/segment,
+/obj/item/paper/guides/jobs/medical/cloning{
+ pixel_x = -4
+ },
+/obj/item/paper/fluff/cogstation/cloner{
+ pixel_x = 6
+ },
+/turf/open/floor/plasteel,
+/area/medical/medbay/central)
+"cRc" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/door/airlock/research{
+ name = "Aft Observatory";
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab{
+ name = "Research Observatory"
+ })
+"cRd" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/machinery/door/airlock/research{
+ name = "Aft Observatory";
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab{
+ name = "Research Observatory"
+ })
+"cRe" = (
+/obj/machinery/computer/upload/ai{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/turret_protected/ai)
+"cRf" = (
+/obj/structure/window/reinforced/spawner/north,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/flasher{
+ id = "ID";
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cRg" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/white/corner,
+/area/engine/atmos)
+"cRh" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/turretid{
+ control_area = "area/science/server";
+ icon_state = "control_stun";
+ name = "Computer Core turret control";
+ pixel_x = -3;
+ pixel_y = -23;
+ req_access_txt = "65"
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/turret_protected/ai_upload_foyer)
"cVq" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -70697,16 +71965,6 @@
/obj/machinery/atmospherics/pipe/simple/violet/visible,
/turf/open/space/basic,
/area/space)
-"kxL" = (
-/obj/structure/lattice,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 4
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"kzb" = (
/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
dir = 4
@@ -70881,17 +72139,6 @@
/obj/machinery/atmospherics/pipe/simple/supplymain/visible,
/turf/open/space/basic,
/area/space/nearstation)
-"qnM" = (
-/obj/structure/lattice,
-/obj/structure/sign/warning{
- name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES";
- pixel_y = -32
- },
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 4
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"qvB" = (
/obj/machinery/atmospherics/components/unary/thermomachine/heater{
dir = 8
@@ -70911,14 +72158,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"rbJ" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/space/basic,
-/area/space/nearstation)
"rdF" = (
/obj/machinery/atmospherics/pipe/simple/dark/visible{
dir = 6
@@ -71123,13 +72362,6 @@
/obj/item/pen,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"xqa" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/violet/visible{
- dir = 5
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"xCy" = (
/obj/machinery/atmospherics/components/binary/pump,
/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
@@ -84607,7 +85839,7 @@ aaU
aaa
aaU
aEa
-aTH
+aHE
bab
aaa
aaa
@@ -84864,7 +86096,7 @@ aaU
aaU
aaU
aEb
-bRD
+aPT
aaU
aaU
aye
@@ -85121,7 +86353,7 @@ aaU
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -85378,7 +86610,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -85635,7 +86867,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -85892,7 +87124,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -86149,7 +87381,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -86406,7 +87638,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -86663,7 +87895,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -86920,7 +88152,7 @@ aaa
aaa
aaU
aEb
-bRD
+aPT
aaU
aaa
aaa
@@ -87177,7 +88409,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -87434,7 +88666,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -87691,7 +88923,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -87948,7 +89180,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -88205,7 +89437,7 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaa
aaa
@@ -88462,19 +89694,19 @@ aaa
aaa
aaU
aEa
-bRD
+aPT
aaU
aaU
aaa
aaU
-aGn
-aGn
-aGn
-aGn
-aGn
-aGn
-aGn
-aGn
+aPV
+bik
+bik
+bik
+bik
+bik
+bik
+cQT
aaU
aaa
aaU
@@ -88547,22 +89779,22 @@ bFt
bJs
bJV
bxT
-bKG
-bLe
-bFl
+cQa
+cQg
+cQk
bxT
-bKG
-bLe
-bFl
+cQa
+cQs
+cQk
bxT
-bKG
-bLe
-bFl
+cQa
+cQy
+cQk
bxT
cvz
cKA
bOH
-bFl
+cQJ
bxT
bKM
bKM
@@ -88719,21 +89951,21 @@ aaU
aaU
aaU
aEa
-bRD
+aPT
aaU
aaU
-aGn
-aGn
-aGn
+aPV
+bik
+cQS
aIA
aJe
aLE
aLy
aMQ
aNF
-aGn
-aGn
-aGn
+cQU
+bik
+cQT
aaU
aaa
aaa
@@ -88806,20 +90038,20 @@ bJW
bxT
cbo
bLf
-cjZ
+cQl
bxT
cbo
bLf
-cjZ
+cQv
bxT
cbo
bLf
-cjZ
+cQC
bxT
ctT
cKB
bOI
-bOQ
+cQK
bOT
bKM
bKM
@@ -88976,10 +90208,10 @@ abh
abh
abh
aEb
-bRD
+aPT
aaU
aaU
-aGn
+aPW
aHD
aIg
aHF
@@ -88989,8 +90221,8 @@ aHF
aJn
aHF
aPp
-aPT
-aGn
+cQV
+cQS
aaU
aaa
aaa
@@ -89058,25 +90290,25 @@ bxT
bFo
bHV
bYz
-cbi
-cbp
-cbA
-cbH
-cjP
-cjP
-ckg
-cjP
-cjP
-cjP
-ckg
-cjP
-ckY
-cjP
+cPU
+cPW
+cPY
+cQb
+cQh
+cQm
+cQh
+cQh
+cQh
+cQh
+cQw
+cQh
+cQz
+cQD
cjP
ctR
-cKC
-bOJ
-bFl
+cQF
+cQH
+cQL
bKM
bKM
bKM
@@ -89233,11 +90465,11 @@ aaU
aaU
aaU
aEa
-bRD
+aPT
aaU
-aGn
-aGn
-aHE
+aPU
+aTH
+bRD
aHF
aHF
aIE
@@ -89246,7 +90478,7 @@ aIE
aIE
csD
aHF
-aPU
+cQW
aGq
aaU
aaa
@@ -89315,25 +90547,25 @@ bxT
cdD
bHW
bIG
-csl
-bzy
-bKp
-bKJ
-bLh
-bLh
-bLh
-bLh
-bMh
-bLh
-bLh
-bLh
-ckZ
-bLh
+cPV
+cPX
+cPZ
+cQc
+cQi
+cQn
+cQi
+cQp
+cQt
+cQi
+cQi
+cQp
+cQA
+cQE
cbF
cnl
cla
bOK
-bOR
+cQM
bKM
bKM
bPa
@@ -89494,21 +90726,21 @@ aLK
aGq
aGq
aKH
-aHF
+cQQ
aHF
aIE
aJu
aKA
-aZT
+bhB
aMX
aIE
aHF
-aPV
+cQX
aQW
-aSJ
-aSJ
+bkC
+bkC
aQW
-aSJ
+bkC
aQW
aaU
aaa
@@ -89575,22 +90807,22 @@ bIH
cGA
bJX
bKq
-bKK
+cQd
bLi
bLi
bLF
-bLi
+cQq
bMi
bLi
-bLF
bLi
+cQq
bLi
bLi
cvV
ckS
-cla
-bOL
-bFl
+cQG
+cQI
+cQN
bKM
bKM
bKM
@@ -89751,7 +90983,7 @@ aUz
bDP
aGq
aGL
-aHF
+cQQ
aHF
aIH
aJz
@@ -89760,16 +90992,16 @@ aLI
aMX
aIE
aHF
-aPW
+cQY
aQW
-cDv
-cjQ
+bmj
+bBt
cDB
-cDD
+bLh
aQW
aQW
-aSJ
-aSJ
+bkC
+bVN
aaa
aaa
aaa
@@ -89804,7 +91036,7 @@ aaa
bcw
bde
bcw
-cmT
+bYg
bcy
bfp
cwY
@@ -89832,22 +91064,22 @@ bII
cGB
bFw
bxT
-cjG
+cQe
bLj
ckN
bxT
-cjG
+cQr
bLj
ckN
bxT
-cjG
+cQx
bLj
ckN
bxT
bOy
cla
bOM
-bOS
+cQO
bOU
bKM
bKM
@@ -90008,7 +91240,7 @@ aZq
bDQ
hcR
aGM
-aHF
+cQQ
aHF
aII
aJu
@@ -90017,16 +91249,16 @@ aRe
aXS
bbb
aHF
-aHF
+cQQ
aQW
baP
-aTo
+bCd
cjQ
-cDE
+bLk
aVP
cpt
-aWw
-aSJ
+bOR
+bXI
aaa
aaa
aaa
@@ -90073,7 +91305,7 @@ bAN
bKH
cbh
clc
-csR
+cGJ
cGJ
cGO
cGU
@@ -90089,22 +91321,22 @@ bIJ
cGC
bXO
bxT
-bFl
-bLk
-bKG
+cQf
+cQj
+cQo
bxT
-bFl
-bLk
-bKG
+cQf
+cQu
+cQo
bxT
-bFl
-bLk
-bKG
+cQf
+cQB
+cQo
bxT
ctU
ckX
bON
-bFl
+cQP
bxT
bKM
bKM
@@ -90265,7 +91497,7 @@ bdz
bDR
aKF
aLm
-aMi
+cQR
aMi
aQh
aQN
@@ -90274,16 +91506,16 @@ aRl
aXT
bbc
bbD
-bik
+cQZ
cDt
cDw
-cDy
+bEq
cps
-cDF
+bMh
bRb
-bRc
-aWx
-aSJ
+bOQ
+bOS
+cbi
aaa
aaa
aaa
@@ -90534,13 +91766,13 @@ bbG
bit
cDu
cDx
-cDz
+bFy
cDC
-cDG
+bOJ
aVR
bBj
-aWy
-aSJ
+bRc
+bXI
aaa
aaa
aaa
@@ -90790,14 +92022,14 @@ aSW
aHM
biF
aQW
-aTr
-cDA
+buM
+bAX
bEN
-bjw
+bOL
aQW
aQW
-aSJ
-aSJ
+buO
+cbp
aaa
aaa
aaa
@@ -90845,7 +92077,7 @@ bcy
cbC
cnO
cnO
-cnO
+csR
cGQ
cGW
cGV
@@ -91047,10 +92279,10 @@ aSW
aHM
bju
aQW
-aSJ
-aSJ
+buO
+buO
aQW
-aSJ
+buO
aQW
aaU
aaa
@@ -91818,9 +93050,9 @@ csr
aNR
blf
aNR
-aTt
-aTt
-aTt
+buR
+bKp
+bKJ
aaa
bdg
bdg
@@ -92074,10 +93306,10 @@ aGq
aNR
aNR
bly
-bFy
-aTJ
+bjF
+byd
aUB
-aTt
+bKK
aaa
bdg
beN
@@ -92329,12 +93561,12 @@ aKS
aSW
cDs
aNR
-aPs
+biq
blA
bqh
buG
bIW
-aTt
+bKK
aaa
bdg
beR
@@ -92591,7 +93823,7 @@ aYR
csE
bvJ
aUF
-aTt
+bKK
aaa
bdg
beJ
@@ -92832,7 +94064,7 @@ aAv
aOO
aCl
aFj
-ciC
+aZT
aGv
bLp
bEV
@@ -92846,9 +94078,9 @@ bbf
bsf
bnI
aRo
-bBt
-biq
-aTt
+bAn
+bKG
+bLe
aaa
bdg
beJ
@@ -93696,7 +94928,7 @@ ckT
ckT
ckT
ckV
-cHK
+cRc
clg
ctc
cua
@@ -93921,8 +95153,8 @@ csN
biA
biA
csL
-cDZ
-bgX
+cDj
+cDy
bPl
bXx
bXT
@@ -93953,7 +95185,7 @@ ckQ
ckU
ckQ
ckW
-cHL
+cRd
csX
ctP
cuk
@@ -94178,8 +95410,8 @@ cve
bky
biA
biA
-cDZ
-bgX
+cDj
+cDy
bWT
bXh
bYa
@@ -94431,11 +95663,11 @@ aaU
aaU
bgW
biI
-cvM
-bkC
-bVN
-bmj
-cEa
+cqB
+czA
+cBt
+csx
+cDv
bgW
bWU
bXl
@@ -94688,8 +95920,8 @@ aaU
aUk
bgW
bgW
-cDj
-bgX
+csl
+cAQ
bgW
bgW
cEb
@@ -96426,10 +97658,10 @@ aQg
akv
aew
azf
-bpW
-aAP
-aEc
+aCb
aFT
+bjV
+bpW
aZO
aXu
aZX
@@ -96487,8 +97719,8 @@ aaU
aTV
aVk
bfu
-bAn
-bFz
+csu
+cAS
cDV
cDX
cEg
@@ -96682,9 +97914,9 @@ alU
aQA
aSZ
aew
-abS
-bEL
-aCb
+aAP
+aEc
+bjB
asL
asL
bfm
@@ -96729,7 +97961,7 @@ aZy
beJ
bfd
bjg
-aYI
+bUt
bai
baV
cKF
@@ -96744,7 +97976,7 @@ aaU
aTV
aVq
bfx
-bCd
+cuQ
cpP
aTV
bVR
@@ -96999,9 +98231,9 @@ aaa
aaa
aaU
aUi
-aVq
+ciC
bzz
-cuQ
+cvM
cts
aTV
bVM
@@ -97258,7 +98490,7 @@ aaU
aTV
aYf
beo
-bCd
+cuQ
cwe
aTV
bVS
@@ -97453,7 +98685,7 @@ awS
azB
aBC
atc
-aLX
+aIF
aJv
aJZ
aLY
@@ -97515,7 +98747,7 @@ aaU
aTV
bHH
aWp
-cDJ
+czf
coI
aTV
bVT
@@ -97710,10 +98942,10 @@ awT
aAk
cjN
atc
-aDF
+aIG
aRU
aDX
-bAX
+aYI
atc
aVQ
aWa
@@ -97771,8 +99003,8 @@ aaa
aaU
aUk
aUk
-aUi
-cDK
+cnm
+czz
aUk
aUk
bWa
@@ -97966,9 +99198,9 @@ bGf
bHh
cqd
cBb
-cBt
+aFP
+aKi
aMN
-cCO
aQw
coU
atc
@@ -98223,9 +99455,9 @@ avL
axw
cqH
bhN
-aDb
+aIC
aDP
-aFk
+aPs
aGh
csn
atc
@@ -98303,7 +99535,7 @@ bRJ
bth
bTB
cek
-cKj
+cAo
cKk
cKl
cKm
@@ -98480,9 +99712,9 @@ avM
avL
csw
aBK
-aCa
-aCa
-aAQ
+aID
+aLX
+aSJ
aHZ
atc
atc
@@ -98808,7 +100040,7 @@ cEn
bWR
bSH
bSG
-cEE
+cij
bSG
bSC
bSC
@@ -100054,9 +101286,9 @@ aWB
bsl
cjJ
aXH
-aYm
-aYm
-aYm
+cbA
+cbH
+ckZ
aZv
bRP
aWB
@@ -100101,9 +101333,9 @@ ceY
bst
cyG
bst
-buM
-buM
-buM
+cDE
+cDG
+cEa
buS
buS
bFX
@@ -100312,7 +101544,7 @@ aWK
aXo
aXI
aYn
-aYD
+cda
aZj
aZw
bRQ
@@ -100358,11 +101590,11 @@ bqm
cdW
cyG
cdY
-buM
-byd
-czf
-csv
-buM
+cDF
+cDJ
+cKC
+cDh
+cPR
bFJ
cFa
cFk
@@ -100569,7 +101801,7 @@ aWM
aXr
aXJ
aXr
-aXr
+cjG
aXr
aXr
bRU
@@ -100616,10 +101848,10 @@ cmU
cyG
cdX
buS
-csu
+cDZ
czg
czt
-czz
+cPS
czD
cFb
bEl
@@ -100826,7 +102058,7 @@ aWO
bPz
bQf
aYs
-aYE
+cjZ
aYs
aYs
bSV
@@ -100876,7 +102108,7 @@ buS
bAJ
czh
czu
-czA
+cPT
czE
cFc
bEl
@@ -101083,7 +102315,7 @@ aWP
aXy
aXN
aXy
-cda
+ckg
aXy
aXy
aXy
@@ -101132,7 +102364,7 @@ bqm
buS
caR
czi
-cdm
+cKj
buS
bFY
cEX
@@ -101340,7 +102572,7 @@ aWQ
aXz
aXU
aYu
-aYF
+ckY
aZn
aZx
bEs
@@ -102380,7 +103612,7 @@ ajO
ajO
ajO
ajO
-ajO
+aQa
ajO
ajO
aRy
@@ -102633,13 +103865,13 @@ ajO
aGi
axI
axI
-axI
aGi
-aNo
-aPE
-beu
ajO
+bFf
+aPE
baW
+aYZ
+beu
beK
bTX
bWI
@@ -102889,10 +104121,10 @@ avv
ajO
bCv
axI
-bCF
-axI
-axI
-aNr
+aNh
+aNz
+bDw
+bFv
bHp
bLm
ajO
@@ -103144,12 +104376,12 @@ aSt
brs
avv
ajO
-axI
avY
-bDw
-bEZ
-bFv
-bGB
+ajO
+ajO
+aOI
+bDU
+bGg
bIF
bLz
bNe
@@ -103193,7 +104425,7 @@ bqq
cPx
cFh
bJe
-cea
+cRb
cHP
bKA
bKV
@@ -103401,12 +104633,12 @@ bns
aya
avy
alo
-axZ
awn
aIS
-awn
+aNo
aJp
-aNz
+bDW
+bGB
aHq
bki
bPp
@@ -103423,11 +104655,11 @@ cwd
bYZ
bZc
cgQ
-bUt
-bUt
-bUt
-bUt
bZe
+bZe
+bZe
+bZe
+cjr
brL
brL
bVW
@@ -103658,19 +104890,19 @@ aSt
brs
avv
ajO
-axI
-avY
-bDU
-bFf
-bGg
+axZ
+ajO
+ajO
+aPf
+bEZ
bGD
bJk
bLC
-bPK
+cRf
bPV
bQT
bVq
-cpM
+cRh
bfh
cbY
cdn
@@ -103917,10 +105149,10 @@ avv
ajO
aze
azJ
-bDW
-azJ
-aNh
-aOI
+aNr
+bCF
+bDw
+bPK
bKx
bmv
ajO
@@ -103958,7 +105190,7 @@ cpI
csK
cKi
cvR
-bzH
+cPP
bts
bCY
bHJ
@@ -104175,9 +105407,9 @@ ajO
aGi
axI
aIX
-axI
aGi
-aPf
+ajO
+cRe
aZP
bmH
aYZ
@@ -104481,7 +105713,7 @@ bJi
bDa
czw
byQ
-cHV
+cPQ
cIc
cIc
cIp
@@ -104986,7 +106218,7 @@ bpE
bpE
cyQ
byQ
-cjr
+cCO
czx
czC
czG
@@ -105196,19 +106428,19 @@ bUp
cci
btZ
aSq
-rTW
-kxw
-kxw
-tpQ
-kxw
-tpQ
-kxw
-kxw
-kxw
-kxw
-kxw
-kxw
-xqa
+bgh
+bIY
+bIY
+bRo
+bIY
+bRo
+bIY
+bIY
+bIY
+bIY
+bIY
+bIY
+bRp
aaa
aaU
bWv
@@ -105453,7 +106685,7 @@ bUL
btT
btT
cjE
-opd
+bsz
aaU
aaU
cdV
@@ -105495,7 +106727,7 @@ bZk
bZn
bZq
bZh
-bIC
+cEE
bpD
cmL
cyS
@@ -105710,7 +106942,7 @@ bUY
ccj
aSw
aaW
-opd
+bsz
aaa
aaa
aaa
@@ -105967,7 +107199,7 @@ bVa
btT
aaU
aby
-opd
+bsz
aaa
aaa
aaa
@@ -106224,7 +107456,7 @@ bVu
bvB
aaU
aby
-opd
+bsz
aaa
aaa
aaa
@@ -106481,7 +107713,7 @@ bVA
btT
aaU
aby
-opd
+bsz
aaa
aaa
aaa
@@ -106738,8 +107970,8 @@ bXp
btT
aaU
abH
-aZp
-kxL
+bAA
+bMK
aZp
ceq
cet
@@ -106996,7 +108228,7 @@ bvB
bWq
acY
adz
-opd
+bsz
aaa
aaU
cdt
@@ -107253,7 +108485,7 @@ btT
btT
btT
cjF
-qnM
+bMX
cdt
cdt
cdt
@@ -107510,7 +108742,7 @@ ccn
ccA
ccy
aTl
-opd
+bsz
cdG
cer
cew
@@ -107767,7 +108999,7 @@ cco
ccE
btZ
aTl
-opd
+bsz
cdU
ces
ces
@@ -107792,7 +109024,7 @@ csQ
cqs
cqG
crt
-csx
+cdm
ctl
cuL
cvd
@@ -108024,7 +109256,7 @@ btT
btT
btT
cjF
-qnM
+bMX
cdt
cdt
cdt
@@ -108281,7 +109513,7 @@ btT
aaU
aVt
adN
-opd
+bsz
aaa
aaU
cdt
@@ -108538,7 +109770,7 @@ aaU
aaU
aTl
qeq
-rbJ
+bPh
guK
hXk
hXk
@@ -108742,11 +109974,11 @@ aFr
aKg
ahO
aml
-aoy
-aoy
+abX
+akd
aoA
awt
-aoy
+aDb
aqL
anB
alS
@@ -108795,7 +110027,7 @@ cuy
cuD
cuG
eUF
-opd
+bsz
aej
agc
agT
@@ -108822,12 +110054,12 @@ bwR
cBx
cCR
cdz
-bPX
+cPI
cdJ
cdM
cdJ
cdO
-bRA
+cPK
bbY
cIM
bZl
@@ -109000,10 +110232,10 @@ apv
aiF
amr
aqL
-abX
+aoy
aoD
aoj
-bEq
+aDm
aqL
aji
aKs
@@ -109052,7 +110284,7 @@ aQJ
aRZ
aVK
cxa
-bsz
+bPr
sVC
aNH
bbQ
@@ -109257,11 +110489,11 @@ apv
ajb
amt
anH
-akd
+aAQ
aoG
bvp
-aDm
-aFP
+aDF
+aFk
aHh
aKB
aNu
@@ -109309,7 +110541,7 @@ aaU
aSu
aYU
cxb
-opd
+bsz
aej
agC
aoJ
@@ -109336,12 +110568,12 @@ bEW
bQF
cah
cdA
-bRn
+cPJ
cdL
cmv
cdL
cdQ
-bVb
+cPL
bUD
cIV
coN
@@ -109563,10 +110795,10 @@ aaa
aaa
aaa
aaa
-rTW
-aTl
-cdp
-wPS
+bgh
+bGQ
+bIT
+bPX
aaU
atF
atF
@@ -109820,7 +111052,7 @@ aaa
aaa
aaa
aaa
-opd
+bsz
aTl
cxc
aaa
@@ -110077,7 +111309,7 @@ aaa
aaa
aaa
aaa
-opd
+bsz
aTl
cxc
aaa
@@ -110334,7 +111566,7 @@ aaa
aWR
aaa
aaU
-opd
+bsz
aTl
cxc
atF
@@ -110591,7 +111823,7 @@ cgd
bwW
beE
bwW
-opd
+bsz
aTl
cxc
atF
@@ -110625,7 +111857,7 @@ biQ
bXf
bkG
cwP
-cDh
+ctn
bob
bib
bXX
@@ -110824,9 +112056,9 @@ aIN
aMK
aOc
aSA
-aVa
-aWn
-bsR
+aTo
+aTt
+aTJ
bsR
bCG
bCK
@@ -110848,7 +112080,7 @@ cgX
chC
cik
bwW
-bGh
+bsT
bGQ
bHe
bHA
@@ -111081,9 +112313,9 @@ aKj
aVy
aRx
aSF
-aHA
+aTr
arH
-aIC
+aVa
aIK
aKk
aTU
@@ -111340,7 +112572,7 @@ aND
aWH
aHx
asc
-aID
+aWn
bvG
aKl
bCQ
@@ -111597,7 +112829,7 @@ bkT
aWJ
aHz
btb
-aID
+aWn
bvR
bCI
bDJ
@@ -111854,14 +113086,14 @@ aci
aXQ
aHy
bDc
-aIF
-aKi
+aWw
+aWy
+aYm
+aYD
+aYE
+aYF
beQ
-cnm
-cAQ
-cAS
-buO
-buR
+bjw
bwu
bAd
aMo
@@ -112111,8 +113343,8 @@ aWX
aZF
anK
aHz
-aIG
-aHA
+aWx
+aTr
boA
cAF
bCL
@@ -112136,7 +113368,7 @@ aMD
arp
bCk
aqk
-bIT
+bRn
qlJ
qlJ
bcG
@@ -112393,9 +113625,9 @@ bwW
ciV
bwW
aaU
-bIY
-bHg
-bMK
+bsT
+bRo
+bRp
anr
bcI
bgw
@@ -112652,10 +113884,10 @@ bwW
aaU
aaa
aaa
-bJv
+bsz
cJx
cJF
-bPh
+bRA
cJJ
bsX
cJM
@@ -112909,11 +114141,11 @@ bwW
aaU
aaa
aaa
-bJv
+bsz
anr
bcI
sdp
-bgw
+bUX
bgw
uwK
bhm
@@ -113166,12 +114398,12 @@ bwW
aaU
aaa
aaa
-bJv
+bsz
anr
bcI
aXp
-cwx
-bTJ
+bVb
+cfx
bhs
bmm
bcI
@@ -113397,7 +114629,7 @@ aCJ
bFn
bFn
aJd
-aJj
+bfH
bdq
bet
bmu
@@ -113423,7 +114655,7 @@ bwW
aaU
aaa
aaa
-bJv
+bsz
anr
bcI
bcI
@@ -113680,13 +114912,13 @@ bwW
aaU
aaa
aaa
-bJv
+bsz
anr
aaU
aaa
cwz
aaa
-bfW
+jyu
aaa
aaa
aaU
@@ -113937,13 +115169,13 @@ bwW
aMD
bwW
aaa
-bIY
-bMX
-tpQ
-xqa
+bsT
+bHe
+bRo
+bRp
aaa
cwD
-bfW
+jyu
aaa
aaa
aaU
@@ -114197,10 +115429,10 @@ bwW
aaU
bdR
cJr
-opd
+bTJ
aaa
aaa
-cwF
+cPz
aaa
aaa
aaU
@@ -114222,11 +115454,11 @@ bUR
cfO
cja
cja
-cgt
+boj
cxq
cxv
bgf
-bVj
+brQ
cxC
bgq
bhX
@@ -114423,7 +115655,7 @@ aNy
aSd
aTq
aVY
-bfH
+aJj
aJd
btm
bdo
@@ -114454,10 +115686,10 @@ cwv
bAQ
bAQ
cJs
-bPr
-bRo
+bUV
+caf
bam
-cwG
+cPA
bam
bYl
bam
@@ -114479,7 +115711,7 @@ cdx
cga
cgq
cgq
-cjb
+bzw
cxr
cxw
cxx
@@ -114712,9 +115944,9 @@ bsu
bsx
cJt
sVC
-bRp
+cdp
sVC
-bsT
+cPB
sVC
bZp
sVC
@@ -114738,7 +115970,7 @@ bZd
cfX
ciP
cjB
-boj
+cgt
bcl
bfc
bgs
@@ -114952,7 +116184,7 @@ aMA
czU
czY
cAe
-cAo
+bFz
cAs
cAx
bhU
@@ -114973,11 +116205,11 @@ bRv
bsD
bww
bsD
-caf
-bsD
-bsD
-bsD
-bAA
+cPE
+cPF
+cPF
+cPF
+cPG
bBL
bBL
bCm
@@ -115003,7 +116235,7 @@ cxC
bhX
biJ
bjQ
-cxT
+ctu
biZ
btz
bPm
@@ -115263,7 +116495,7 @@ cxQ
cxU
cxW
cxX
-bPm
+cPN
clX
bZu
cmM
@@ -115473,7 +116705,7 @@ aMB
bzn
bjz
cgZ
-bmS
+bzH
bJS
bmW
bmW
@@ -115499,7 +116731,7 @@ bbT
bbT
bkm
brV
-bgh
+cPH
bfU
bFD
bgO
@@ -115988,7 +117220,7 @@ bzn
bwW
bxF
aMD
-cih
+bEL
bAK
bjz
aMI
@@ -116034,7 +117266,7 @@ bGC
bpQ
bpQ
cOa
-bYg
+cPO
cya
cya
cya
@@ -116245,8 +117477,8 @@ bzn
bwW
byW
bCB
-ciX
-cij
+bIC
+bVj
cip
cpE
aaa
@@ -116502,7 +117734,7 @@ bzn
aMD
bzh
bwW
-ciV
+cih
aMI
aMI
aMI
@@ -116534,7 +117766,7 @@ bLu
bVr
cth
cje
-ctn
+csv
bcV
bby
bck
@@ -117044,7 +118276,7 @@ bgk
bbT
bkd
bbT
-bUS
+cea
bVG
cgn
cje
@@ -117055,13 +118287,13 @@ bcA
bdM
bdM
cNA
-bhP
-biv
-bjB
-bjV
+bhb
+ciE
+cmT
cnB
csh
-ciE
+cHV
+cPM
bjn
btI
buc
@@ -117283,8 +118515,8 @@ bMY
bMY
bPB
xoj
-cwB
-cwM
+cwx
+cPC
cww
cbN
cww
@@ -117314,9 +118546,9 @@ bdM
bdM
bhP
biv
-bjF
-cqB
-bXI
+cDz
+cDA
+cDD
bnX
bjn
bjn
@@ -117540,8 +118772,8 @@ bMZ
bMZ
bPC
uAY
-cwB
-bUV
+cwF
+cwM
cww
cge
cww
@@ -117793,12 +119025,12 @@ aaa
bJv
bMp
cww
-bNa
+cpM
bNa
bPJ
bRC
-cfx
-bUX
+cwG
+cPD
bVE
cbT
cww
@@ -117830,7 +119062,7 @@ ccv
boS
boI
bqZ
-ctu
+cxT
bMH
btN
buy
@@ -118090,7 +119322,7 @@ cxR
cxV
cxV
cxV
-cxZ
+cjb
cxV
cyb
cyc
@@ -118314,7 +119546,7 @@ qgO
chO
cpN
bWG
-cJo
+cRg
jiZ
bhI
cLY
@@ -118349,7 +119581,7 @@ btd
btd
bDy
bxR
-btS
+cxZ
boI
bBA
bFh
@@ -118582,7 +119814,7 @@ anr
aaa
aaU
bfC
-bhB
+bUS
bAv
bPW
cBz
@@ -119377,7 +120609,7 @@ boI
cre
cow
boI
-bzw
+cRa
boI
aaa
aaa
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 713c5fe341..868ded69ed 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -52240,6 +52240,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/cable/white{
+ icon_state = "0-4"
+ },
/turf/open/floor/plasteel/dark,
/area/engine/transit_tube)
"bLJ" = (
@@ -52257,6 +52260,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/cable/white{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel/dark,
/area/engine/transit_tube)
"bLK" = (
@@ -53546,9 +53552,6 @@
/turf/open/floor/plasteel/dark,
/area/aisat)
"bND" = (
-/obj/structure/cable/white{
- icon_state = "0-4"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -53562,6 +53565,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/cable/white{
+ icon_state = "0-4"
+ },
/turf/open/floor/plasteel/dark,
/area/aisat)
"bNE" = (
@@ -56011,27 +56017,33 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
"bRB" = (
-/obj/machinery/power/port_gen/pacman,
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
/obj/structure/sign/warning/electricshock{
pixel_y = 32
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable/white{
+ icon_state = "0-8"
+ },
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
"bRC" = (
-/obj/machinery/cell_charger,
-/obj/structure/table/reinforced,
-/obj/item/stock_parts/cell/high,
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
+/obj/machinery/power/port_gen/pacman,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
@@ -57108,10 +57120,16 @@
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
"bTr" = (
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
"bTs" = (
@@ -57123,6 +57141,9 @@
start_active = 1
},
/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
"bTt" = (
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
new file mode 100644
index 0000000000..a18d3ab68e
--- /dev/null
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -0,0 +1,127550 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aab" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/table,
+/obj/machinery/chem_dispenser/drinks/beer{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aac" = (
+/obj/machinery/camera{
+ c_tag = "Bar";
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/chem_dispenser/drinks{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aad" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aaf" = (
+/obj/docking_port/stationary{
+ dheight = 1;
+ dir = 8;
+ dwidth = 12;
+ height = 17;
+ id = "syndicate_ne";
+ name = "northeast of station";
+ width = 23
+ },
+/turf/closed/mineral/random/snow/more_caves,
+/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters)
+"aah" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aai" = (
+/turf/closed/wall/r_wall,
+/area/security/prison)
+"aaj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/security/prison)
+"aak" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison)
+"aal" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison)
+"aam" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison)
+"aan" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/ambrosia,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/turf/open/floor/grass,
+/area/security/prison)
+"aao" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/plant_analyzer,
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/turf/open/floor/grass,
+/area/security/prison)
+"aap" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/carrot,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaq" = (
+/obj/machinery/camera{
+ c_tag = "Prison Common Room";
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/structure/sink{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aar" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/glowshroom,
+/turf/open/floor/grass,
+/area/security/prison)
+"aas" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aat" = (
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aau" = (
+/obj/machinery/biogenerator,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aav" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaw" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/security/prison)
+"aax" = (
+/mob/living/simple_animal/mouse/brown/Tom,
+/turf/open/floor/grass,
+/area/security/prison)
+"aay" = (
+/turf/open/floor/plating,
+/area/security/prison)
+"aaz" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/plaques/deempisi{
+ pixel_x = -28;
+ pixel_y = -4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "barShutters";
+ name = "bar shutters";
+ pixel_x = 4;
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ name = "Bar Lights";
+ pixel_x = -6;
+ pixel_y = 28
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aaA" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaB" = (
+/obj/structure/window/reinforced,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/potato,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaC" = (
+/obj/machinery/hydroponics/soil,
+/obj/structure/window/reinforced,
+/obj/item/seeds/tower,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaD" = (
+/obj/structure/window/reinforced,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/grass,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaE" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaF" = (
+/obj/structure/window/reinforced,
+/obj/machinery/hydroponics/soil,
+/obj/item/cultivator,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaG" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaI" = (
+/obj/structure/bookcase,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaJ" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaK" = (
+/obj/machinery/computer/arcade/battle{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"aaM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"aaN" = (
+/obj/structure/chair/sofa/right,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"aaP" = (
+/obj/machinery/computer/cryopod{
+ dir = 8;
+ pixel_x = 26
+ },
+/obj/machinery/cryopod{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaQ" = (
+/turf/closed/wall,
+/area/security/warden)
+"aaU" = (
+/obj/machinery/computer/arcade/orion_trail{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaV" = (
+/obj/structure/table/wood,
+/obj/item/storage/pill_bottle/dice,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaW" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaX" = (
+/obj/structure/window/reinforced,
+/obj/machinery/cryopod{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aaY" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/closet/crate/secure/weapon{
+ desc = "A secure clothing crate.";
+ name = "formal uniform crate";
+ req_access = "3"
+ },
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/warden/formal,
+/obj/item/clothing/under/rank/security/head_of_security/formal,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/vest/warden/navyblue,
+/obj/item/clothing/suit/armor/hos/navyblue,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navywarden,
+/obj/item/clothing/head/beret/sec/navyhos,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"aaZ" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/security/armory)
+"abb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/security/execution/transfer)
+"abc" = (
+/turf/closed/wall,
+/area/security/execution/transfer)
+"abd" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/closed/wall,
+/area/security/execution/transfer)
+"abe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/execution/transfer)
+"abf" = (
+/obj/machinery/vending/sustenance,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/security/execution/transfer)
+"abh" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abi" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/item/soap/nanotrasen,
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"abj" = (
+/obj/structure/bedsheetbin/color,
+/obj/structure/table,
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"abk" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abm" = (
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abn" = (
+/obj/structure/closet/secure_closet/security/sec,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/main)
+"abp" = (
+/turf/closed/wall,
+/area/security/main)
+"abq" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/hos)
+"abr" = (
+/obj/machinery/computer/security/hos,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"abt" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"abu" = (
+/obj/machinery/door/poddoor{
+ id = "executionspaceblast"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"abv" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"abw" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/flasher{
+ id = "executionflash";
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"abx" = (
+/obj/machinery/camera/motion{
+ c_tag = "Armory External Motion Sensor";
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/ai_monitored/security/armory)
+"aby" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/security/execution/transfer)
+"abz" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"abA" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abD" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abF" = (
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"abG" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/ai_monitored/security/armory)
+"abH" = (
+/obj/structure/closet/secure_closet/security/sec,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abI" = (
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"abJ" = (
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abK" = (
+/obj/structure/chair/stool,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "permabolt3";
+ name = "Cell Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abL" = (
+/obj/structure/chair/stool,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "permabolt2";
+ name = "Cell Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abM" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"abN" = (
+/obj/effect/landmark/secequipment,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abO" = (
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/main)
+"abP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"abR" = (
+/obj/machinery/vending/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"abT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"abU" = (
+/obj/item/book/manual/wiki/security_space_law,
+/obj/structure/table/wood,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"abV" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Brig Equipment Room";
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -26
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/main)
+"abW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"abX" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/tracker,
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"abY" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"aca" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acb" = (
+/obj/machinery/sparker{
+ id = "executionburn";
+ pixel_x = 25
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acc" = (
+/obj/structure/bed,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acd" = (
+/turf/closed/wall,
+/area/security/prison)
+"ace" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "permacell3";
+ name = "cell blast door"
+ },
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "permabolt3";
+ name = "Cell 3"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acf" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "permacell2";
+ name = "cell blast door"
+ },
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "permabolt2";
+ name = "Cell 2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "permacell1";
+ name = "cell blast door"
+ },
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "permabolt1";
+ name = "Cell 1"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"ach" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restroom"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"aci" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"acj" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"ack" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/barrier{
+ pixel_x = 4
+ },
+/obj/item/grenade/barrier,
+/obj/item/grenade/barrier{
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/ai_monitored/security/armory";
+ dir = 8;
+ name = "Armory APC";
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"acl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/end{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"acm" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"acn" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aco" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"acp" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acq" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"acr" = (
+/obj/structure/chair/comfy/black,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"acs" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/hos";
+ dir = 8;
+ name = "Head of Security's Office APC";
+ pixel_x = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/bed/dogbed{
+ desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off.";
+ name = "pet bed"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/mob/living/simple_animal/hostile/retaliate/bat/secbat{
+ desc = "An adorable fruit bat with a cute little hat, may or may not have a reputation for biting out eyeballs, or at least that's what the HoS'd tell you.";
+ name = "Colonel Chomps"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"act" = (
+/obj/machinery/holopad,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"acu" = (
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"acv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"acz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acA" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acB" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acC" = (
+/obj/structure/bed,
+/obj/machinery/camera{
+ c_tag = "Prison Cell 3";
+ network = list("ss13","prison")
+ },
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_y = 24;
+ prison_radio = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acD" = (
+/obj/structure/chair/stool,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "permabolt1";
+ name = "Cell Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acE" = (
+/obj/structure/bed,
+/obj/machinery/camera{
+ c_tag = "Prison Cell 2";
+ network = list("ss13","prison")
+ },
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_y = 24;
+ prison_radio = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acF" = (
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/effect/landmark/event_spawn,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"acG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acH" = (
+/obj/structure/bed,
+/obj/machinery/camera{
+ c_tag = "Prison Cell 1";
+ network = list("ss13","prison")
+ },
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_y = 24;
+ prison_radio = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acI" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast";
+ name = "blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westright{
+ dir = 1;
+ name = "Transfer Room";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acK" = (
+/obj/structure/mirror{
+ pixel_x = 25
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"acL" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"acM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"acN" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"acO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"acP" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"acQ" = (
+/obj/structure/table/wood,
+/obj/item/folder/red,
+/obj/item/stamp/hos,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"acR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"acS" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hos)
+"acT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"acU" = (
+/obj/machinery/door/airlock/external{
+ name = "Security External Airlock";
+ req_access_txt = "63"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"acX" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast";
+ name = "blast door"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"acY" = (
+/obj/structure/table,
+/obj/item/paper,
+/obj/item/pen,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"acZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast";
+ name = "blast door"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"ada" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/flasher{
+ id = "PCell 3";
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adb" = (
+/obj/structure/table,
+/obj/item/paper,
+/obj/item/pen,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adc" = (
+/obj/machinery/flasher{
+ id = "PCell 1";
+ pixel_x = -28
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"add" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/flasher{
+ id = "PCell 2";
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"ade" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adf" = (
+/obj/structure/toilet/secret/prison{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"adg" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"adh" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"adi" = (
+/obj/structure/rack,
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/ballistic/shotgun/riot,
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"adj" = (
+/obj/machinery/recharger,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/main)
+"adk" = (
+/obj/machinery/recharger,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/main)
+"adl" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"adm" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/secequipment,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"adn" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
+"ado" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adp" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/item/radio/headset{
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
+ name = "prisoner headset";
+ prison_radio = 1
+ },
+/obj/item/radio/headset{
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
+ name = "prisoner headset";
+ prison_radio = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adq" = (
+/obj/machinery/computer/slot_machine{
+ balance = 15;
+ money = 500;
+ pixel_x = -5
+ },
+/obj/structure/sign/poster/contraband/robust_softdrinks{
+ pixel_x = -32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"adr" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ads" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/solar{
+ id = "auxsolareast";
+ name = "Port Auxiliary Solar Array"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"adu" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"adB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"adC" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/razor,
+/obj/item/toy/plush/borgplushie{
+ desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy.";
+ force = 1;
+ name = "dogborg plushie";
+ throwforce = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"adD" = (
+/obj/machinery/button/flasher{
+ id = "executionflash";
+ pixel_x = 24;
+ pixel_y = 5
+ },
+/obj/machinery/button/door{
+ id = "executionspaceblast";
+ name = "Vent to Space";
+ pixel_x = 25;
+ pixel_y = -5;
+ req_access_txt = "7"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"adE" = (
+/obj/structure/table,
+/obj/item/folder/red{
+ pixel_x = 3
+ },
+/obj/item/taperecorder{
+ pixel_x = -3
+ },
+/obj/item/assembly/flash/handheld,
+/obj/item/reagent_containers/spray/pepper,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"adF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/security/prison)
+"adG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/prison)
+"adH" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Long-Term Cell 3";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adI" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Long-Term Cell 2";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adJ" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Long-Term Cell 1";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"adK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -26
+ },
+/obj/machinery/camera{
+ c_tag = "Brig EVA Storage";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"adL" = (
+/obj/machinery/suit_storage_unit/security,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"adM" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"adN" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Head of Security's Desk";
+ departmentType = 5;
+ name = "Head of Security RC";
+ pixel_y = 30
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = -31
+ },
+/obj/structure/table/wood,
+/obj/item/storage/box/seccarts{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/item/storage/box/deputy,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"adO" = (
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"adP" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/e_gun,
+/obj/item/gun/energy/e_gun{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"adQ" = (
+/obj/machinery/computer/card/minor/hos,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"adR" = (
+/turf/closed/wall/r_wall,
+/area/security/main)
+"adS" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"adT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"adW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aea" = (
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"aeb" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"aec" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"aed" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/button/ignition{
+ id = "executionburn";
+ pixel_x = 24;
+ pixel_y = 5
+ },
+/obj/machinery/button/door{
+ id = "executionfireblast";
+ name = "Transfer Area Lockdown";
+ pixel_x = 25;
+ pixel_y = -5;
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"aee" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"aef" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeg" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/security/execution/transfer)
+"aeh" = (
+/obj/machinery/button/door{
+ id = "permacell3";
+ name = "Cell 3 Lockdown";
+ pixel_x = -4;
+ pixel_y = 25;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/flasher{
+ id = "PCell 3";
+ pixel_x = 6;
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aei" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aej" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aek" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/computer/security/telescreen/prison{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"ael" = (
+/obj/machinery/button/door{
+ id = "permacell2";
+ name = "Cell 2 Lockdown";
+ pixel_x = -4;
+ pixel_y = 25;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/flasher{
+ id = "PCell 2";
+ pixel_x = 6;
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aem" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aen" = (
+/obj/machinery/computer/security/telescreen/prison{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Hallway";
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aep" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeq" = (
+/obj/machinery/button/door{
+ id = "permacell1";
+ name = "Cell 1 Lockdown";
+ pixel_x = -4;
+ pixel_y = 25;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/flasher{
+ id = "PCell 1";
+ pixel_x = 6;
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aer" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/prison";
+ dir = 4;
+ name = "Prison Wing APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aes" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"aet" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Equipment Room";
+ req_access_txt = "1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/main)
+"aeu" = (
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -30
+ },
+/obj/machinery/camera{
+ c_tag = "Head of Security's Office";
+ dir = 4
+ },
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table/wood,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"aev" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aew" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aex" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"aey" = (
+/obj/machinery/keycard_auth{
+ pixel_x = 24;
+ pixel_y = 10
+ },
+/obj/structure/table/wood,
+/obj/item/radio/off,
+/obj/item/taperecorder,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"aez" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/flashlight/lamp/green{
+ on = 0;
+ pixel_x = -3;
+ pixel_y = 8
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"aeA" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aeB" = (
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel,
+/area/security/main)
+"aeC" = (
+/obj/machinery/camera{
+ c_tag = "Security Escape Pod";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aeD" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/hos,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"aeE" = (
+/obj/structure/closet/secure_closet/lethalshots,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aeF" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/firingpins{
+ pixel_x = 6
+ },
+/obj/item/storage/box/firingpins{
+ pixel_x = -3
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aeG" = (
+/obj/structure/cable,
+/obj/machinery/power/solar{
+ id = "auxsolareast";
+ name = "Port Auxiliary Solar Array"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"aeH" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"aeI" = (
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/item/tank/internals/oxygen/red{
+ pixel_x = 3
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"aeJ" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"aeK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/general/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"aeL" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"aeM" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ aiControlDisabled = 1;
+ name = "Prisoner Transfer Centre";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"aeO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeP" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeQ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeR" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aeS" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/item/radio/headset{
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
+ name = "prisoner headset";
+ prison_radio = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeT" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeU" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aeV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aeW" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/chemimp{
+ pixel_x = 6
+ },
+/obj/item/storage/box/trackimp{
+ pixel_x = -3
+ },
+/obj/item/storage/lockbox/loyalty,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aeX" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aeY" = (
+/obj/vehicle/ridden/secway,
+/obj/item/key/security,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aeZ" = (
+/obj/structure/rack,
+/obj/item/gun/energy/ionrifle,
+/obj/item/gun/energy/temperature/security,
+/obj/item/clothing/suit/armor/laserproof,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"afb" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"afc" = (
+/obj/structure/closet/secure_closet/contraband/armory,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"afd" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"afe" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aff" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afg" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afh" = (
+/obj/effect/landmark/start/security_officer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/brig)
+"afo" = (
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"afr" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/plasteel,
+/area/security/main)
+"afs" = (
+/obj/item/storage/secure/safe/HoS{
+ pixel_x = 35
+ },
+/obj/structure/closet/secure_closet/hos,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"aft" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"afu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"afv" = (
+/obj/machinery/atmospherics/pipe/simple/general/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"afw" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ layer = 2.4
+ },
+/obj/machinery/door/window/southleft{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Armory";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"afx" = (
+/obj/machinery/light_switch{
+ pixel_x = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/general/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"afy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/general/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"afz" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"afA" = (
+/turf/closed/wall/r_wall,
+/area/security/execution/transfer)
+"afB" = (
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"afC" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"afD" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/plasteel,
+/area/security/main)
+"afE" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"afF" = (
+/obj/structure/table,
+/obj/item/assembly/signaler,
+/obj/item/clothing/suit/straight_jacket,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"afG" = (
+/obj/structure/table,
+/obj/item/storage/box/hug,
+/obj/item/razor{
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"afH" = (
+/obj/structure/table/glass,
+/obj/item/storage/firstaid/regular{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/regular,
+/obj/item/reagent_containers/glass/bottle/charcoal{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/bottle/epinephrine{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/obj/item/reagent_containers/syringe{
+ name = "steel point"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"afI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/brig)
+"afJ" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 1;
+ pixel_y = -27
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"afK" = (
+/obj/structure/table/glass,
+/obj/machinery/computer/med_data/laptop,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"afL" = (
+/obj/machinery/computer/operating,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"afM" = (
+/turf/open/floor/plasteel,
+/area/security/brig)
+"afN" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"afO" = (
+/obj/machinery/door/airlock/command{
+ name = "Command Tool Storage";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"afP" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/command{
+ name = "Command Tool Storage";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"afQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/security/main)
+"afR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/main)
+"afS" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Brig EVA Storage";
+ req_access_txt = "3"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"afT" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"afU" = (
+/turf/open/floor/plasteel,
+/area/security/main)
+"afV" = (
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
+/obj/item/assembly/timer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"afW" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/security/main)
+"afX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/start/head_of_security,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"afY" = (
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"afZ" = (
+/obj/structure/table,
+/obj/item/radio/off,
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aga" = (
+/obj/structure/sign/warning/pods{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"agb" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"agc" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"agd" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"age" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/range)
+"agf" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal,
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"agg" = (
+/obj/structure/closet/secure_closet/injection,
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/security/execution/transfer";
+ name = "Prisoner Transfer Centre";
+ pixel_y = -27
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"agh" = (
+/obj/structure/table,
+/obj/item/electropack,
+/obj/item/screwdriver,
+/obj/item/wrench,
+/obj/item/clothing/head/helmet,
+/obj/item/assembly/signaler,
+/obj/machinery/light/small,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"agi" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Wing";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"agj" = (
+/turf/closed/wall,
+/area/security/brig)
+"agk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Wing";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"agl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"agm" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"agn" = (
+/turf/closed/wall/r_wall,
+/area/security/warden)
+"ago" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"agp" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/security_space_law,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agq" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/processing)
+"ags" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/main)
+"agt" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"agu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/security/processing)
+"agw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "hos";
+ name = "HoS Office Shutters";
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"agx" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"agy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"agz" = (
+/obj/structure/closet/secure_closet{
+ name = "nonlethal ammunition";
+ req_access = "list(3)"
+ },
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agA" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"agB" = (
+/obj/structure/table,
+/obj/item/assembly/flash/handheld,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"agC" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"agD" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agE" = (
+/obj/structure/table,
+/obj/item/storage/fancy/donut_box{
+ pixel_y = 10
+ },
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box{
+ pixel_y = -10
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"agF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agG" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"agH" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agJ" = (
+/obj/machinery/flasher/portable,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agK" = (
+/obj/machinery/flasher/portable,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agM" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/brig";
+ dir = 1;
+ name = "Brig APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agN" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"agO" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Brig Infirmary";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agQ" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/structure/closet/secure_closet/courtroom,
+/obj/effect/decal/cleanable/cobweb,
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/item/gavelhammer,
+/obj/machinery/atmospherics/pipe/simple/scrubbers,
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"agR" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4;
+ pixel_x = -3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agS" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"agU" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agV" = (
+/obj/machinery/button/door{
+ id = "armory1";
+ name = "Armory Shutters";
+ pixel_y = -26;
+ req_access_txt = "3"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agW" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/item/storage/box/handcuffs{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/item/storage/box/handcuffs{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera/motion{
+ c_tag = "Armory Motion Sensor";
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agX" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agY" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/bodybags,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"agZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"aha" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahb" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/brig)
+"ahc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahd" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahe" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ sortType = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahh" = (
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/item/folder/red,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/pen,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahi" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ sortType = 7
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahj" = (
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Security Delivery";
+ req_access_txt = "1"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ahl" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "Security"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"ahn" = (
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"aho" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahp" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/rack,
+/obj/item/storage/box/prisoner,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"ahr" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"ahs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/right,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"aht" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/brig)
+"ahu" = (
+/obj/structure/table/optable,
+/obj/item/storage/backpack/duffelbag/sec/surgery,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ahv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"ahw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/brig)
+"ahx" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"ahy" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ahz" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ahA" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced,
+/obj/item/storage/box/teargas{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/item/storage/box/flashbangs{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/item/radio/intercom{
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahB" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun/dragnet{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/gun/energy/e_gun/dragnet{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahC" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/suit/waiter,
+/obj/item/clothing/under/suit/waiter,
+/obj/item/clothing/under/suit/waiter,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"ahD" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"ahE" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/item/radio/headset{
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
+ name = "prisoner headset";
+ prison_radio = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"ahF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahG" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/window/westright{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ahH" = (
+/obj/structure/disposalpipe/junction/yjunction{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahM" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahN" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/main";
+ dir = 4;
+ name = "Security Office APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ahO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"ahP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/under/costume/kilt,
+/obj/item/clothing/under/costume/kilt,
+/obj/item/clothing/under/dress/skirt/purple,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/structure/sign/poster/official/fashion{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"ahQ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahR" = (
+/obj/structure/rack,
+/obj/item/gun/energy/laser{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/laser,
+/obj/item/gun/energy/laser{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahS" = (
+/obj/structure/bodycontainer/morgue,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera{
+ c_tag = "Brig Infirmary";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ahT" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ahU" = (
+/obj/machinery/computer/shuttle/labor{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"ahV" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/computer/security/labor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"ahW" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/suit/armor/riot,
+/obj/item/clothing/suit/armor/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/clothing/head/helmet/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/helmet/riot,
+/obj/item/clothing/head/helmet/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/shield/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/shield/riot,
+/obj/item/shield/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahX" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahY" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/mob/living/simple_animal/bot/secbot{
+ arrest_type = 1;
+ health = 45;
+ icon_state = "secbot1";
+ idcheck = 1;
+ name = "Sergeant-at-Armsky";
+ weaponscheck = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ahZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/brig)
+"aia" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/secure_closet/hydroponics,
+/obj/structure/sign/poster/official/hydro_ad{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aib" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aic" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aid" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/brig)
+"aie" = (
+/obj/structure/bed,
+/obj/machinery/iv_drip,
+/obj/item/bedsheet/medical,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aif" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aig" = (
+/obj/structure/table,
+/obj/item/clothing/mask/gas/sechailer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/gas/sechailer{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/item/storage/toolbox/drone{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aih" = (
+/obj/machinery/button/door{
+ id = "armory2";
+ name = "Armory Shutters";
+ pixel_y = -26;
+ req_access_txt = "3"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aii" = (
+/obj/machinery/rnd/production/techfab/department/security,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aij" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"aik" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/gun/energy/laser/practice,
+/obj/machinery/syndicatebomb/training,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ail" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/range)
+"aim" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"ain" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/bulletproof{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/suit/armor/bulletproof,
+/obj/item/clothing/suit/armor/bulletproof{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/clothing/head/helmet/alt{
+ layer = 3.00001;
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/helmet/alt{
+ layer = 3.00001
+ },
+/obj/item/clothing/head/helmet/alt{
+ layer = 3.00001;
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aio" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/rglass{
+ amount = 50
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aip" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aiq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"air" = (
+/obj/structure/chair,
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"ais" = (
+/obj/structure/filingcabinet,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ait" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aiu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aiv" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun/advtaser{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/e_gun/advtaser,
+/obj/item/gun/energy/e_gun/advtaser{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aiw" = (
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aix" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aiy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aiz" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair/sofa{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"aiA" = (
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aiB" = (
+/obj/machinery/vending/kink,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/fashion{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aiC" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/plasteel,
+/area/security/main)
+"aiD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"aiE" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"aiF" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/gulag_item_reclaimer{
+ pixel_x = 32
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Security Docking";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"aiG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aiH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Brig Central";
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aiI" = (
+/obj/structure/bodycontainer/morgue,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aiJ" = (
+/obj/structure/reagent_dispensers/watertank/high,
+/obj/structure/sign/poster/official/hydro_ad{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aiK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"aiL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/brig)
+"aiM" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/brig)
+"aiN" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"aiO" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aiP" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/regular,
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"aiQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"aiR" = (
+/obj/structure/closet/l3closet/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aiS" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aiT" = (
+/turf/closed/wall,
+/area/security/processing)
+"aiU" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/processing)
+"aiV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aiW" = (
+/obj/structure/closet/bombcloset/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aiX" = (
+/turf/closed/wall/r_wall,
+/area/security/brig)
+"aiY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"aiZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"aja" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ajb" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ajc" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajd" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plasteel,
+/area/security/vacantoffice/b)
+"aje" = (
+/obj/machinery/door/airlock/security{
+ name = "Armory";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ajf" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"ajg" = (
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ajh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/sign/poster/official/pda_ad800{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aji" = (
+/obj/structure/chair{
+ name = "Judge"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajj" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/machinery/camera{
+ c_tag = "Courtroom North"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajk" = (
+/obj/structure/chair{
+ name = "Judge"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajl" = (
+/obj/structure/chair{
+ name = "Judge"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajm" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajn" = (
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajo" = (
+/turf/closed/wall,
+/area/security/courtroom)
+"ajp" = (
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajr" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"ajs" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sign/poster/official/pda_ad600{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"ajt" = (
+/obj/machinery/camera{
+ c_tag = "Vacant Office B";
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plasteel,
+/area/security/vacantoffice/b)
+"aju" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ajv" = (
+/obj/machinery/computer/med_data{
+ dir = 3
+ },
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"ajw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ajx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ajy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ajz" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"ajA" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ajB" = (
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"ajC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajD" = (
+/obj/effect/spawner/lootdrop/keg,
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ajE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajG" = (
+/obj/structure/table,
+/obj/item/kitchen/rollingpin,
+/obj/item/reagent_containers/food/condiment/enzyme,
+/obj/item/reagent_containers/food/condiment/sugar,
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ajH" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajL" = (
+/obj/machinery/computer/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ajM" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/structure/sign/poster/contraband/scum{
+ pixel_y = 32
+ },
+/obj/structure/sign/poster/contraband/scum{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ajN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajO" = (
+/obj/structure/table/wood,
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (Court)"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajP" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajQ" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajR" = (
+/obj/structure/table/wood,
+/obj/item/gavelblock,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajS" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajT" = (
+/obj/structure/chair{
+ dir = 8;
+ name = "Defense"
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ajU" = (
+/obj/machinery/door/window/southleft{
+ name = "Court Cell";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajV" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ajW" = (
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ajX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajY" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/window/westleft{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ajZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"aka" = (
+/obj/structure/closet/secure_closet/bar{
+ req_access_txt = "25"
+ },
+/obj/item/clothing/under/suit/waiter,
+/obj/item/clothing/under/suit/waiter,
+/obj/item/clothing/under/suit/waiter,
+/obj/item/gun/ballistic/revolver/doublebarrel,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"akb" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"akc" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"akd" = (
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"ake" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/security/brig)
+"akg" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akh" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/plasteel,
+/area/security/main)
+"aki" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"akj" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Security Office";
+ req_access_txt = "1"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/security/main)
+"akl" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akm" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akn" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ako" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akp" = (
+/obj/machinery/door_timer{
+ id = "Cell 1";
+ name = "Cell 1";
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Brig West";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/computer/security/telescreen/interrogation{
+ dir = 1;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aks" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/main)
+"akt" = (
+/obj/machinery/chem_master/condimaster{
+ name = "HoochMaster 2000"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aku" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"akx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aky" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"akz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akA" = (
+/obj/structure/chair{
+ dir = 8;
+ name = "Defense"
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"akB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"akC" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akE" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/yellowsiding{
+ dir = 1
+ },
+/area/crew_quarters/fitness/pool)
+"akF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"akH" = (
+/obj/machinery/holopad,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"akI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"akJ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Brig";
+ req_access_txt = "63; 42"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"akL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"akM" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akO" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/security/main)
+"akP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"akQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall,
+/area/security/brig)
+"akR" = (
+/obj/machinery/camera{
+ c_tag = "Security Office";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/storage/box/donkpockets,
+/turf/open/floor/plasteel,
+/area/security/main)
+"akS" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/security/main)
+"akT" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akU" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akV" = (
+/obj/machinery/door/window/southleft{
+ dir = 1;
+ name = "Test Chamber";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"akW" = (
+/obj/machinery/door/window/southleft{
+ name = "Test Chamber";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"akX" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"akY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/warden)
+"akZ" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Brig Control";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"ala" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/warden)
+"alb" = (
+/obj/structure/chair{
+ dir = 4;
+ name = "Prosecution"
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"alc" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ald" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ale" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"alf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"alg" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alh" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ali" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"alj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alk" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"all" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"aln" = (
+/obj/effect/landmark/start/scientist,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"alo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/warden)
+"alp" = (
+/turf/open/floor/plating,
+/area/security/processing)
+"alq" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Evidence Storage";
+ req_access_txt = "4"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/warden)
+"alr" = (
+/obj/machinery/computer/camera_advanced/xenobio{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"als" = (
+/obj/machinery/door_timer{
+ id = "Cell 3";
+ name = "Cell 3";
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alt" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "innerbrig";
+ name = "Brig";
+ req_access_txt = "63"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alu" = (
+/obj/machinery/nuclearbomb/selfdestruct,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"alv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"alw" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "innerbrig";
+ name = "Brig";
+ req_access_txt = "63"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alx" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_y = 4
+ },
+/obj/item/folder/white{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_x = -4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"aly" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alC" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"alD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"alE" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/computer/security{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24;
+ pixel_y = 28
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"alF" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"alG" = (
+/obj/structure/chair{
+ dir = 4;
+ name = "Prosecution"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"alH" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"alI" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"alJ" = (
+/obj/item/beacon,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"alK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"alL" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/power/apc{
+ areastring = "/area/security/courtroom";
+ dir = 8;
+ name = "Courtroom APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"alM" = (
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"alN" = (
+/obj/machinery/computer/prisoner/management,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"alO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"alP" = (
+/turf/closed/wall,
+/area/maintenance/starboard/fore)
+"alQ" = (
+/obj/machinery/power/solar_control{
+ id = "auxsolareast";
+ name = "Port Bow Solar Control"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"alR" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/port/fore)
+"alS" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"alT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"alU" = (
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"alV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"alW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"alX" = (
+/obj/machinery/button/door{
+ id = "atmos";
+ name = "Atmospherics Lockdown";
+ pixel_x = 24;
+ pixel_y = 4;
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"alY" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/computer/secure_data,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"alZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/brig)
+"ama" = (
+/mob/living/simple_animal/sloth/paperwork,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"amb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/security/warden)
+"amc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/warden)
+"ame" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amf" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amg" = (
+/obj/structure/closet{
+ name = "Evidence Closet"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/warden)
+"amh" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"ami" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"amj" = (
+/obj/machinery/door_timer{
+ id = "Cell 2";
+ name = "Cell 2";
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amk" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aml" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amm" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"amn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Cell Interior Shutters";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"amo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amp" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"ams" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"amt" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Courtroom";
+ req_access_txt = "42"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"amu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"amv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"amw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"amx" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"amy" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"amz" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"amA" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"amB" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Cell Interior Shutters";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"amC" = (
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"amD" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"amE" = (
+/obj/structure/bed,
+/obj/effect/landmark/xeno_spawn,
+/obj/item/bedsheet,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"amF" = (
+/obj/machinery/computer/slot_machine{
+ balance = 15;
+ money = 500
+ },
+/obj/item/coin/iron,
+/obj/item/coin/diamond,
+/obj/item/coin/diamond,
+/obj/item/coin/diamond,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"amG" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amH" = (
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"amI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amJ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"amK" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall,
+/area/security/processing)
+"amL" = (
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"amM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/security{
+ name = "Labor Shuttle";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"amN" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/machinery/door/window/brigdoor{
+ dir = 4;
+ name = "Reception Desk";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/obj/machinery/door/window/southright{
+ dir = 8;
+ name = "Reception Desk";
+ req_access_txt = "63"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"amO" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"amP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"amQ" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"amR" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/brig)
+"amS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/security/brig)
+"amT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio8";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"amV" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"amW" = (
+/obj/effect/landmark/start/warden,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"amX" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"amY" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"amZ" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ana" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anb" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"and" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ane" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"anf" = (
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ang" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/port/fore";
+ dir = 8;
+ name = "Port Bow Solar APC";
+ pixel_x = -25;
+ pixel_y = 3
+ },
+/obj/machinery/camera{
+ c_tag = "Fore Port Solar Control";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"anh" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ani" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"anj" = (
+/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ank" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"anl" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"anm" = (
+/obj/item/trash/sosjerky,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ann" = (
+/obj/item/electronics/airalarm,
+/obj/item/circuitboard/machine/seed_extractor,
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ano" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"anp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"anq" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"anr" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall,
+/area/security/warden)
+"ans" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"ant" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Evidence Storage";
+ req_access_txt = "3"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"anu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/warden)
+"anv" = (
+/obj/structure/closet{
+ name = "Evidence Closet"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/warden)
+"anw" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"anx" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"any" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"anz" = (
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"anA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"anB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 2";
+ name = "Cell 2 Locker"
+ },
+/obj/item/radio/headset{
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
+ name = "prisoner headset";
+ prison_radio = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"anC" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"anD" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anF" = (
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anG" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/fitness/pool";
+ name = "Pool APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anH" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/port/fore)
+"anI" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Port Bow Solar Access";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"anJ" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"anK" = (
+/obj/effect/decal/cleanable/egg_smudge,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"anL" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"anM" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_x = -27;
+ pixel_y = -27;
+ prison_radio = 1
+ },
+/obj/machinery/flasher{
+ id = "Cell 2";
+ pixel_x = -24;
+ pixel_y = -36
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/blue,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"anN" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"anO" = (
+/obj/item/stack/cable_coil/random,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"anP" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"anQ" = (
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"anR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"anS" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"anT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"anU" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Courtroom"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anV" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anX" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/machinery/camera{
+ c_tag = "Courtroom South";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anY" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoa" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aob" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"aoc" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"aod" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"aoe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"aof" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/starboard/fore)
+"aog" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoh" = (
+/obj/machinery/power/solar_control{
+ id = "auxsolareast";
+ name = "Starboard Bow Solar Control"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoi" = (
+/obj/structure/rack,
+/obj/item/clothing/mask/gas,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/item/multitool,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoj" = (
+/obj/machinery/camera{
+ c_tag = "Fore Port Solar Access"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aok" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aol" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aom" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aon" = (
+/obj/structure/chair,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoo" = (
+/obj/structure/rack,
+/obj/item/circuitboard/machine/monkey_recycler,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aop" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/mob/living/simple_animal/slime,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aoq" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aor" = (
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
+/obj/item/taperecorder,
+/obj/item/folder/red,
+/obj/machinery/light_switch{
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aos" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aot" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aou" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"aov" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aow" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aox" = (
+/obj/machinery/camera{
+ c_tag = "Fore Primary Hallway West";
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoy" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=EVA";
+ location = "Security"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoz" = (
+/obj/effect/turf_decal/tile/red,
+/obj/structure/sign/departments/security{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoA" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoB" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoC" = (
+/obj/effect/turf_decal/tile/red,
+/obj/item/storage/box/drinkingglasses,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoD" = (
+/obj/machinery/camera{
+ c_tag = "Fore Primary Hallway East";
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoE" = (
+/obj/effect/turf_decal/tile/red,
+/obj/item/storage/box/cups,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoF" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/chem_dispenser/drinks,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aoG" = (
+/obj/structure/table,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"aoH" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"aoI" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoJ" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoK" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoL" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Air Out"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoM" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoN" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoO" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoP" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aoQ" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aoR" = (
+/obj/machinery/atmospherics/components/trinary/filter{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoS" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoT" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoU" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 9
+ },
+/obj/structure/bed,
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoV" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aoW" = (
+/obj/structure/table,
+/obj/item/stamp,
+/obj/item/poster/random_official,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoX" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoY" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24;
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"aoZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/warden)
+"apa" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"apb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/mob/living/simple_animal/slime,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"apc" = (
+/obj/structure/chair/office/dark,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"apd" = (
+/turf/closed/wall,
+/area/security/detectives_office)
+"ape" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/abandoned{
+ abandoned = 0;
+ name = "Vacant Office B";
+ req_access_txt = "32"
+ },
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"apf" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall,
+/area/security/detectives_office)
+"apg" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aph" = (
+/turf/closed/wall,
+/area/lawoffice)
+"api" = (
+/obj/machinery/door/airlock{
+ name = "Law Office";
+ req_access_txt = "38"
+ },
+/turf/open/floor/plasteel,
+/area/lawoffice)
+"apj" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"apk" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"apl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"apm" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"apn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"apo" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"app" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apq" = (
+/obj/machinery/space_heater,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apr" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/fore/secondary";
+ dir = 1;
+ name = "Fore Maintenance APC";
+ pixel_y = 24
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aps" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/fitness";
+ name = "Fitness Room APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apv" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"apw" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"apx" = (
+/obj/machinery/door/airlock/atmos/abandoned{
+ name = "Atmospherics Maintenance";
+ req_access_txt = "12;24"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apy" = (
+/obj/item/wrench,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apz" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"apA" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/starboard/fore";
+ dir = 8;
+ name = "Starboard Bow Solar APC";
+ pixel_x = -25;
+ pixel_y = 3
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"apB" = (
+/obj/machinery/camera{
+ c_tag = "Fore Starboard Solars";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"apC" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/starboard/fore)
+"apD" = (
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"apE" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"apF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"apG" = (
+/obj/machinery/portable_atmospherics/canister/water_vapor,
+/turf/open/floor/plasteel,
+/area/janitor)
+"apH" = (
+/obj/machinery/computer/crew{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "outerbrig";
+ name = "Brig Exterior Doors Control";
+ normaldoorcontrol = 1;
+ pixel_x = -24;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/door{
+ id = "innerbrig";
+ name = "Brig Interior Doors Control";
+ normaldoorcontrol = 1;
+ pixel_x = -24;
+ pixel_y = -24;
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"apI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"apJ" = (
+/turf/closed/wall,
+/area/construction/mining/aux_base)
+"apK" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"apL" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"apM" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"apN" = (
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"apO" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"apP" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"apQ" = (
+/obj/structure/closet{
+ name = "Evidence Closet"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/warden)
+"apR" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "outerbrig";
+ name = "Brig";
+ req_access_txt = "63"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"apS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"apT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/closed/wall/r_wall,
+/area/security/warden)
+"apU" = (
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"apV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"apW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"apX" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/warden)
+"apY" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"apZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"aqa" = (
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"aqb" = (
+/obj/structure/rack,
+/obj/item/storage/briefcase,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/wood,
+/area/lawoffice)
+"aqc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"aqd" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aqe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqk" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/dorms";
+ name = "Dormitory APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aql" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqn" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm4";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"aqo" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"aqp" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/fire/firefighter,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/gas,
+/obj/item/extinguisher,
+/obj/item/clothing/head/hardhat/red,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqq" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqr" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor{
+ dir = 1;
+ name = "Reception Desk";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/window/southleft{
+ name = "Reception Desk";
+ req_access_txt = "63"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"aqs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Pool"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"aqt" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/warden)
+"aqu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"aqv" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "Starboard Bow Solar Access";
+ req_access_txt = "10"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aqx" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/starboard/fore)
+"aqy" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqz" = (
+/obj/structure/table,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqA" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aqC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aqD" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aqE" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aqF" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aqG" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"aqH" = (
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aqI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"aqJ" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aqK" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"aqL" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aqM" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 10
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aqN" = (
+/obj/structure/closet/secure_closet/warden,
+/obj/structure/sign/poster/official/ion_rifle{
+ pixel_y = 32
+ },
+/obj/structure/sign/poster/official/twelve_gauge{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/item/radio/intercom{
+ pixel_x = 32;
+ pixel_y = 20
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"aqO" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aqP" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port/fore";
+ dir = 1;
+ name = "Port Bow Maintenance APC";
+ pixel_x = -1;
+ pixel_y = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aqQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqR" = (
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqS" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"aqT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Security Maintenance";
+ req_access_txt = "1"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqU" = (
+/obj/item/paper/fluff/jobs/security/beepsky_mom,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqV" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"aqW" = (
+/turf/open/floor/carpet,
+/area/security/detectives_office)
+"aqX" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/chair,
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"aqY" = (
+/obj/structure/table/wood,
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"aqZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ara" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/requests_console{
+ department = "Law office";
+ pixel_x = -32
+ },
+/obj/machinery/vending/wardrobe/law_wardrobe,
+/turf/open/floor/wood,
+/area/lawoffice)
+"arb" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/pen/red,
+/turf/open/floor/wood,
+/area/lawoffice)
+"arc" = (
+/obj/structure/plasticflaps,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ard" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "lawyer_blast";
+ name = "privacy door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/lawoffice)
+"are" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"arf" = (
+/turf/closed/wall,
+/area/crew_quarters/dorms)
+"arg" = (
+/obj/item/bedsheet/red,
+/mob/living/simple_animal/bot/secbot/beepsky{
+ name = "Officer Beepsky"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"arh" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Dormitories Maintenance";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ari" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"arj" = (
+/turf/closed/wall,
+/area/crew_quarters/fitness)
+"ark" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"arl" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/potato{
+ name = "\improper Beepsky's emergency battery"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"arm" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"arn" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/processing";
+ dir = 8;
+ name = "Labor Shuttle Dock APC";
+ pixel_x = -24
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aro" = (
+/turf/open/floor/engine{
+ name = "Holodeck Projector Floor"
+ },
+/area/holodeck/rec_center)
+"arp" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arq" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ars" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"art" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Fore Starboard Solar Access"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aru" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arv" = (
+/obj/structure/table,
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arw" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arx" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ary" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/warden";
+ name = "Brig Control APC";
+ pixel_y = -24
+ },
+/obj/machinery/button/door{
+ id = "Secure Gate";
+ name = "Cell Shutters";
+ pixel_x = 6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/door{
+ id = "Prison Gate";
+ name = "Prison Wing Lockdown";
+ pixel_x = -6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/obj/machinery/light,
+/obj/structure/cable,
+/obj/machinery/camera{
+ c_tag = "Brig Control";
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"arz" = (
+/obj/item/coin/gold,
+/obj/item/coin/iron,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arA" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/plasma,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arB" = (
+/turf/closed/wall/r_wall,
+/area/hallway/secondary/entry)
+"arC" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"arD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 3";
+ name = "Cell 3 Locker"
+ },
+/obj/item/radio/headset{
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
+ name = "prisoner headset";
+ prison_radio = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"arE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"arF" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"arG" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"arH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arI" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arJ" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arK" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/port/fore)
+"arL" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arM" = (
+/obj/structure/closet/crate{
+ icon_state = "crateopen"
+ },
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arN" = (
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arO" = (
+/obj/item/clothing/gloves/color/rainbow,
+/obj/item/clothing/head/soft/rainbow,
+/obj/item/clothing/shoes/sneakers/rainbow,
+/obj/item/clothing/under/color/rainbow,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arP" = (
+/turf/closed/wall,
+/area/maintenance/fore)
+"arQ" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"arR" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"arS" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"arT" = (
+/turf/open/floor/plasteel,
+/area/security/vacantoffice/b)
+"arU" = (
+/obj/structure/rack,
+/turf/open/floor/plasteel,
+/area/security/vacantoffice/b)
+"arV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/filingcabinet/employment,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"arW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/lawoffice)
+"arX" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/item/folder/blue,
+/obj/item/folder/blue,
+/obj/item/folder/blue,
+/obj/item/stamp/law,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"arY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"arZ" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/landmark/start/lawyer,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"asa" = (
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"asb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Brig Evidence Storage";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/warden)
+"asc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/dorms)
+"ase" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asf" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"asg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 4;
+ icon_state = "roomnum";
+ name = "Room Number 3";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"ash" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"ask" = (
+/obj/item/flashlight/lamp/green{
+ pixel_x = -2;
+ pixel_y = 15
+ },
+/obj/structure/dresser,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"asl" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"asm" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"asn" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"aso" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Law Office Maintenance";
+ req_access_txt = "38"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asp" = (
+/obj/machinery/camera{
+ c_tag = "Brig Interrogation";
+ dir = 8;
+ network = list("interrogation")
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"asq" = (
+/obj/machinery/disposal/bin,
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/machinery/button/door{
+ id = "Secure Brig Control";
+ name = "Brig Control Shutters";
+ pixel_x = 6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/door{
+ id = "Cell Interior Shutters";
+ name = "Cell Interior Shutters";
+ pixel_x = -6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"asr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"ass" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"ast" = (
+/obj/structure/bed,
+/obj/item/bedsheet/random,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"asu" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"asv" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"asw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asx" = (
+/obj/structure/door_assembly/door_assembly_mai,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asy" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Firefighting equipment";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asz" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/donut,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asA" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asB" = (
+/turf/closed/wall,
+/area/maintenance/department/electrical)
+"asC" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/xenobiology)
+"asD" = (
+/obj/structure/table/wood,
+/mob/living/simple_animal/pet/fox/Renault,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"asE" = (
+/turf/closed/wall,
+/area/hallway/secondary/entry)
+"asF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"asH" = (
+/obj/structure/closet/toolcloset,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"asI" = (
+/obj/structure/closet/toolcloset,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"asJ" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"asK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asN" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"asO" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asP" = (
+/obj/structure/chair/stool,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asQ" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asR" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/structure/closet/secure_closet/chemical,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asS" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asW" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"asX" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"asY" = (
+/obj/docking_port/stationary/random{
+ dir = 4;
+ id = "pod_lavaland3";
+ name = "lavaland"
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"ata" = (
+/turf/open/floor/wood,
+/area/lawoffice)
+"atb" = (
+/obj/structure/table,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/obj/item/stack/rods/fifty,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"atc" = (
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/lawyer,
+/turf/open/floor/wood,
+/area/lawoffice)
+"atd" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"ate" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"atf" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"atg" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm4";
+ name = "Room Three"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"ath" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"ati" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"atj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"atl" = (
+/obj/item/stack/rods,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"atm" = (
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"atn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"ato" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 2;
+ height = 5;
+ id = "laborcamp_home";
+ name = "fore bay 1";
+ roundstart_template = /datum/map_template/shuttle/labour/box;
+ width = 9
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"atp" = (
+/obj/machinery/door/airlock/external{
+ name = "Construction Zone"
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"atq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"atr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ats" = (
+/turf/open/floor/plating/airless,
+/area/icemoon/surface/outdoors)
+"att" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"atv" = (
+/obj/structure/table,
+/obj/item/shard,
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/obj/item/shard{
+ icon_state = "small"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atw" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atx" = (
+/obj/machinery/button/door{
+ id = "maint3";
+ name = "Blast Door Control C";
+ pixel_y = 24
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aty" = (
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
+"atz" = (
+/turf/closed/wall,
+/area/icemoon/surface/outdoors)
+"atA" = (
+/obj/structure/table,
+/obj/item/paicard,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atB" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atC" = (
+/obj/item/stack/rods/fifty,
+/obj/structure/rack,
+/obj/item/stack/cable_coil{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/stack/cable_coil{
+ amount = 5
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 10
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"atD" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"atE" = (
+/obj/machinery/power/port_gen/pacman,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"atF" = (
+/turf/open/floor/mech_bay_recharge_floor,
+/area/maintenance/department/electrical)
+"atG" = (
+/obj/machinery/mech_bay_recharge_port,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"atH" = (
+/obj/machinery/computer/mech_bay_power_console,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/circuit,
+/area/maintenance/department/electrical)
+"atI" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"atJ" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"atL" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"atN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"atP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"atQ" = (
+/turf/open/floor/plasteel/airless{
+ icon_state = "damaged3"
+ },
+/area/icemoon/surface/outdoors)
+"atR" = (
+/obj/item/paper/crumpled,
+/turf/open/floor/plasteel/airless{
+ icon_state = "damaged2"
+ },
+/area/icemoon/surface/outdoors)
+"atS" = (
+/obj/item/airlock_painter,
+/obj/structure/closet,
+/turf/open/floor/plating/airless,
+/area/icemoon/surface/outdoors)
+"atU" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atV" = (
+/turf/open/floor/plasteel/airless{
+ icon_state = "damaged5"
+ },
+/area/icemoon/surface/outdoors)
+"atW" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/security/vacantoffice/b)
+"atZ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"aub" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"auc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"aud" = (
+/obj/docking_port/stationary/random{
+ dir = 8;
+ id = "pod_lavaland2";
+ name = "lavaland"
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aue" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"auf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/lawoffice)
+"aug" = (
+/obj/structure/table/wood,
+/obj/machinery/camera{
+ c_tag = "Law Office";
+ dir = 1
+ },
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/computer/security/telescreen/prison{
+ dir = 1;
+ pixel_y = -27
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"auh" = (
+/obj/structure/table/wood,
+/obj/item/taperecorder,
+/obj/item/cartridge/lawyer,
+/turf/open/floor/wood,
+/area/lawoffice)
+"aui" = (
+/obj/machinery/photocopier,
+/obj/machinery/button/door{
+ id = "lawyer_blast";
+ name = "Privacy Shutters";
+ pixel_x = 25;
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/lawoffice)
+"auj" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 1;
+ height = 4;
+ name = "escape pod loader";
+ roundstart_template = /datum/map_template/shuttle/escape_pod/default;
+ width = 3
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"auk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aul" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aum" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aun" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/dorms)
+"auo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"auq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/vacantoffice/b)
+"aur" = (
+/obj/machinery/button/door{
+ id = "Room One";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"aus" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aut" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"auu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"auv" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"auw" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm3";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"aux" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"auz" = (
+/obj/machinery/camera{
+ c_tag = "Holodeck"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"auA" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 3;
+ height = 15;
+ id = "arrivals_stationary";
+ name = "arrivals";
+ roundstart_template = /datum/map_template/shuttle/arrival/box;
+ width = 7
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"auB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"auC" = (
+/obj/docking_port/stationary/random{
+ dir = 8;
+ id = "pod_lavaland1";
+ name = "lavaland"
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"auD" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auE" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auG" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auH" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auI" = (
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"auJ" = (
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"auK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"auL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"auM" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"auN" = (
+/obj/docking_port/stationary{
+ dir = 4;
+ dwidth = 12;
+ height = 18;
+ id = "emergency_home";
+ name = "BoxStation emergency evac bay";
+ width = 32
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"auO" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"auP" = (
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"auQ" = (
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"auR" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 1;
+ icon_state = "roomnum";
+ name = "Room Number 2";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"auS" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 2;
+ height = 13;
+ id = "ferry_home";
+ name = "port bay 2";
+ width = 5
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"auT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"auV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"auX" = (
+/obj/structure/mirror{
+ icon_state = "mirror_broke";
+ pixel_y = 28
+ },
+/obj/machinery/iv_drip,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"auY" = (
+/obj/structure/mirror{
+ icon_state = "mirror_broke";
+ pixel_y = 28
+ },
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/obj/item/circuitboard/computer/operating,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"auZ" = (
+/obj/structure/frame/computer,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ava" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/chair,
+/obj/item/reagent_containers/blood/random,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avb" = (
+/obj/docking_port/stationary{
+ dir = 2;
+ dwidth = 11;
+ height = 22;
+ id = "whiteship_home";
+ name = "SS13: Auxiliary Dock, Station-Port";
+ width = 35
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"avc" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avd" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 5;
+ height = 7;
+ id = "supply_home";
+ name = "Cargo Bay";
+ width = 12
+ },
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/surface/outdoors)
+"avf" = (
+/obj/structure/sign/warning/docking{
+ pixel_y = 32
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"avg" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm5";
+ name = "Room Four"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"avh" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/power/apc{
+ areastring = "/area/security/vacantoffice/b";
+ dir = 8;
+ name = "Vacant Office B APC";
+ pixel_x = -24
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"avi" = (
+/obj/machinery/power/apc{
+ areastring = "/area/lawoffice";
+ dir = 1;
+ name = "Law Office APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"avj" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"avk" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"avl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"avm" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"avn" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm6";
+ name = "Room Five"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"avo" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall,
+/area/maintenance/department/electrical)
+"avp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/poddoor/shutters{
+ id = "aux_base_shutters";
+ name = "Auxillary Base Shutters"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"avq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avr" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Detective's Office"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"avs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"avt" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avu" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"avv" = (
+/obj/machinery/camera{
+ c_tag = "Dorms West"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avw" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Dormitories Maintenance";
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"avx" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"avy" = (
+/obj/machinery/door/airlock{
+ id_tag = "Room One";
+ name = "Room Six - Luxury Suite"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"avz" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avA" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avB" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"avC" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"avD" = (
+/obj/machinery/computer/holodeck{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"avE" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint3"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"avF" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint3"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"avG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avH" = (
+/obj/structure/sign/warning/electricshock,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/department/electrical)
+"avI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"avJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/department/electrical)
+"avL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/department/electrical";
+ dir = 1;
+ name = "Electrical Maintenance APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avM" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avO" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/fyellow,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/multitool,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"avP" = (
+/obj/structure/sign/warning/pods,
+/turf/closed/wall,
+/area/hallway/secondary/entry)
+"avQ" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Auxillary Base Construction";
+ dir = 8
+ },
+/obj/machinery/computer/camera_advanced/base_construction{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"avR" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 8;
+ icon_state = "roomnum";
+ name = "Room Number 4";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avS" = (
+/obj/item/wrench,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avT" = (
+/obj/structure/disposaloutlet{
+ dir = 8
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"avU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"avV" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avW" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avX" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"avZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/fore)
+"awa" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/closed/wall,
+/area/maintenance/fore)
+"awb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awc" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awd" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"awe" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"awg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awh" = (
+/obj/effect/landmark/blobstart,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awj" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"awl" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"awm" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"awn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"awo" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm3";
+ name = "Room Two"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"awp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awr" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aws" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"awt" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 6;
+ icon_state = "roomnum";
+ name = "Room Number 5";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aww" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"awx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awA" = (
+/obj/machinery/holopad,
+/obj/machinery/camera{
+ c_tag = "Dorms Central"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"awB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet{
+ name = "Holodeck Outfits"
+ },
+/obj/item/clothing/under/trek/Q,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/costume/gladiator,
+/obj/item/clothing/under/costume/gladiator,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"awC" = (
+/obj/structure/table,
+/obj/item/paper/fluff/holodeck/disclaimer,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"awD" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awF" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awG" = (
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awH" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awI" = (
+/obj/machinery/button/door{
+ id = "maint2";
+ name = "Blast Door Control B";
+ pixel_x = -28;
+ pixel_y = 4
+ },
+/obj/machinery/button/door{
+ id = "maint1";
+ name = "Blast Door Control A";
+ pixel_x = -28;
+ pixel_y = -6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awJ" = (
+/obj/structure/janitorialcart,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awK" = (
+/obj/structure/table/glass,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awL" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awM" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"awO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/engineering/abandoned{
+ name = "Electrical Maintenance";
+ req_access_txt = "11"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awR" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awS" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awU" = (
+/obj/structure/table,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/department/electrical)
+"awV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"awW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"awX" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"awY" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/entry)
+"awZ" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/entry)
+"axa" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"axb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/hallway/secondary/entry)
+"axc" = (
+/obj/structure/rack,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/item/assault_pod/mining,
+/obj/machinery/computer/security/telescreen/auxbase{
+ dir = 8;
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"axe" = (
+/obj/machinery/sleeper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axf" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axg" = (
+/obj/structure/table/glass,
+/obj/item/storage/bag/trash,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axh" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/entry)
+"axi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axj" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Firefighting equipment";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axm" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"axn" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axp" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axs" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"axt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axv" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"axw" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/storage/eva)
+"axz" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/storage/eva)
+"axA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/ai_monitored/storage/eva)
+"axB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"axC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"axD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/fore/secondary)
+"axE" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/do_not_question{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"axF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"axG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/entry)
+"axH" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"axI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"axK" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"axL" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axR" = (
+/obj/docking_port/stationary/random{
+ dir = 4;
+ id = "pod_lavaland4";
+ name = "lavaland"
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"axS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axY" = (
+/obj/structure/disposaloutlet,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aya" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"ayb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"ayc" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aye" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayi" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayj" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"ayk" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"ayl" = (
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aym" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"ayn" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"ayo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"ayp" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"ayq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"ayr" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"ays" = (
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayt" = (
+/obj/structure/table/glass,
+/obj/item/hemostat,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayu" = (
+/obj/structure/table/glass,
+/obj/item/restraints/handcuffs/cable/zipties,
+/obj/item/reagent_containers/blood/random,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayv" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/item/radio/off,
+/obj/item/assembly/timer,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayw" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayx" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayz" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/port/fore)
+"ayA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayB" = (
+/obj/structure/grille,
+/obj/structure/lattice,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"ayC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/fore)
+"ayD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/fore)
+"ayE" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/fore)
+"ayF" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"ayG" = (
+/turf/closed/wall/r_wall,
+/area/gateway)
+"ayH" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayK" = (
+/obj/structure/closet/crate/rcd,
+/obj/machinery/camera/motion{
+ c_tag = "EVA Motion Sensor"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"ayL" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/storage/eva)
+"ayM" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayN" = (
+/obj/structure/rack,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/hand_labeler,
+/obj/item/flashlight,
+/obj/item/flashlight,
+/obj/item/flashlight,
+/obj/item/flashlight,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"ayO" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"ayP" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/storage/eva";
+ dir = 1;
+ name = "EVA Storage APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayQ" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"ayR" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/multitool,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayS" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
+"ayT" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/assembly/signaler,
+/obj/item/assembly/signaler,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayV" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm2";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"ayW" = (
+/turf/closed/wall,
+/area/ai_monitored/storage/eva)
+"ayX" = (
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/storage/belt/utility,
+/obj/item/storage/belt/utility,
+/obj/item/clothing/head/welding,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"ayY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/obey{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"ayZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/obey{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aza" = (
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azb" = (
+/obj/structure/table/wood/poker,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azc" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aze" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azf" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"azg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"azh" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"azi" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Garden Maintenance";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"azj" = (
+/obj/structure/transit_tube/curved/flipped{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"azk" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azl" = (
+/turf/closed/wall/r_wall,
+/area/icemoon/surface/outdoors)
+"azm" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"azn" = (
+/obj/structure/transit_tube/curved{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"azo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azp" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"azq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/hydroponics/garden)
+"azr" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"azs" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"azt" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azu" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azv" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azw" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azx" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azy" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 1"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"azz" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"azA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"azB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"azC" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"azD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"azE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"azF" = (
+/turf/closed/wall,
+/area/hydroponics/garden)
+"azG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"azH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/theatre)
+"azI" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/instrument/eguitar,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"azJ" = (
+/obj/machinery/gateway{
+ dir = 9
+ },
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"azK" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"azL" = (
+/obj/machinery/gateway{
+ dir = 5
+ },
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"azM" = (
+/obj/machinery/gateway{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"azN" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"azO" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"azP" = (
+/obj/structure/transit_tube/crossing/horizontal,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"azQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/maintenance{
+ name = "EVA Maintenance";
+ req_access_txt = "18"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/fore)
+"azR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"azS" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "EVA Storage";
+ req_access_txt = "18"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"azT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"azV" = (
+/obj/structure/transit_tube/horizontal,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"azW" = (
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"azX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"azY" = (
+/obj/structure/table,
+/obj/item/radio/off,
+/obj/item/radio/off,
+/obj/item/assembly/prox_sensor,
+/obj/item/assembly/prox_sensor,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"azZ" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aAa" = (
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aAb" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm2";
+ name = "Room One"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"aAc" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAd" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAf" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/structure/transit_tube/crossing/horizontal,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aAg" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aAh" = (
+/turf/closed/wall,
+/area/crew_quarters/toilet)
+"aAi" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/auxiliary";
+ name = "Security Checkpoint APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAl" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAm" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"aAn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"aAp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAr" = (
+/obj/structure/closet,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAs" = (
+/obj/structure/musician/piano{
+ icon_state = "piano"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAt" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAu" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aAv" = (
+/obj/structure/closet,
+/obj/effect/landmark/blobstart,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAw" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hydroponics/garden";
+ dir = 4;
+ name = "Garden APC";
+ pixel_x = 27;
+ pixel_y = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aAy" = (
+/obj/machinery/power/smes,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"aAz" = (
+/obj/machinery/computer/monitor{
+ dir = 1;
+ name = "backup power monitoring console"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"aAA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall,
+/area/maintenance/department/electrical)
+"aAB" = (
+/obj/machinery/power/smes,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"aAC" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/r_wall,
+/area/hallway/secondary/entry)
+"aAD" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aAE" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aAF" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aAG" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aAH" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 1 North";
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aAI" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aAJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"aAK" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/sink{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aAL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/storage/primary";
+ name = "Primary Tool Storage APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAM" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aAN" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAP" = (
+/obj/machinery/hydroponics/soil,
+/turf/open/floor/grass,
+/area/hydroponics/garden)
+"aAQ" = (
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aAR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aAS" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aAT" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aAU" = (
+/obj/structure/sink{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aAV" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAW" = (
+/obj/structure/rack,
+/obj/item/tank/jetpack/carbondioxide/eva,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aAX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aAY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAZ" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aBa" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/nuke_storage)
+"aBb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/nuke_storage)
+"aBc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/nuke_storage)
+"aBd" = (
+/obj/machinery/gateway{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aBe" = (
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aBf" = (
+/obj/machinery/gateway{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aBg" = (
+/obj/machinery/gateway/centerstation,
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aBh" = (
+/obj/machinery/camera{
+ c_tag = "EVA Maintenance";
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aBi" = (
+/obj/machinery/power/apc{
+ areastring = "/area/gateway";
+ dir = 8;
+ name = "Gateway APC";
+ pixel_x = -24;
+ pixel_y = -1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aBj" = (
+/obj/structure/rack,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/tank/jetpack/carbondioxide/eva,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/storage/eva)
+"aBl" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Security Maintenance";
+ req_access_txt = "1"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aBm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aBn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBo" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBp" = (
+/obj/structure/rack,
+/obj/item/clothing/shoes/magboots,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBq" = (
+/obj/structure/rack,
+/obj/item/clothing/shoes/magboots,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBs" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
+"aBt" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
+"aBu" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aBv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aBw" = (
+/obj/item/seeds/apple,
+/obj/item/seeds/banana,
+/obj/item/seeds/cocoapod,
+/obj/item/seeds/grape,
+/obj/item/seeds/orange,
+/obj/item/seeds/sugarcane,
+/obj/item/seeds/wheat,
+/obj/item/seeds/watermelon,
+/obj/structure/table/glass,
+/obj/item/seeds/tower,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aBx" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aBy" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath3";
+ name = "Bathroom"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aBz" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aBA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/table/wood,
+/obj/item/paicard,
+/obj/item/clothing/mask/balaclava{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/toy/cards/deck{
+ pixel_x = 2
+ },
+/obj/item/storage/crayons,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aBB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/starboard/fore)
+"aBC" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aBD" = (
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aBE" = (
+/obj/item/clothing/under/misc/mailman,
+/obj/item/clothing/head/mailman,
+/obj/structure/closet,
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aBF" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aBG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aBH" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aBI" = (
+/turf/closed/wall,
+/area/security/checkpoint/auxiliary)
+"aBJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/checkpoint/auxiliary)
+"aBK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/security/checkpoint/auxiliary)
+"aBL" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Tool Storage Maintenance";
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aBM" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/icemoon/surface/outdoors)
+"aBN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/storage/primary)
+"aBO" = (
+/obj/machinery/requests_console{
+ department = "EVA";
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBP" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aBQ" = (
+/turf/closed/wall,
+/area/storage/primary)
+"aBR" = (
+/turf/closed/wall/r_wall,
+/area/storage/primary)
+"aBS" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat External NorthWest";
+ dir = 8;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aBT" = (
+/obj/machinery/computer/bank_machine,
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aBU" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"aBV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"aBW" = (
+/obj/structure/filingcabinet,
+/obj/item/folder/documents,
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aBX" = (
+/obj/machinery/gateway{
+ dir = 10
+ },
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aBY" = (
+/obj/machinery/gateway{
+ dir = 6
+ },
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aBZ" = (
+/obj/machinery/gateway,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aCa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aCb" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/item/pen{
+ desc = "Writes upside down!";
+ name = "astronaut pen"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aCc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aCd" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/cryopod,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"aCe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/toilet)
+"aCf" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat External NorthEast";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aCg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aCh" = (
+/obj/machinery/vending/autodrobe,
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
+"aCi" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
+"aCj" = (
+/obj/machinery/camera{
+ c_tag = "EVA East";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aCk" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCm" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat External SouthWest";
+ dir = 8;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aCn" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"aCo" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat External SouthEast";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aCp" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals North";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"aCq" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat External South";
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"aCr" = (
+/turf/closed/wall,
+/area/crew_quarters/theatre)
+"aCs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aCt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCu" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness)
+"aCv" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 8
+ },
+/area/crew_quarters/fitness)
+"aCw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"aCx" = (
+/turf/closed/mineral/random/snow/more_caves,
+/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters)
+"aCy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"aCz" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCA" = (
+/obj/structure/grille/broken,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
+"aCB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/fore)
+"aCC" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint1"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCD" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint1"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/fore)
+"aCF" = (
+/obj/structure/girder,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCH" = (
+/obj/machinery/space_heater,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCK" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCL" = (
+/obj/structure/closet/secure_closet/security,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aCM" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCN" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aCP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aCQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aCR" = (
+/turf/closed/wall,
+/area/chapel/main)
+"aCT" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"aCW" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aCX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"aCY" = (
+/obj/machinery/computer/security,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aCZ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aDa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aDb" = (
+/obj/structure/table,
+/obj/item/wirecutters,
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDc" = (
+/obj/machinery/computer/card,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aDd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDf" = (
+/obj/machinery/computer/secure_data,
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aDg" = (
+/obj/machinery/biogenerator,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aDh" = (
+/obj/machinery/vending/assist,
+/obj/structure/sign/poster/contraband/grey_tide{
+ desc = "A poster promoting a regression to ape-like intelligence for Assistants, suggesting they break, loot and murder enough to make even a caveman blush.";
+ pixel_x = -32;
+ poster_item_desc = "Nanotrasen does not condone such messages. Please don't regress to ape-level intelligence as this poster suggests."
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDi" = (
+/obj/structure/window/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aDj" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aDk" = (
+/obj/structure/table,
+/obj/item/assembly/igniter{
+ pixel_x = -8;
+ pixel_y = -4
+ },
+/obj/item/assembly/igniter,
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/obj/machinery/camera{
+ c_tag = "Primary Tool Storage"
+ },
+/obj/machinery/requests_console{
+ department = "Tool Storage";
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDl" = (
+/obj/structure/table,
+/obj/item/t_scanner,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDm" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDn" = (
+/obj/structure/table,
+/obj/item/assembly/signaler,
+/obj/item/assembly/signaler,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/item/multitool,
+/obj/item/multitool{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDo" = (
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDp" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDq" = (
+/obj/machinery/vending/tool,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aDr" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"aDs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aDt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"aDv" = (
+/obj/structure/window/reinforced,
+/obj/structure/chair/stool,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"aDw" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aDx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window{
+ name = "Gateway Chamber";
+ req_access_txt = "62"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aDy" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/gateway)
+"aDz" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aDA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aDB" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aDC" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aDD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aDE" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/machinery/light,
+/obj/machinery/camera{
+ c_tag = "EVA Storage";
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aDF" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aDG" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Dorms South";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aDH" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/folder/white,
+/obj/item/pen/fountain,
+/obj/item/stamp/rd{
+ pixel_x = 3;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"aDI" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/storage/eva)
+"aDK" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Cryogenics "
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/cryopod)
+"aDL" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDM" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDN" = (
+/obj/machinery/camera{
+ c_tag = "Bathrooms";
+ dir = 1
+ },
+/obj/structure/urinal{
+ pixel_y = 32
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDP" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/obj/effect/landmark/xeno_spawn,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aDQ" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath1";
+ name = "Bathroom"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aDR" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aDT" = (
+/obj/item/soap,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aDU" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aDY" = (
+/obj/structure/window{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aDZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEa" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEc" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aEd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/chapel/main";
+ name = "Chapel APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aEi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Chapel Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aEk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aEl" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEm" = (
+/obj/machinery/door/window{
+ dir = 8;
+ name = "Mass Driver";
+ req_access_txt = "22"
+ },
+/obj/machinery/mass_driver{
+ dir = 4;
+ id = "chapelgun";
+ name = "Holy Driver"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/chapel/main)
+"aEn" = (
+/obj/machinery/door/poddoor{
+ id = "chapelgun";
+ name = "Chapel Launcher Door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/chapel/main)
+"aEz" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/entry";
+ dir = 4;
+ name = "Entry Hall APC";
+ pixel_x = 24
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"aEA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 2;
+ sortType = 18
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEB" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aED" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aEF" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/snacks/grown/wheat,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
+/obj/item/reagent_containers/food/snacks/grown/grapes,
+/obj/item/reagent_containers/food/snacks/grown/cocoapod,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aEG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aEH" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aEI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aEJ" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aEK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aEL" = (
+/obj/machinery/door/airlock{
+ name = "Garden"
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aEM" = (
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"aEN" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/structure/closet/crate/goldcrate,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aEO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"aEP" = (
+/obj/effect/turf_decal/bot_white/left,
+/obj/structure/closet/crate/silvercrate,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aEQ" = (
+/obj/structure/table,
+/obj/item/paper/pamphlet/gateway,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aER" = (
+/obj/machinery/camera{
+ c_tag = "Gateway";
+ dir = 4
+ },
+/obj/structure/table,
+/obj/structure/sign/warning/biohazard{
+ pixel_x = -32
+ },
+/obj/item/storage/firstaid/regular,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aES" = (
+/obj/structure/table,
+/obj/item/radio/off{
+ pixel_y = 6
+ },
+/obj/item/radio/off{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/radio/off{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/radio/off,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aET" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aEU" = (
+/obj/structure/table,
+/obj/machinery/recharger,
+/obj/structure/sign/warning/biohazard{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aEV" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aEW" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
+"aEX" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "EVA Storage";
+ req_access_txt = "18"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aEY" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/storage/eva)
+"aEZ" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"aFa" = (
+/obj/machinery/suit_storage_unit/cmo,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"aFb" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"aFc" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/storage/eva)
+"aFd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aFe" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aFk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFl" = (
+/obj/structure/festivus{
+ anchored = 1;
+ desc = "A pole for dancing.";
+ name = "pole"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFp" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFu" = (
+/turf/closed/wall,
+/area/library)
+"aFv" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFw" = (
+/turf/closed/wall,
+/area/chapel/office)
+"aFx" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFy" = (
+/obj/machinery/power/apc{
+ areastring = "/area/chapel/office";
+ name = "Chapel Office APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFz" = (
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aFA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/computer/pod/old{
+ density = 0;
+ icon = 'icons/obj/airlock_machines.dmi';
+ icon_state = "airlock_control_standby";
+ id = "chapelgun";
+ name = "Mass Driver Controller";
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aFB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aFG" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"aFH" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aFI" = (
+/obj/machinery/camera{
+ c_tag = "Security Checkpoint";
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light_switch{
+ pixel_x = 6;
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aFJ" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aFK" = (
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aFL" = (
+/obj/item/radio/off,
+/obj/item/crowbar,
+/obj/item/assembly/flash/handheld,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aFM" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aFN" = (
+/obj/structure/table/glass,
+/obj/item/cultivator,
+/obj/item/hatchet,
+/obj/item/crowbar,
+/obj/item/plant_analyzer,
+/obj/item/reagent_containers/glass/bucket,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aFO" = (
+/obj/machinery/camera{
+ c_tag = "Garden";
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aFP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aFQ" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aFR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aFT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aFU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aFV" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aFW" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aFX" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aFY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aFZ" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aGa" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aGb" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/machinery/ore_silo,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aGc" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/camera/motion{
+ c_tag = "Vault";
+ dir = 1;
+ network = list("vault")
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aGd" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"aGf" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aGg" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aGh" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aGi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"aGj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"aGk" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aGl" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath2";
+ name = "Bathroom"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aGm" = (
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/toilet";
+ dir = 4;
+ name = "Dormitory Bathrooms APC";
+ pixel_x = 26
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table/glass,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aGo" = (
+/obj/structure/table,
+/obj/item/stack/sheet/rglass{
+ amount = 50
+ },
+/obj/item/stack/sheet/rglass{
+ amount = 50
+ },
+/obj/item/stack/rods/fifty,
+/obj/item/stack/rods/fifty,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aGq" = (
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aGr" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/clown,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"aGs" = (
+/obj/machinery/suit_storage_unit/rd,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"aGt" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aGu" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aGv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/theatre)
+"aGw" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aGx" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aGy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGz" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGA" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 4;
+ sortType = 19
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 4;
+ sortType = 20
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGD" = (
+/obj/structure/table/wood,
+/obj/structure/mirror{
+ pixel_x = -28
+ },
+/obj/item/flashlight/lamp/bananalamp{
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"aGE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGF" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ sortType = 17
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGG" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Library Maintenance";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGI" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGM" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Crematorium Maintenance";
+ req_access_txt = "27"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/chapel/office)
+"aGQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGS" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGU" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/requests_console{
+ department = "Chapel";
+ departmentType = 2;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aGV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGY" = (
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aGZ" = (
+/obj/machinery/door/airlock/security{
+ name = "Security Checkpoint";
+ req_access_txt = "1"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"aHa" = (
+/obj/machinery/door/firedoor,
+/obj/structure/table/reinforced,
+/obj/item/paper,
+/obj/machinery/door/window/westright{
+ dir = 1;
+ name = "Security Checkpoint";
+ req_access_txt = "1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aHb" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/stack/packageWrap,
+/obj/item/pen/fourcolor,
+/turf/open/floor/wood,
+/area/library)
+"aHd" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/wood,
+/area/library)
+"aHe" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aHf" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/vending/wardrobe/chap_wardrobe,
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aHg" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Chapel Office"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aHh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aHi" = (
+/obj/structure/closet/crate/coffin,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aHj" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aHk" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aHl" = (
+/obj/structure/closet/crate/coffin,
+/obj/machinery/door/window/eastleft{
+ name = "Coffin Storage";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aHm" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aHn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aHo" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/snacks/grown/poppy,
+/obj/item/reagent_containers/food/snacks/grown/harebell,
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/chapel/main)
+"aHq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/chapel/main)
+"aHu" = (
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 4
+ },
+/area/hallway/secondary/entry)
+"aHv" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aHw" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"aHx" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aHy" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/auxiliary)
+"aHz" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aHA" = (
+/obj/item/reagent_containers/spray/plantbgone,
+/obj/item/reagent_containers/spray/pestspray{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/glass/bottle/nutrient/ez,
+/obj/item/reagent_containers/glass/bottle/nutrient/rh{
+ pixel_x = 2;
+ pixel_y = 1
+ },
+/obj/structure/table/glass,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aHB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"aHC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"aHD" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aHE" = (
+/obj/structure/table,
+/obj/item/weldingtool,
+/obj/item/crowbar,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aHF" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/nuke_storage)
+"aHG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"aHH" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Dormitory"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aHI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"aHJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aHK" = (
+/obj/structure/closet/secure_closet/freezer/cream_pie,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"aHL" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/l3closet/scientist,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aHM" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/closed/wall,
+/area/crew_quarters/bar)
+"aHN" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/crowbar,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aHO" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aHP" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aHQ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aHR" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aHS" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Bar Storage Maintenance";
+ req_access_txt = "25"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aHT" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Dormitory"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aHV" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1;
+ pixel_x = 5
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/table/glass,
+/obj/item/razor{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aHY" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aHZ" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aIa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIc" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/bar";
+ name = "Bar APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aId" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/bar)
+"aIf" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIg" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Bar"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aIh" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/kitchen";
+ name = "Kitchen APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 4;
+ sortType = 21
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIn" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hydroponics";
+ name = "Hydroponics APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIo" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIp" = (
+/turf/closed/wall,
+/area/hydroponics)
+"aIq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/hydroponics)
+"aIr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ desc = "Bolts the doors to the Private Study.";
+ id = "PrivateStudy";
+ name = "Private Study Lock";
+ pixel_x = -5;
+ pixel_y = 24;
+ req_access_txt = "28"
+ },
+/obj/machinery/button/door{
+ id = "PrivateStudy1";
+ name = "Privacy Shutters";
+ pixel_x = 5;
+ pixel_y = 24
+ },
+/turf/open/floor/wood,
+/area/library)
+"aIs" = (
+/obj/machinery/camera{
+ c_tag = "Library North"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/sofa/right,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/wood,
+/area/library)
+"aIt" = (
+/turf/open/floor/wood,
+/area/library)
+"aIu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/library)
+"aIv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/library)
+"aIw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/sofa/left,
+/turf/open/floor/wood,
+/area/library)
+"aIx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/library)
+"aIy" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aIz" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aIB" = (
+/obj/structure/bodycontainer/crematorium{
+ id = "crematoriumChapel"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aIC" = (
+/obj/effect/landmark/start/chaplain,
+/obj/structure/chair,
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aID" = (
+/obj/structure/closet/crate/coffin,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aIE" = (
+/obj/structure/table/glass,
+/turf/open/floor/plasteel/chapel,
+/area/chapel/main)
+"aIH" = (
+/obj/structure/table,
+/obj/item/storage/box/lights/mixed,
+/obj/item/pipe_dispenser,
+/obj/machinery/button/door{
+ id = "aux_base_shutters";
+ name = "Public Shutters Control";
+ pixel_x = 24;
+ req_one_access_txt = "32;47;48"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"aII" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aIJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIM" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIN" = (
+/obj/structure/table,
+/obj/item/wrench,
+/obj/item/analyzer,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aIO" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Lounge"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIP" = (
+/obj/structure/sign/map/left{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIQ" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIR" = (
+/obj/structure/sign/map/right{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aIS" = (
+/obj/structure/table/glass,
+/obj/item/hatchet,
+/obj/item/cultivator,
+/obj/item/crowbar,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/plant_analyzer,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aIT" = (
+/obj/item/storage/bag/plants/portaseeder,
+/obj/structure/table/glass,
+/obj/item/plant_analyzer,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/obj/machinery/light_switch{
+ pixel_x = -6;
+ pixel_y = -25
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aIU" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ freq = 1400;
+ location = "Tool Storage"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aIV" = (
+/obj/machinery/button/door{
+ id = "stationawaygate";
+ name = "Gateway Access Shutter Control";
+ pixel_x = -1;
+ pixel_y = -24;
+ req_access_txt = "31"
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aIW" = (
+/obj/structure/table,
+/obj/item/crowbar,
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/clothing/gloves/color/fyellow,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aIX" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aIY" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aIZ" = (
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/storage/firstaid/regular,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aJa" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aJb" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aJc" = (
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aJe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"aJf" = (
+/obj/machinery/camera{
+ c_tag = "EVA South";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aJg" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJh" = (
+/turf/open/floor/plasteel,
+/area/gateway)
+"aJi" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/exile,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aJj" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/extinguisher,
+/obj/item/extinguisher,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aJk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock{
+ name = "Bar Back Room"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/bar)
+"aJl" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"aJm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/vending/wardrobe/bar_wardrobe,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aJn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"aJo" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Central Hallway North"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJp" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJq" = (
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJr" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJs" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJt" = (
+/obj/structure/sign/directions/security{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = 40
+ },
+/obj/structure/sign/directions/medical{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJu" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJv" = (
+/obj/structure/sign/poster/official/nanomichi_ad{
+ pixel_y = 32
+ },
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJw" = (
+/turf/closed/wall,
+/area/hallway/primary/central)
+"aJx" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aJy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aJz" = (
+/obj/machinery/button/door{
+ id = "Bath3";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/recharge_station,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aJA" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Kitchen Maintenance";
+ req_access_txt = "28"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aJB" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Hydroponics Maintenance";
+ req_access_txt = "35"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aJC" = (
+/turf/closed/wall,
+/area/crew_quarters/bar)
+"aJD" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Bar Maintenance";
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aJF" = (
+/obj/machinery/newscaster{
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/library)
+"aJG" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/button/crematorium{
+ id = "crematoriumChapel";
+ pixel_x = 25
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aJH" = (
+/obj/machinery/door/window/southleft{
+ name = "Bar Delivery";
+ req_access_txt = "25"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aJI" = (
+/turf/closed/wall,
+/area/crew_quarters/kitchen)
+"aJJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aJK" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Kitchen"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/crew_quarters/kitchen)
+"aJL" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Hydroponics"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aJM" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp{
+ pixel_y = 10
+ },
+/obj/structure/disposalpipe/segment,
+/obj/item/nullrod,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aJO" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aJP" = (
+/obj/structure/table/wood,
+/obj/item/folder/yellow,
+/obj/item/pen/blue,
+/turf/open/floor/wood,
+/area/library)
+"aJQ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/library)
+"aJR" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/library)
+"aJS" = (
+/obj/structure/table/wood,
+/obj/structure/disposalpipe/segment,
+/obj/item/paicard,
+/turf/open/floor/wood,
+/area/library)
+"aJT" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/item/storage/crayons,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aJU" = (
+/obj/structure/table/wood,
+/obj/item/pen,
+/obj/item/reagent_containers/food/drinks/bottle/holywater,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aJV" = (
+/obj/structure/closet/crate/coffin,
+/obj/machinery/door/window/eastleft{
+ dir = 8;
+ name = "Coffin Storage";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aJW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aJX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aJY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aJZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Primary Tool Storage"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aKa" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Primary Tool Storage"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"aKc" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command{
+ name = "Gateway Access";
+ req_access_txt = "62"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aKd" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters{
+ id = "stationawaygate";
+ name = "Gateway Access Shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/gateway)
+"aKe" = (
+/obj/structure/table/glass,
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/chapel/main)
+"aKf" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/construction/mining/aux_base";
+ dir = 8;
+ name = "Auxillary Base Construction APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aKj" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aKk" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aKl" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aKm" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Garden"
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden)
+"aKn" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/hydroponics/garden)
+"aKo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aKp" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/storage/primary)
+"aKq" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/camera,
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKr" = (
+/obj/machinery/vending/snack/orange,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/donut_corp{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKs" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/storage/primary)
+"aKu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
+"aKw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
+"aKy" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aKz" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKA" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters{
+ id = "stationawaygate";
+ name = "Gateway Access Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/gateway)
+"aKB" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall,
+/area/gateway)
+"aKC" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aKD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aKE" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aKF" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aKG" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aKH" = (
+/obj/structure/sink{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aKI" = (
+/obj/structure/closet/secure_closet/hydroponics,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aKJ" = (
+/obj/machinery/vending/cola/black,
+/obj/structure/sign/poster/contraband/starkist{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKL" = (
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Hydroponics Storage"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/plantgenes{
+ pixel_y = 6
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aKM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKN" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKO" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKQ" = (
+/obj/machinery/reagentgrinder,
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKR" = (
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKS" = (
+/obj/machinery/camera{
+ c_tag = "Bar Storage"
+ },
+/obj/structure/sink/kitchen{
+ pixel_y = 28
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aKT" = (
+/obj/structure/closet/secure_closet/freezer/meat,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aKU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aKV" = (
+/obj/machinery/door/window/southleft{
+ name = "Kitchen Delivery";
+ req_access_txt = "28"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/kitchen)
+"aKW" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aKX" = (
+/obj/machinery/door/window/eastright{
+ name = "Hydroponics Delivery";
+ req_access_txt = "35"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aKY" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aKZ" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/camera{
+ c_tag = "Chapel Crematorium";
+ dir = 4
+ },
+/obj/structure/bodycontainer/morgue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aLa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aLb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ name = "Crematorium";
+ req_access_txt = "27"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aLc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aLd" = (
+/obj/structure/table,
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_x = 13;
+ pixel_y = 5
+ },
+/obj/item/watertank,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aLe" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aLf" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/wood,
+/area/library)
+"aLg" = (
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/library)
+"aLi" = (
+/obj/structure/chair/comfy/beige,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLj" = (
+/obj/structure/chair/comfy/beige,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLm" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLn" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/chapel/office)
+"aLp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLr" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aLt" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"aLu" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Auxillary Base Construction";
+ req_one_access_txt = "32;47;48"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"aLv" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aLw" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aLx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLy" = (
+/obj/structure/chair/comfy/beige,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLz" = (
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLA" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLB" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aLC" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aLD" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aLE" = (
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLF" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLG" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/port";
+ dir = 1;
+ name = "Port Hall APC";
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLH" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLI" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLK" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLL" = (
+/obj/machinery/camera{
+ c_tag = "Port Hallway 2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLM" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLQ" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway North-East"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLR" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLT" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aLU" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/beerkeg,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aLV" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLW" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway North-West"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLX" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLY" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aLZ" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L3"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMa" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L1"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMb" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L7"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMc" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L5"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMd" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L11"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMe" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L9"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMf" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L13"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/robust_softdrinks{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMh" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMi" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aMj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMk" = (
+/obj/machinery/chem_master/condimaster{
+ name = "CondiMaster Neo"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aMl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aMm" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMn" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMo" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aMq" = (
+/obj/structure/sign/poster/contraband/space_cola{
+ pixel_x = -32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aMr" = (
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"aMs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = -31
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aMw" = (
+/obj/machinery/vending/dinnerware{
+ contraband = list(/obj/item/reagent_containers/food/condiment/flour = 4);
+ desc = "This vendor is full of condiments to put on food.";
+ name = "\improper Condiments Vendor";
+ product_ads = "Get your sauces here!;No slave labour was used to make these products!;Nanotrasen Approved?!";
+ products = list(/obj/item/storage/bag/tray = 8, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/storage/box/cups = 5, /obj/item/reagent_containers/food/condiment/pack/ketchup = 20, /obj/item/reagent_containers/food/condiment/pack/mustard = 20, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 20, /obj/item/reagent_containers/food/condiment/pack/astrotame = 20, /obj/item/reagent_containers/food/condiment/saltshaker = 20, /obj/item/reagent_containers/food/condiment/peppermill = 20)
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aMx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aMy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMB" = (
+/obj/structure/reagent_dispensers/keg/mead,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aMC" = (
+/obj/structure/reagent_dispensers/keg/gargle,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aMD" = (
+/obj/machinery/icecream_vat,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aME" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMF" = (
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aMG" = (
+/obj/structure/closet/crate/hydroponics,
+/obj/item/shovel/spade,
+/obj/item/wrench,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/wirecutters,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMI" = (
+/obj/machinery/light/small,
+/obj/machinery/vending/wardrobe/hydro_wardrobe,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aML" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aMM" = (
+/obj/machinery/camera{
+ c_tag = "Chapel North"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aMN" = (
+/obj/machinery/chem_master/condimaster,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aMO" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/chips,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aMP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aMQ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aMR" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aMS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aMT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aMU" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aMV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aMX" = (
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aMY" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aMZ" = (
+/turf/closed/wall,
+/area/hallway/secondary/exit)
+"aNa" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aNb" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aNc" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNd" = (
+/obj/structure/table/wood,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aNe" = (
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aNf" = (
+/obj/structure/chair/comfy/beige{
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aNg" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aNh" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aNi" = (
+/turf/open/floor/goonplaque,
+/area/hallway/secondary/entry)
+"aNj" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=CHW";
+ location = "Lockers"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNl" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNo" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNp" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNu" = (
+/obj/structure/table/wood,
+/obj/item/paper/fluff{
+ info = "Renovation Notice The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.
We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used. You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef. We hope you like the new bar! b>";
+ name = "Renovation Notice - Bar";
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/food/drinks/shaker,
+/obj/item/stack/spacecash/c100,
+/obj/item/stack/spacecash/c100,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aNv" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L4"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNw" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNx" = (
+/obj/effect/landmark/observer_start,
+/obj/effect/turf_decal/plaque{
+ icon_state = "L8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNy" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Lockers";
+ location = "EVA"
+ },
+/obj/effect/turf_decal/plaque{
+ icon_state = "L6"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNz" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L12"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNA" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Security";
+ location = "EVA2"
+ },
+/obj/effect/turf_decal/plaque{
+ icon_state = "L10"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNB" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L14"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNC" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=EVA2";
+ location = "Dorm"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aNE" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aNF" = (
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aNI" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aNK" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/retaliate/goat{
+ name = "Pete"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aNL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/hydroponics)
+"aNM" = (
+/obj/structure/kitchenspike,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aNN" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Hydroponics";
+ req_access_txt = "35"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aNO" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/vending/wardrobe/chef_wardrobe,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aNP" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/wood,
+/area/library)
+"aNQ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/hydroponics)
+"aNR" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/paicard,
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aNS" = (
+/obj/machinery/bookbinder,
+/turf/open/floor/wood,
+/area/library)
+"aNT" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Port Hallway";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aNV" = (
+/obj/machinery/photocopier,
+/turf/open/floor/wood,
+/area/library)
+"aNW" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel Office";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aNX" = (
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1480;
+ name = "Confessional Intercom";
+ pixel_x = 25
+ },
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aNY" = (
+/obj/machinery/door/morgue{
+ name = "Confession Booth (Chaplain)";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aNZ" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aOa" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aOb" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aOc" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aOd" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aOe" = (
+/obj/item/beacon,
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 1 South"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aOf" = (
+/obj/machinery/vending/snack/random,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aOg" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aOh" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aOi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOj" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes{
+ pixel_y = 2
+ },
+/obj/item/lighter/greyscale{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aOk" = (
+/obj/machinery/vending/cola/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aOl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOn" = (
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOo" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOp" = (
+/obj/machinery/camera{
+ c_tag = "Port Hallway 3";
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOq" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOr" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOx" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOz" = (
+/obj/structure/sign/directions/security{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -24
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/structure/sign/directions/engineering{
+ pixel_x = 32;
+ pixel_y = -40
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOB" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aOC" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aOD" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=QM";
+ location = "CHW"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aOE" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aOF" = (
+/obj/machinery/light,
+/obj/structure/sign/warning/electricshock{
+ pixel_y = -32
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aOG" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = -32
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aOH" = (
+/obj/structure/window/reinforced,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"aOI" = (
+/obj/structure/kitchenspike,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aOJ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aOL" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aOM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aON" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aOO" = (
+/obj/machinery/door/airlock{
+ name = "Bar Storage";
+ req_access_txt = "25"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aOP" = (
+/obj/effect/landmark/blobstart,
+/obj/item/toy/beach_ball/holoball,
+/turf/open/floor/plating,
+/area/crew_quarters/bar)
+"aOQ" = (
+/obj/machinery/requests_console{
+ department = "Hydroponics";
+ departmentType = 2;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aOR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aOS" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/carpet,
+/area/library)
+"aOT" = (
+/obj/machinery/gibber,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aOU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aOV" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aOW" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/camera{
+ c_tag = "Hydroponics North"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aOX" = (
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aOY" = (
+/obj/structure/chair/comfy/beige{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aOZ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aPa" = (
+/obj/structure/chair/comfy/beige{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aPb" = (
+/obj/structure/bookcase/random/religion,
+/turf/open/floor/wood,
+/area/library)
+"aPc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aPd" = (
+/obj/structure/bookcase/random/reference,
+/turf/open/floor/wood,
+/area/library)
+"aPe" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aPf" = (
+/obj/machinery/computer/libraryconsole,
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/library)
+"aPg" = (
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/carpet,
+/area/library)
+"aPk" = (
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/chapel/main)
+"aPl" = (
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/chapel/main)
+"aPm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/chapel/main)
+"aPn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/chapel/main)
+"aPo" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aPp" = (
+/obj/machinery/camera{
+ c_tag = "Escape Arm Holding Area";
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aPq" = (
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aPr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aPs" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aPt" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-20"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aPu" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aPv" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aPx" = (
+/obj/structure/chair/comfy/beige{
+ dir = 1
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aPy" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aPz" = (
+/turf/closed/wall,
+/area/maintenance/port)
+"aPA" = (
+/turf/closed/wall,
+/area/crew_quarters/locker)
+"aPB" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aPC" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aPD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aPE" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall,
+/area/crew_quarters/locker)
+"aPF" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/storage/art)
+"aPG" = (
+/turf/closed/wall,
+/area/storage/art)
+"aPH" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Art Storage"
+ },
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aPI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aPJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/storage/art)
+"aPK" = (
+/turf/closed/wall,
+/area/storage/emergency/port)
+"aPL" = (
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aPM" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aPN" = (
+/obj/structure/table,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aPO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aPQ" = (
+/turf/closed/wall,
+/area/storage/tools)
+"aPR" = (
+/turf/closed/wall/r_wall,
+/area/bridge)
+"aPS" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"aPT" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/bridge)
+"aPU" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/status_display/evac,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"aPV" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"aPW" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/status_display/evac,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"aPX" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/bridge)
+"aPY" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aPZ" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/britcup,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aQa" = (
+/obj/machinery/computer/arcade/battle,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aQb" = (
+/obj/structure/chair/sofa/right,
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_x = -32
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aQc" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aQd" = (
+/obj/structure/window,
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aQe" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/landmark/xmastree,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aQf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aQg" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/poddoor/preopen{
+ id = "barShutters";
+ name = "privacy shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/bar)
+"aQh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aQi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aQj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/kitchen)
+"aQk" = (
+/obj/machinery/door/airlock{
+ name = "Kitchen cold room";
+ req_access_txt = "28"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"aQl" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQm" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aQn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQp" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/library)
+"aQq" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/library)
+"aQr" = (
+/obj/machinery/light/small,
+/obj/structure/table/wood/fancy,
+/turf/open/floor/carpet,
+/area/library)
+"aQs" = (
+/obj/structure/bed,
+/obj/item/bedsheet/black,
+/turf/open/floor/carpet,
+/area/library)
+"aQu" = (
+/turf/open/floor/plasteel/chapel,
+/area/chapel/main)
+"aQv" = (
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/chapel/main)
+"aQw" = (
+/obj/structure/table/wood,
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aQx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/chapel,
+/area/chapel/main)
+"aQy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/chapel/main)
+"aQz" = (
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1480;
+ name = "Confessional Intercom";
+ pixel_x = 25
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aQA" = (
+/obj/machinery/door/morgue{
+ name = "Confession Booth"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aQB" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aQC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aQD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQE" = (
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aQF" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Security Escape Airlock";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aQG" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQH" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQI" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQJ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aQL" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aQM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aQN" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQO" = (
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/suit/ghost_sheet,
+/obj/item/clothing/suit/ghost_sheet,
+/obj/item/clothing/suit/ghost_sheet,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQP" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQR" = (
+/obj/machinery/vending/cola/pwr_game,
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQS" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQV" = (
+/obj/machinery/vending/autodrobe/all_access,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQW" = (
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQX" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/vending/games,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aQY" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/artistic{
+ pixel_y = 10
+ },
+/obj/item/storage/toolbox/artistic,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -10
+ },
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aQZ" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aRa" = (
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aRb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aRc" = (
+/obj/machinery/door/airlock{
+ name = "Port Emergency Storage"
+ },
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aRd" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aRe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/storage/tools)
+"aRf" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Auxiliary Tool Storage";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aRg" = (
+/obj/machinery/vending/boozeomat,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aRh" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aRi" = (
+/obj/machinery/computer/atmos_alert,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRj" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/secure/briefcase,
+/obj/item/storage/box/PDAs{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/storage/box/ids,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRk" = (
+/obj/machinery/computer/monitor{
+ name = "bridge power monitoring console"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRl" = (
+/obj/machinery/computer/station_alert,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRm" = (
+/obj/machinery/computer/communications,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRn" = (
+/obj/machinery/computer/shuttle/labor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRo" = (
+/obj/machinery/modular_computer/console/preset/command,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/computer/shuttle/mining,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRq" = (
+/obj/machinery/computer/med_data,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRr" = (
+/obj/machinery/computer/crew,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRs" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/emergency,
+/obj/item/wrench,
+/obj/item/assembly/timer,
+/obj/item/assembly/signaler,
+/obj/item/assembly/signaler,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aRt" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aRu" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/window,
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_x = -32
+ },
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aRx" = (
+/obj/machinery/computer/arcade/minesweeper,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aRy" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRz" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aRA" = (
+/obj/machinery/vending/dinnerware{
+ contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/food/condiment/flour = 4)
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRB" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/camera{
+ c_tag = "Kitchen"
+ },
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRC" = (
+/obj/structure/sink/kitchen{
+ pixel_y = 28
+ },
+/obj/machinery/food_cart,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aRF" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRG" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRH" = (
+/obj/structure/closet/secure_closet/freezer/kitchen,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aRI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aRJ" = (
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aRK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/library";
+ dir = 4;
+ name = "Library APC";
+ pixel_x = 24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aRL" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Holding Area";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aRM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aRN" = (
+/obj/structure/bookcase/random/fiction,
+/turf/open/floor/wood,
+/area/library)
+"aRO" = (
+/obj/structure/displaycase/trophy,
+/turf/open/floor/wood,
+/area/library)
+"aRP" = (
+/obj/machinery/camera{
+ c_tag = "Library South";
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/library)
+"aRQ" = (
+/obj/machinery/door/morgue{
+ name = "Private Study";
+ req_access_txt = "37"
+ },
+/turf/open/floor/engine/cult,
+/area/library)
+"aRR" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aRS" = (
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aRT" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/electronics/apc,
+/obj/item/electronics/airlock,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aRU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aRV" = (
+/obj/machinery/power/apc{
+ areastring = "/area/storage/tools";
+ dir = 1;
+ name = "Auxiliary Tool Storage APC";
+ pixel_y = 24
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aRW" = (
+/obj/structure/sign/warning/docking,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aRX" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"aRY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"aRZ" = (
+/turf/open/floor/plasteel/white/corner{
+ dir = 8
+ },
+/area/hallway/secondary/entry)
+"aSa" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Auxiliary Tool Storage"
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aSb" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aSc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aSd" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aSe" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aSf" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Hallway";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aSg" = (
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aSh" = (
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -27
+ },
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/russobluecamohat,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aSi" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aSk" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil,
+/obj/item/paper_bin/construction,
+/obj/item/stack/cable_coil,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aSl" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aSm" = (
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aSn" = (
+/obj/item/extinguisher,
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aSq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aSr" = (
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aSs" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tools)
+"aSt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aSu" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSv" = (
+/obj/structure/table/reinforced,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSx" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Engineering Station"
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSy" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Command Station"
+ },
+/obj/machinery/button/door{
+ id = "bridge blast";
+ name = "Bridge Blast Door Control";
+ pixel_x = 28;
+ pixel_y = -2;
+ req_access_txt = "19"
+ },
+/obj/machinery/keycard_auth{
+ pixel_x = 29;
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSz" = (
+/obj/structure/table/reinforced,
+/obj/item/aicard,
+/obj/item/multitool,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSA" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSB" = (
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSC" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSD" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Crew Station"
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSE" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aSF" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/mob/living/carbon/monkey/punpun,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aSH" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aSI" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Kitchen";
+ req_access_txt = "28"
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/kitchen)
+"aSJ" = (
+/obj/effect/landmark/start/cook,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aSK" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aSL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aSM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aSN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aSO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aSP" = (
+/obj/machinery/smartfridge,
+/turf/closed/wall,
+/area/crew_quarters/kitchen)
+"aSQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aSR" = (
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aSS" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aST" = (
+/obj/machinery/biogenerator,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aSU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aSV" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aSW" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aSX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/storage/art";
+ dir = 1;
+ name = "Art Storage";
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aSY" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/that,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aSZ" = (
+/obj/effect/landmark/start/bartender,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aTb" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/library)
+"aTc" = (
+/obj/machinery/door/window/northright{
+ dir = 8;
+ name = "Library Desk Door";
+ req_access_txt = "37"
+ },
+/turf/open/floor/wood,
+/area/library)
+"aTd" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/libraryconsole/bookmanagement,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/turf/open/floor/wood,
+/area/library)
+"aTe" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aTf" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/chapel,
+/area/chapel/main)
+"aTg" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/chapel/main)
+"aTh" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/chapel,
+/area/chapel/main)
+"aTi" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/chapel/main)
+"aTj" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aTk" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aTl" = (
+/obj/machinery/vending/cola/random,
+/obj/machinery/status_display/evac{
+ layer = 4;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
+"aTm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aTn" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Airlock"
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aTo" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Airlock"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aTr" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aTs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/security/vacantoffice)
+"aTt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/vacantoffice)
+"aTu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aTv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aTw" = (
+/obj/structure/closet/wardrobe/green,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/clothing/under/costume/kilt,
+/obj/item/clothing/under/costume/kilt,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTz" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTB" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTD" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Locker Room East";
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/razor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTE" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aTF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/table,
+/obj/item/camera_film,
+/obj/item/camera,
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aTG" = (
+/obj/structure/table,
+/obj/item/storage/crayons,
+/obj/item/storage/crayons,
+/turf/open/floor/plasteel,
+/area/storage/art)
+"aTH" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aTI" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aTJ" = (
+/obj/machinery/light/small,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aTK" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plating,
+/area/storage/emergency/port)
+"aTL" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
+/obj/item/storage/toolbox/emergency,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aTM" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/mint,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aTN" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/flour,
+/obj/item/kitchen/rollingpin,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aTO" = (
+/obj/structure/table,
+/obj/item/book/manual/chef_recipes,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aTP" = (
+/obj/structure/rack,
+/obj/item/clothing/gloves/color/fyellow,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/multitool,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aTQ" = (
+/turf/closed/wall,
+/area/bridge)
+"aTR" = (
+/obj/machinery/computer/prisoner/management,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTS" = (
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTT" = (
+/obj/machinery/computer/security,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTV" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTX" = (
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aTZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aUa" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aUb" = (
+/obj/machinery/modular_computer/console/preset/engineering,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aUc" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/firstaid/regular,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aUd" = (
+/obj/machinery/computer/security/mining,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aUe" = (
+/obj/machinery/computer/cargo/request,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aUg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aUh" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastleft{
+ name = "Hydroponics Desk";
+ req_access_txt = "35"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/crew_quarters/kitchen)
+"aUi" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aUj" = (
+/obj/machinery/vending/hydronutrients,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aUk" = (
+/obj/machinery/vending/hydroseeds{
+ slogan_delay = 700
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aUl" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUp" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUv" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUw" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aUx" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aUy" = (
+/obj/machinery/camera{
+ c_tag = "Vacant Office";
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUz" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aUA" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUB" = (
+/obj/structure/bookcase/random/adult,
+/turf/open/floor/wood,
+/area/library)
+"aUD" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/library)
+"aUE" = (
+/obj/machinery/libraryscanner,
+/turf/open/floor/wood,
+/area/library)
+"aUF" = (
+/obj/effect/landmark/start/librarian,
+/obj/structure/chair/office/dark,
+/turf/open/floor/wood,
+/area/library)
+"aUG" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aUH" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/chapel/main)
+"aUI" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/chapel/main)
+"aUJ" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/chapel/main)
+"aUK" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/chapel/main)
+"aUL" = (
+/obj/machinery/computer/arcade,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
+"aUM" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 2";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aUN" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUO" = (
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUQ" = (
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUR" = (
+/obj/structure/table/wood,
+/obj/item/pen/red,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUS" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aUT" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aUU" = (
+/obj/structure/closet/wardrobe/grey,
+/obj/machinery/requests_console{
+ department = "Locker Room";
+ pixel_x = -32
+ },
+/obj/item/clothing/under/misc/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
+/obj/item/clothing/under/color/grey,
+/obj/item/clothing/under/color/grey,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUW" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aUX" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aVa" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aVb" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aVc" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVd" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/bridge)
+"aVe" = (
+/obj/machinery/camera{
+ c_tag = "Bridge West";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVg" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Security Station"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVh" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/fore";
+ dir = 8;
+ name = "Fore Primary Hallway APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/camera{
+ c_tag = "Fore Primary Hallway";
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"aVi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVk" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVn" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVp" = (
+/obj/item/beacon,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVr" = (
+/obj/machinery/camera{
+ c_tag = "Bridge East";
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVs" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Logistics Station"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVt" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aVu" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aVv" = (
+/obj/machinery/camera{
+ c_tag = "Bridge East Entrance"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aVy" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aVz" = (
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aVA" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/item/reagent_containers/food/snacks/pie/cream,
+/obj/structure/noticeboard{
+ desc = "Tickets for food orders will be placed here. The Chef should make the order and hand it to a waiter, waitress or just let the barkeep serve it.";
+ name = "Food Orders";
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aVB" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/enzyme{
+ layer = 5
+ },
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aVC" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aVD" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
+ },
+/obj/item/sharpener{
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aVE" = (
+/obj/structure/table,
+/obj/item/storage/box/donkpockets{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 5
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aVF" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aVH" = (
+/obj/machinery/processor,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aVI" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aVJ" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aVK" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/effect/landmark/start/botanist,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aVL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 16
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"aVM" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"aVN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"aVO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"aVQ" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/library)
+"aVS" = (
+/obj/structure/table/wood,
+/obj/item/camera_film,
+/obj/item/camera_film,
+/obj/item/taperecorder,
+/obj/item/camera,
+/turf/open/floor/wood,
+/area/library)
+"aVT" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/item/pen/fourcolor,
+/turf/open/floor/wood,
+/area/library)
+"aVU" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/chapel/main)
+"aVV" = (
+/obj/machinery/camera{
+ c_tag = "Chapel South";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"aVW" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
+"aVX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aVY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aVZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Library"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aWa" = (
+/obj/structure/sign/warning/vacuum/external,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aWb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aWc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aWd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aWe" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel"
+ },
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aWf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aWg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aWh" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/item/beacon,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aWi" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aWj" = (
+/obj/structure/grille,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWk" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWl" = (
+/obj/structure/grille,
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWm" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_x = -28
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aWn" = (
+/obj/structure/closet/wardrobe/black,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/accessory/maidapron,
+/obj/item/clothing/accessory/maidapron,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aWo" = (
+/obj/machinery/camera{
+ c_tag = "Locker Room West";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aWp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aWq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aWr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/security/vacantoffice)
+"aWs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/security/vacantoffice)
+"aWt" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aWu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/toilet/locker)
+"aWz" = (
+/obj/machinery/power/apc{
+ areastring = "/area/storage/emergency/port";
+ dir = 1;
+ name = "Port Emergency Storage APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWB" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Detective Maintenance";
+ req_access_txt = "4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"aWD" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aWE" = (
+/obj/machinery/computer/med_data,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aWF" = (
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plasteel,
+/area/storage/tools)
+"aWG" = (
+/obj/machinery/computer/secure_data,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aWH" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aWI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWJ" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWN" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWO" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/obj/machinery/light_switch{
+ pixel_x = -6;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWQ" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWR" = (
+/obj/structure/fireaxecabinet{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWT" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Bridge";
+ departmentType = 5;
+ name = "Bridge RC";
+ pixel_y = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWV" = (
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/ai_upload";
+ name = "AI Upload turret control";
+ pixel_y = -25
+ },
+/obj/machinery/camera{
+ c_tag = "Bridge Center";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWW" = (
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/bridge";
+ name = "Bridge APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWX" = (
+/obj/machinery/newscaster{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aWZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aXa" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aXb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aXc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aXd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aXe" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aXf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aXg" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aXh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aXi" = (
+/obj/structure/chair/sofa/right,
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aXj" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain{
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aXk" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = 32
+ },
+/obj/item/book/manual/wiki/barman_recipes,
+/obj/item/reagent_containers/rag,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aXl" = (
+/obj/machinery/door/window/southright{
+ name = "Bar Door";
+ req_one_access_txt = "25;28"
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aXm" = (
+/obj/effect/landmark/start/cook,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aXn" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
+/obj/machinery/requests_console{
+ department = "Kitchen";
+ departmentType = 2;
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aXo" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aXp" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"aXq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"aXr" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aXt" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aXu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aXv" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aXw" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aXy" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aXz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aXB" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aXC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aXD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
+"aXE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"aXF" = (
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 10;
+ icon_state = "roomnum";
+ name = "Room Number 6";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/washing_machine{
+ pixel_x = 7;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aXG" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-05"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aXI" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aXJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"aXK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/detectives_office)
+"aXL" = (
+/turf/open/floor/carpet,
+/area/security/vacantoffice)
+"aXM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Cargo Bay Warehouse Maintenance";
+ req_access_txt = "31"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aXN" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aXP" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aXQ" = (
+/turf/closed/wall,
+/area/crew_quarters/toilet/locker)
+"aXR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"aXS" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall,
+/area/hydroponics)
+"aXT" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Library"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aXU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aXV" = (
+/obj/machinery/holopad,
+/turf/open/floor/carpet,
+/area/library)
+"aXW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aXX" = (
+/obj/machinery/door/airlock/engineering/abandoned{
+ abandoned = 0;
+ name = "Vacant Office A";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aXY" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aXZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/security/vacantoffice)
+"aYb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aYc" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port";
+ dir = 8;
+ name = "Port Maintenance APC";
+ pixel_x = -27;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aYd" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aYe" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"aYf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aYg" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"aYi" = (
+/obj/structure/closet/secure_closet/detective,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aYj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/button/door{
+ id = "kanyewest";
+ name = "Privacy Shutters";
+ pixel_y = 24
+ },
+/obj/structure/rack,
+/obj/item/storage/briefcase,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aYk" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aYl" = (
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aYm" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aYn" = (
+/obj/machinery/camera{
+ c_tag = "Bridge West Entrance";
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aYo" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/bridge)
+"aYp" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/bridge)
+"aYq" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aYr" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aYs" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aYt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYu" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aYv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/highsecurity{
+ name = "AI Upload Access";
+ req_access_txt = "16"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYy" = (
+/obj/machinery/status_display/ai,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYC" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/filingcabinet/filingcabinet,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aYD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
+"aYE" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aYF" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/central";
+ name = "Central Hall APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aYG" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aYJ" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aYK" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock{
+ name = "Kitchen";
+ req_access_txt = "28"
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/kitchen)
+"aYL" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aYM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/button/door{
+ id = "kitchen";
+ name = "Kitchen Shutters Control";
+ pixel_x = -1;
+ pixel_y = -24;
+ req_access_txt = "28"
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aYN" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"aYO" = (
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aYQ" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aYR" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/botanist,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aYS" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aYT" = (
+/obj/machinery/camera{
+ c_tag = "Hydroponics South";
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aYU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aYV" = (
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"aYW" = (
+/turf/open/floor/carpet,
+/area/library)
+"aYY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/library)
+"aYZ" = (
+/obj/structure/table/wood,
+/obj/item/storage/box/evidence,
+/obj/item/hand_labeler{
+ pixel_x = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/taperecorder,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aZa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aZb" = (
+/obj/machinery/camera{
+ c_tag = "Bar South";
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aZc" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"aZd" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-08"
+ },
+/turf/open/floor/wood,
+/area/library)
+"aZe" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aZf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aZg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aZh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/chapel/main)
+"aZi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aZj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
+"aZk" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aZl" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aZm" = (
+/obj/machinery/camera{
+ c_tag = "Escape Arm Airlocks";
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"aZn" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"aZo" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"aZp" = (
+/obj/structure/rack,
+/obj/item/electronics/apc,
+/obj/item/stock_parts/cell{
+ maxcharge = 2000
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"aZq" = (
+/obj/machinery/button/door{
+ id = "heads_meeting";
+ name = "Security Shutters";
+ pixel_y = 24
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"aZr" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aZs" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aZt" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
+"aZu" = (
+/obj/machinery/photocopier,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"aZv" = (
+/obj/machinery/door/airlock{
+ id_tag = "LockerShitter1";
+ name = "Unit 1"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
+"aZw" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"aZx" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/structure/window,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aZy" = (
+/obj/machinery/camera{
+ c_tag = "Conference Room"
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"aZz" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"aZA" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aZB" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aZC" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"aZD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aZE" = (
+/turf/closed/wall,
+/area/quartermaster/storage)
+"aZF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"aZG" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"aZH" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "packageSort2"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"aZI" = (
+/obj/structure/rack,
+/obj/item/stack/sheet/cardboard,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"aZJ" = (
+/obj/structure/table/wood,
+/obj/item/camera/detective,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
+"aZK" = (
+/turf/closed/wall,
+/area/quartermaster/sorting)
+"aZL" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"aZM" = (
+/turf/closed/wall/r_wall,
+/area/bridge/meeting_room)
+"aZN" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aZO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/bridge/meeting_room)
+"aZP" = (
+/turf/closed/wall,
+/area/bridge/meeting_room)
+"aZQ" = (
+/obj/machinery/door/airlock/command{
+ name = "Conference Room";
+ req_access_txt = "19"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"aZR" = (
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZS" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZU" = (
+/obj/machinery/porta_turret/ai{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZV" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/captain)
+"aZW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/captain)
+"aZX" = (
+/obj/machinery/door/airlock/command{
+ name = "Captain's Office";
+ req_access_txt = "20"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"aZY" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"aZZ" = (
+/obj/structure/chair/sofa{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"baa" = (
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bab" = (
+/obj/machinery/light,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bac" = (
+/obj/structure/noticeboard{
+ pixel_y = -27
+ },
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bad" = (
+/obj/machinery/light,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"baf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bag" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bah" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bai" = (
+/obj/machinery/light/small,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"baj" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"bak" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"bal" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"bam" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hydroponics)
+"ban" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/northleft{
+ name = "Hydroponics Desk";
+ req_access_txt = "35"
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"bao" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bap" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westright{
+ dir = 1;
+ name = "Hydroponics Desk";
+ req_access_txt = "35"
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"baq" = (
+/obj/machinery/status_display/ai{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bar" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bas" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/wood,
+/area/library)
+"bat" = (
+/obj/structure/table/wood,
+/obj/item/pen/red,
+/turf/open/floor/wood,
+/area/library)
+"bau" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/wood,
+/area/library)
+"bav" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/library)
+"baw" = (
+/obj/machinery/camera{
+ c_tag = "Locker Room Toilets";
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"bax" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/library)
+"bay" = (
+/obj/structure/chair/comfy/black,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"baz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"baA" = (
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/chapel/main)
+"baB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"baC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"baD" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/exit";
+ dir = 8;
+ name = "Escape Hallway APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
+"baE" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"baF" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"baG" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"baH" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"baI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"baJ" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"baK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"baL" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"baM" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/toilet/locker";
+ dir = 4;
+ name = "Locker Restrooms APC";
+ pixel_x = 27;
+ pixel_y = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"baN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"baO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"baP" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"baQ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"baR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"baS" = (
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"baT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"baU" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"baV" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Detective's Office";
+ req_access_txt = "4"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"baW" = (
+/obj/item/storage/secure/safe{
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"baX" = (
+/obj/structure/chair/comfy/brown,
+/obj/effect/landmark/start/detective,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
+"baY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"baZ" = (
+/obj/machinery/status_display/evac{
+ layer = 4;
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bba" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bbb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"bbc" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbg" = (
+/obj/effect/landmark/blobstart,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbh" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bbi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bbj" = (
+/obj/structure/table,
+/obj/item/aiModule/reset,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbl" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"bbm" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbn" = (
+/obj/structure/table,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbo" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bbp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbq" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"bbs" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"bbt" = (
+/obj/structure/closet/crate,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bbu" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/captain";
+ dir = 1;
+ name = "Captain's Office APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bbv" = (
+/obj/machinery/status_display/evac{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bbw" = (
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bbx" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Diner"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/bar)
+"bby" = (
+/obj/structure/sign/barsign,
+/turf/closed/wall,
+/area/crew_quarters/bar)
+"bbz" = (
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/primary/starboard)
+"bbA" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 2"
+ },
+/obj/structure/sign/poster/contraband/eat{
+ pixel_y = 32;
+ poster_item_desc = "This poster promotes obesity, it also promotes giving the Chef a reason to keep their job."
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/primary/starboard)
+"bbB" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Hydroponics";
+ req_access_txt = "35"
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"bbC" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bbD" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/library)
+"bbE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/library)
+"bbF" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/chapel/main)
+"bbG" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
+"bbH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bbI" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/vacantoffice";
+ dir = 8;
+ name = "Vacant Office APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbL" = (
+/obj/machinery/door/airlock{
+ id_tag = "LockerShitter2";
+ name = "Unit 2"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
+"bbM" = (
+/obj/item/book/manual/wiki/security_space_law,
+/obj/structure/table/wood,
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bbO" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/locker)
+"bbP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bbQ" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 3
+ },
+/obj/item/lighter,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
+"bbR" = (
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bbS" = (
+/obj/structure/closet/crate,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bbT" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
+"bbV" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bbW" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "heads_meeting";
+ name = "privacy shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/bridge/meeting_room)
+"bbX" = (
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bbY" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bca" = (
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bcb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bcc" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bcd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bce" = (
+/obj/structure/table,
+/obj/item/aiModule/supplied/quarantine,
+/obj/machinery/camera/motion{
+ dir = 4;
+ network = list("aiupload")
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bcf" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bcg" = (
+/obj/structure/table,
+/obj/item/aiModule/supplied/freeform,
+/obj/structure/sign/plaques/kiddie{
+ pixel_x = 32
+ },
+/obj/machinery/camera/motion{
+ dir = 8;
+ network = list("aiupload")
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bch" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bci" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bcj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bck" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bcl" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall,
+/area/maintenance/disposal)
+"bcm" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bcn" = (
+/obj/structure/displaycase/captain,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bco" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Dorm";
+ location = "HOP2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bcp" = (
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = 28
+ },
+/obj/structure/sign/directions/security{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = 36
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bcq" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bcr" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway"
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bcs" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bct" = (
+/obj/structure/chair/wood/wings,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance{
+ name = "Locker Room Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcv" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bcw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/locker)
+"bcx" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 5"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bcy" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/white/corner{
+ dir = 4
+ },
+/area/hallway/secondary/exit)
+"bcz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bcA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bcB" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bcC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bcD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"bcE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bcF" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bcG" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/security/wooden_tv,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
+"bcH" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes,
+/obj/item/clothing/glasses/sunglasses,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
+"bcI" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcJ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/closet/crate/freezer,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bcK" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction/flip{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcN" = (
+/obj/item/folder/blue,
+/obj/structure/table/wood,
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bcP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bcQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bcR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bcS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bcU" = (
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"bcV" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/filingcabinet,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"bcX" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "heads_meeting";
+ name = "privacy shutters"
+ },
+/turf/open/floor/plating,
+/area/bridge/meeting_room)
+"bcY" = (
+/obj/item/hand_labeler,
+/obj/item/assembly/timer,
+/obj/structure/table,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bcZ" = (
+/obj/structure/table/wood,
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Command)"
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bda" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bdb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white/side,
+/area/hallway/primary/starboard)
+"bdc" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/primary/starboard)
+"bdd" = (
+/obj/machinery/vending/cola/random,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bde" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bdf" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bdg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai_upload)
+"bdh" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bdi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/wardrobe/cap_wardrobe,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bdj" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bdk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bdl" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdn" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway East";
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bdo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bds" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 4";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdv" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=HOP2";
+ location = "Stbd"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdw" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bdx" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bdy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bdz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bdA" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Cargo Escape Airlock"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"bdB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/have_a_puff{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"bdF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bdG" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bdJ" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdK" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bdL" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/locker)
+"bdN" = (
+/obj/machinery/door/airlock/medical{
+ name = "Morgue";
+ req_access_txt = "6"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bdO" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bdP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/science/robotics/mechbay)
+"bdQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/maintenance/disposal)
+"bdR" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdS" = (
+/obj/structure/closet/crate/internals,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bdT" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/disposal";
+ dir = 8;
+ name = "Disposal APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdU" = (
+/obj/structure/closet/crate/medical,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bdX" = (
+/obj/item/storage/fancy/donut_box,
+/obj/structure/table,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bdY" = (
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/structure/table/wood,
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"bdZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bea" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"beb" = (
+/obj/structure/table,
+/obj/item/aiModule/core/full/asimov,
+/obj/item/aiModule/core/freeformcore,
+/obj/machinery/door/window{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Core Modules";
+ req_access_txt = "20"
+ },
+/obj/structure/window/reinforced,
+/obj/effect/spawner/lootdrop/aimodule_harmless,
+/obj/effect/spawner/lootdrop/aimodule_neutral,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/aiModule/core/full/custom,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bec" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bed" = (
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/ai_monitored/turret_protected/ai_upload";
+ name = "Upload APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai_upload)
+"bee" = (
+/obj/machinery/computer/upload/ai{
+ dir = 1
+ },
+/obj/machinery/flasher{
+ id = "AI";
+ pixel_y = -21
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai_upload)
+"bef" = (
+/obj/machinery/computer/upload/borg{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1447;
+ listening = 0;
+ name = "Station Intercom (AI Private)";
+ pixel_y = -29
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai_upload)
+"beg" = (
+/obj/structure/table,
+/obj/item/aiModule/supplied/oxygen,
+/obj/item/aiModule/zeroth/oneHuman,
+/obj/machinery/door/window{
+ dir = 8;
+ name = "High-Risk Modules";
+ req_access_txt = "20"
+ },
+/obj/item/aiModule/reset/purge,
+/obj/structure/window/reinforced,
+/obj/effect/spawner/lootdrop/aimodule_harmful,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/aiModule/supplied/protectStation,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"beh" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bej" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bek" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bel" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bem" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"ben" = (
+/obj/structure/table/wood,
+/obj/machinery/camera{
+ c_tag = "Captain's Office";
+ dir = 8
+ },
+/obj/item/storage/lockbox/medal,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"beo" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Stbd";
+ location = "HOP"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bep" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"beq" = (
+/obj/structure/sign/directions/medical{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -24
+ },
+/obj/structure/sign/directions/science{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/structure/sign/directions/engineering{
+ pixel_x = 32;
+ pixel_y = -40
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"ber" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bes" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bet" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"beu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bev" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_y = -25
+ },
+/obj/structure/sign/directions/science{
+ dir = 4;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bew" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bex" = (
+/obj/machinery/button/door{
+ id = "qm_warehouse";
+ name = "Warehouse Door Control";
+ pixel_x = -1;
+ pixel_y = -24;
+ req_access_txt = "31"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bey" = (
+/turf/open/floor/plasteel/white/corner{
+ dir = 8
+ },
+/area/hallway/primary/starboard)
+"bez" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"beA" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "packageSort2"
+ },
+/obj/structure/plasticflaps,
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"beB" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 3";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"beC" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"beD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"beE" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"beF" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"beG" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"beH" = (
+/obj/machinery/newscaster{
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/exit)
+"beI" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/exit)
+"beJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white/corner{
+ dir = 8
+ },
+/area/hallway/secondary/exit)
+"beK" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 4"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"beL" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 3"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"beM" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"beN" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"beO" = (
+/turf/closed/wall,
+/area/maintenance/disposal)
+"beP" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beQ" = (
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beR" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbage"
+ },
+/obj/machinery/recycler,
+/obj/structure/sign/warning/securearea{
+ name = "\improper STAY CLEAR HEAVY MACHINERY";
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beS" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbage"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/disposal)
+"beU" = (
+/obj/machinery/conveyor{
+ dir = 6;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/quartermaster/sorting)
+"beW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/table/reinforced,
+/obj/item/stack/wrapping_paper{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/item/stack/packageWrap{
+ pixel_x = -1;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"beX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"beY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"beZ" = (
+/obj/machinery/mineral/stacking_unit_console{
+ machinedir = 8
+ },
+/turf/closed/wall,
+/area/maintenance/disposal)
+"bfa" = (
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/mineral/wood/fifty{
+ amount = 20
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfb" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/chapel/main)
+"bfc" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/locker";
+ dir = 1;
+ name = "Locker Room APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfe" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bff" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/stack/sheet/cardboard,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bfh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bfj" = (
+/obj/structure/disposalpipe/trunk,
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"bfl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bfm" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/quartermaster/office)
+"bfn" = (
+/obj/machinery/disposal/deliveryChute{
+ dir = 8
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"bfo" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bfp" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Bridge";
+ departmentType = 5;
+ name = "Bridge RC";
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bfq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfr" = (
+/obj/structure/noticeboard{
+ dir = 8;
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bfs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bft" = (
+/obj/machinery/status_display/ai,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfu" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfv" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfw" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfx" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfy" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Captain's Desk";
+ departmentType = 5;
+ name = "Captain RC";
+ pixel_x = -30
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bfz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfA" = (
+/obj/structure/table/wood,
+/obj/item/hand_tele,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bfB" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/item/stamp/captain,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bfC" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bfD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bfE" = (
+/obj/structure/table/wood,
+/obj/item/pinpointer/nuke,
+/obj/item/disk/nuclear,
+/obj/item/storage/secure/safe{
+ pixel_x = 35;
+ pixel_y = 5
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bfF" = (
+/turf/closed/wall,
+/area/medical/chemistry)
+"bfG" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"bfH" = (
+/obj/structure/sign/departments/medbay/alt,
+/turf/closed/wall,
+/area/medical/medbay/central)
+"bfI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfJ" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bfK" = (
+/turf/closed/wall,
+/area/security/checkpoint/medical)
+"bfL" = (
+/turf/closed/wall,
+/area/medical/morgue)
+"bfM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfN" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bfO" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bfP" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/starboard";
+ name = "Starboard Primary Hallway APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bfQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"bfR" = (
+/obj/structure/table/reinforced,
+/obj/item/hand_labeler{
+ pixel_y = 8
+ },
+/obj/item/hand_labeler{
+ pixel_y = 8
+ },
+/obj/item/storage/box,
+/obj/item/storage/box,
+/obj/item/storage/box,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bfS" = (
+/turf/closed/wall,
+/area/storage/emergency/starboard)
+"bfT" = (
+/turf/closed/wall,
+/area/science/robotics/mechbay)
+"bfU" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bfV" = (
+/turf/closed/wall/r_wall,
+/area/science/robotics/lab)
+"bfW" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-13"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bfX" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bfY" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bfZ" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bga" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bgb" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-10"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bgc" = (
+/turf/closed/wall/r_wall,
+/area/science/lab)
+"bgd" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/exit)
+"bge" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/hallway/secondary/exit)
+"bgf" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bgg" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"bgh" = (
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"bgi" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 3 & 4";
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"bgj" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bgk" = (
+/obj/machinery/conveyor{
+ dir = 10;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bgm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bgn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bgo" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/science/robotics/mechbay";
+ dir = 4;
+ name = "Mech Bay APC";
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"bgp" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bgq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/table/wood/fancy/purple,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgt" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgu" = (
+/obj/machinery/button/door{
+ id = "qm_warehouse";
+ name = "Warehouse Door Control";
+ pixel_x = -1;
+ pixel_y = 24;
+ req_access_txt = "31"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bgv" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall,
+/area/quartermaster/office)
+"bgw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"bgz" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bgA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bgB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/quartermaster/sorting)
+"bgC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/quartermaster/sorting)
+"bgD" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "packageSort2"
+ },
+/obj/machinery/camera{
+ c_tag = "Cargo Delivery Office";
+ dir = 4
+ },
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_x = -30
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bgE" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bgF" = (
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bgG" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway West";
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bgH" = (
+/obj/machinery/door/window/eastright{
+ dir = 1;
+ name = "Bridge Delivery";
+ req_access_txt = "19"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/bridge/meeting_room)
+"bgI" = (
+/obj/machinery/computer/slot_machine,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bgJ" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bgK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bgL" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = -32
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bgM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bgN" = (
+/turf/open/floor/plasteel/dark,
+/area/engine/gravity_generator)
+"bgO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"bgP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bgQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bgS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bgT" = (
+/obj/machinery/computer/communications{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bgU" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/landmark/start/captain,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bgV" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/coin/plasma,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bgW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bgX" = (
+/obj/structure/table/wood,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/item/camera,
+/obj/item/storage/photo_album{
+ pixel_y = -10
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bgY" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bgZ" = (
+/obj/machinery/power/apc{
+ areastring = "/area/medical/chemistry";
+ dir = 1;
+ name = "Chemistry APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bha" = (
+/obj/machinery/vending/wardrobe/chem_wardrobe,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bhb" = (
+/obj/machinery/chem_dispenser,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bhc" = (
+/obj/machinery/camera{
+ c_tag = "Chemistry"
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/chem_heater,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bhd" = (
+/obj/machinery/chem_master,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bhe" = (
+/obj/structure/chair,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bhg" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bhh" = (
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bhi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/medical)
+"bhj" = (
+/obj/machinery/camera{
+ c_tag = "Security Post - Medbay"
+ },
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bhk" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/machinery/button/door{
+ desc = "A remote control switch for the medbay foyer.";
+ id = "MedbayFoyer";
+ name = "Medbay Doors Control";
+ normaldoorcontrol = 1;
+ pixel_y = 26;
+ req_access_txt = "5"
+ },
+/obj/item/book/manual/wiki/security_space_law,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bhl" = (
+/obj/structure/filingcabinet,
+/obj/machinery/newscaster{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bhm" = (
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bhn" = (
+/obj/structure/table,
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bho" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/bodycontainer/morgue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bhp" = (
+/obj/machinery/power/apc{
+ areastring = "/area/medical/morgue";
+ dir = 1;
+ name = "Morgue APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bhq" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bhr" = (
+/obj/machinery/door/airlock{
+ name = "Starboard Emergency Storage"
+ },
+/turf/open/floor/plating,
+/area/storage/emergency/starboard)
+"bhs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bht" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Mech Bay";
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"bhu" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters{
+ id = "Skynet_launch";
+ name = "mech bay"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"bhv" = (
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bhw" = (
+/obj/machinery/computer/rdconsole/robotics,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bhx" = (
+/obj/machinery/requests_console{
+ department = "Robotics";
+ departmentType = 2;
+ name = "Robotics RC";
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/rnd/production/circuit_imprinter,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bhy" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics";
+ name = "robotics lab shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"bhz" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 2;
+ icon_state = "left";
+ name = "Robotics Desk";
+ req_access_txt = "29"
+ },
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics";
+ name = "robotics lab shutters"
+ },
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"bhA" = (
+/turf/closed/wall,
+/area/science/research)
+"bhB" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/research{
+ name = "Research Division Access";
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bhC" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd";
+ name = "research lab shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/lab)
+"bhD" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/southright{
+ name = "Research and Development Desk";
+ req_one_access_txt = "7;29"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd";
+ name = "research lab shutters"
+ },
+/turf/open/floor/plating,
+/area/science/lab)
+"bhE" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bhF" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bhG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/starboard)
+"bhH" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bhI" = (
+/obj/machinery/conveyor{
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bhJ" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/obj/machinery/disposal/deliveryChute{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/door/window{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ layer = 3
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bhL" = (
+/obj/machinery/mineral/stacking_machine{
+ input_dir = 1;
+ stack_amt = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bhM" = (
+/turf/open/floor/circuit,
+/area/science/robotics/mechbay)
+"bhN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port)
+"bhR" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhS" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhT" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bhV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bhW" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "qm_warehouse";
+ name = "warehouse shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"bhX" = (
+/obj/structure/disposalpipe/sorting/wrap{
+ dir = 1
+ },
+/turf/closed/wall,
+/area/quartermaster/sorting)
+"bhY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/quartermaster/storage)
+"bhZ" = (
+/obj/machinery/door/window/eastleft{
+ icon_state = "right";
+ name = "Incoming Mail";
+ req_access_txt = "50"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"bia" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"bib" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bic" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bid" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bie" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=1";
+ dir = 1;
+ freq = 1400;
+ location = "Bridge"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/bridge/meeting_room)
+"bif" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"big" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/gravity_generator)
+"bih" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/gravity_generator)
+"bii" = (
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/gravity_generator)
+"bij" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"bik" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Command)";
+ pixel_x = -28
+ },
+/obj/machinery/suit_storage_unit/captain,
+/obj/machinery/light{
+ light_color = "#c9d3e8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bil" = (
+/obj/machinery/computer/card{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bim" = (
+/obj/structure/table/wood,
+/obj/machinery/recharger,
+/obj/item/melee/chainofcommand,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bin" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bio" = (
+/obj/machinery/requests_console{
+ department = "Chemistry";
+ departmentType = 2;
+ pixel_x = -30;
+ receive_ore_updates = 1
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/chemical,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bip" = (
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"biq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bir" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ dir = 8;
+ name = "Chemistry Desk";
+ req_access_txt = "33"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bis" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/chemist,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bit" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"biu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"biv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"biw" = (
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bix" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/landmark/start/depsec/medical,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"biy" = (
+/obj/machinery/computer/secure_data{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_x = 25
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"biz" = (
+/obj/structure/bodycontainer/morgue,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"biA" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"biB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"biC" = (
+/turf/open/floor/plating,
+/area/storage/emergency/starboard)
+"biD" = (
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plating,
+/area/storage/emergency/starboard)
+"biE" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/item/extinguisher,
+/turf/open/floor/plating,
+/area/storage/emergency/starboard)
+"biF" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 2
+ },
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"biG" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/science/robotics/mechbay)
+"biH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"biI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit,
+/area/science/robotics/mechbay)
+"biJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit,
+/area/science/robotics/mechbay)
+"biK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"biL" = (
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"biN" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"biO" = (
+/obj/machinery/camera{
+ c_tag = "Robotics Lab";
+ network = list("ss13","rd")
+ },
+/obj/machinery/button/door{
+ id = "robotics";
+ name = "Shutters Control Button";
+ pixel_x = 6;
+ pixel_y = 24;
+ req_access_txt = "29"
+ },
+/obj/structure/table,
+/obj/item/book/manual/wiki/robotics_cyborgs{
+ pixel_x = 2;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/glass/beaker/large,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"biP" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"biQ" = (
+/obj/structure/chair/stool,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"biR" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"biS" = (
+/obj/machinery/camera{
+ c_tag = "Research Division Access"
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"biT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"biU" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"biV" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/scientist,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"biW" = (
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"biX" = (
+/obj/machinery/camera{
+ c_tag = "Research and Development";
+ network = list("ss13","rd");
+ pixel_x = 22
+ },
+/obj/machinery/button/door{
+ id = "rnd";
+ name = "Shutters Control Button";
+ pixel_x = -6;
+ pixel_y = 24;
+ req_access_txt = "47"
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"biY" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bja" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjb" = (
+/obj/machinery/conveyor{
+ id = "garbage"
+ },
+/obj/structure/sign/warning/vacuum{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bje" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjf" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Disposal Access";
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bji" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjk" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjl" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjm" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/hand_labeler,
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bjn" = (
+/obj/structure/table,
+/obj/item/clothing/head/soft,
+/obj/item/clothing/head/soft,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bjo" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Bay North"
+ },
+/obj/machinery/vending/wardrobe/cargo_wardrobe,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bjp" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bjq" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = 30
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bjr" = (
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bjs" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Office";
+ req_access_txt = "50"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bjt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bju" = (
+/obj/machinery/photocopier,
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bjv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bjw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bjx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bjy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"bjz" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/central)
+"bjA" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bjB" = (
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bjC" = (
+/obj/structure/closet/wardrobe/black,
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bjE" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"bjF" = (
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -32
+ },
+/obj/machinery/keycard_auth{
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bjG" = (
+/obj/machinery/door/window{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Captain's Desk Door";
+ req_access_txt = "20"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bjH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bjI" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bjJ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"bjK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bjL" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bjM" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bjN" = (
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bjO" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bjP" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"bjQ" = (
+/obj/machinery/smartfridge/chemistry/preloaded,
+/turf/closed/wall,
+/area/medical/chemistry)
+"bjR" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/beaker/large,
+/obj/item/reagent_containers/glass/beaker/large,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/dropper,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bjS" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bjT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bjU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bjV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bjX" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bjY" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bjZ" = (
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bka" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bkb" = (
+/obj/machinery/camera{
+ c_tag = "Medbay Morgue";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkc" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/storage/emergency/starboard)
+"bkd" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/storage/emergency/starboard)
+"bkf" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/storage/emergency/starboard)
+"bkh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/circuit,
+/area/science/robotics/mechbay)
+"bki" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/glass/beaker/large{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/dropper,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bkj" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bkk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bkm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bkn" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ pixel_y = 27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bko" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/obj/machinery/aug_manipulator,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bkp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bkq" = (
+/obj/structure/closet/firecloset,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bkr" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bks" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_x = -30;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bkt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bku" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bkv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bkw" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bkx" = (
+/obj/machinery/status_display/supply,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/quartermaster/sorting)
+"bky" = (
+/turf/closed/wall,
+/area/maintenance/starboard)
+"bkz" = (
+/obj/machinery/conveyor{
+ id = "garbage"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Disposal Exit";
+ name = "disposal exit vent"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bkB" = (
+/obj/machinery/button/door{
+ id = "Disposal Exit";
+ name = "Disposal Vent Control";
+ pixel_x = -25;
+ pixel_y = 4;
+ req_access_txt = "12"
+ },
+/obj/machinery/button/massdriver{
+ id = "trash";
+ pixel_x = -26;
+ pixel_y = -6
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bkC" = (
+/obj/effect/decal/cleanable/oil,
+/obj/machinery/light_switch{
+ pixel_x = 25
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bkD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bkE" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/r_wall,
+/area/maintenance/port)
+"bkF" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/port)
+"bkG" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Cargo Bay Maintenance";
+ req_access_txt = "31"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bkH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"bkJ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bkK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bkL" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/chem_heater,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bkM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bkN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/quartermaster/office)
+"bkO" = (
+/obj/machinery/light_switch{
+ pixel_x = 28
+ },
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/item/radio/off,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bkP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bkT" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkV" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"bkW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/bridge/meeting_room";
+ dir = 4;
+ name = "Conference Room APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkY" = (
+/obj/effect/landmark/blobstart,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkZ" = (
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"bla" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"blb" = (
+/obj/machinery/door/airlock/command{
+ name = "Captain's Quarters";
+ req_access_txt = "20"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"blc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/captain)
+"bld" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Captain's Office Maintenance";
+ req_access_txt = "20"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"ble" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"blf" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/syringes,
+/obj/item/clothing/glasses/science{
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/obj/item/clothing/glasses/science,
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"blg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Morgue Maintenance";
+ req_access_txt = "6"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"blh" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Chemistry Desk";
+ req_access_txt = "33"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bli" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"blj" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"blk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bll" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/white,
+/obj/item/pen,
+/obj/item/reagent_containers/glass/bottle/epinephrine,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"blm" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/drinks/britcup{
+ desc = "Kingston's personal cup."
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bln" = (
+/obj/structure/table/reinforced,
+/obj/machinery/camera{
+ c_tag = "Medbay Foyer";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"blo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/storage/emergency/starboard";
+ dir = 1;
+ name = "Starboard Emergency Storage APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"blp" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/medical";
+ dir = 8;
+ name = "Medbay Security APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"blq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"blr" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bls" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/crowbar/large,
+/obj/machinery/camera{
+ c_tag = "Mech Bay";
+ dir = 1
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"blt" = (
+/obj/machinery/recharge_station,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/state_laws{
+ pixel_y = -32
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"blu" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"blv" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"blw" = (
+/turf/open/floor/mech_bay_recharge_floor,
+/area/science/robotics/mechbay)
+"blx" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"bly" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"blz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"blA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"blB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/mecha_part_fabricator,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"blC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"blD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/science/robotics/lab)
+"blE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ empty = 1;
+ name = "First-Aid (empty)"
+ },
+/obj/item/storage/firstaid/regular{
+ empty = 1;
+ name = "First-Aid (empty)"
+ },
+/obj/item/storage/firstaid/regular{
+ empty = 1;
+ name = "First-Aid (empty)"
+ },
+/obj/item/healthanalyzer,
+/obj/item/healthanalyzer,
+/obj/item/healthanalyzer,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"blF" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo1"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"blG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"blH" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"blI" = (
+/obj/machinery/rnd/destructive_analyzer,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/lab)
+"blJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/rnd/production/protolathe/department/science,
+/turf/open/floor/plasteel,
+/area/science/lab)
+"blK" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/lab)
+"blL" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"blM" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"blO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"blP" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"blQ" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"blR" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"blS" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/mass_driver{
+ id = "trash"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"blU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"blV" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"blW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"blX" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/research{
+ name = "Research Division Access";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"blY" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"blZ" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bma" = (
+/obj/structure/table/glass,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stack/cable_coil,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bmb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bmc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bmd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bme" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bmf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bmg" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Bay";
+ req_access_txt = "31"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bmh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bmi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bmj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bmk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Delivery Office";
+ req_access_txt = "50"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bmm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bmn" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/status_display/supply{
+ pixel_x = -28;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bmo" = (
+/turf/closed/wall,
+/area/crew_quarters/heads/hop)
+"bmp" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bmq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/heads/hop)
+"bmr" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/hop)
+"bms" = (
+/obj/machinery/door/airlock/command{
+ name = "Head of Personnel";
+ req_access_txt = "57"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/hop)
+"bmt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bmx" = (
+/turf/closed/wall,
+/area/crew_quarters/heads/captain)
+"bmy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bmz" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/dresser,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/item/card/id/captains_spare,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bmA" = (
+/obj/machinery/door/airlock{
+ name = "Private Restroom"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/heads/captain)
+"bmB" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bmC" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/heads/captain)
+"bmD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"bmE" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bmF" = (
+/obj/structure/table/glass,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/reagent_containers/glass/bottle/epinephrine,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bmG" = (
+/obj/machinery/chem_dispenser,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bmH" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Bay";
+ req_access_txt = "31"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bmI" = (
+/obj/machinery/chem_master,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bmJ" = (
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1485;
+ listening = 0;
+ name = "Station Intercom (Medbay)";
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bmK" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bmL" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ desc = "A remote control switch for the medbay foyer.";
+ id = "MedbayFoyer";
+ name = "Medbay Doors Control";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ req_access_txt = "5"
+ },
+/obj/effect/landmark/start/medical_doctor,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bmM" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bmN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bmO" = (
+/obj/structure/closet/secure_closet/security/med,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/medical)
+"bmP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bmQ" = (
+/obj/item/stamp{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/stamp/denied{
+ pixel_x = 4;
+ pixel_y = -2
+ },
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bmR" = (
+/obj/structure/table,
+/obj/item/paper/guides/jobs/medical/morgue{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bmS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bmT" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bmU" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/checkpoint/medical)
+"bmV" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/medical{
+ name = "Morgue";
+ req_access_txt = "6;5"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bmW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/medical/morgue)
+"bmX" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/medical/genetics)
+"bmY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/medical/morgue)
+"bmZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/medical/genetics)
+"bna" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bnb" = (
+/obj/machinery/recharge_station,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"bnc" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/robotics/mechbay)
+"bnf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bng" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bnh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bni" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = 6
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
+/obj/item/multitool{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"bnj" = (
+/obj/structure/table,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/obj/item/stack/cable_coil,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"bnk" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bnl" = (
+/obj/item/stack/sheet/glass,
+/obj/structure/table/glass,
+/obj/item/stack/sheet/glass,
+/obj/item/stack/sheet/glass,
+/obj/item/stock_parts/matter_bin,
+/obj/item/stock_parts/matter_bin,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/stock_parts/scanning_module{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/stock_parts/scanning_module,
+/obj/machinery/power/apc{
+ areastring = "/area/science/lab";
+ dir = 4;
+ name = "Research Lab APC";
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bnm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/science/research)
+"bnn" = (
+/obj/machinery/computer/rdconsole/core{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/lab)
+"bno" = (
+/obj/item/reagent_containers/glass/beaker/sulphuric,
+/obj/machinery/rnd/production/circuit_imprinter/department/science,
+/turf/open/floor/plasteel,
+/area/science/lab)
+"bnp" = (
+/turf/open/floor/plasteel,
+/area/science/lab)
+"bnq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/science/lab)
+"bnr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/plasticflaps/opaque,
+/turf/open/floor/plating,
+/area/science/lab)
+"bns" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard)
+"bnt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bnu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/maintenance/starboard)
+"bnv" = (
+/obj/machinery/door/poddoor{
+ id = "trash";
+ name = "disposal bay door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bnw" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bnx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bny" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bnz" = (
+/obj/effect/landmark/start/cargo_technician,
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bnA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bnB" = (
+/obj/structure/closet/wardrobe/chemistry_white,
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bnC" = (
+/obj/structure/chair,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bnD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table,
+/obj/item/book/manual/wiki/chemistry,
+/obj/item/book/manual/wiki/chemistry{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bnE" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bnF" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 30
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bnG" = (
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/clipboard,
+/obj/item/pen/red,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bnH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bnI" = (
+/obj/machinery/computer/cargo/request,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bnJ" = (
+/obj/machinery/firealarm{
+ pixel_y = 27
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bnK" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/quartermaster/office)
+"bnL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bnM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bnN" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bnO" = (
+/obj/machinery/newscaster/security_unit{
+ pixel_y = 32
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bnP" = (
+/obj/machinery/button/flasher{
+ id = "hopflash";
+ pixel_x = 6;
+ pixel_y = 36
+ },
+/obj/machinery/button/door{
+ id = "hop";
+ name = "Privacy Shutters Control";
+ pixel_x = 6;
+ pixel_y = 25;
+ req_access_txt = "57"
+ },
+/obj/machinery/button/door{
+ id = "hopqueue";
+ name = "Queue Shutters Control";
+ pixel_x = -4;
+ pixel_y = 25;
+ req_access_txt = "57"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -4;
+ pixel_y = 36
+ },
+/obj/machinery/pdapainter,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bnQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/bed/dogbed/ian,
+/mob/living/simple_animal/pet/dog/corgi/Ian{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bnR" = (
+/obj/machinery/computer/security/telescreen/vault{
+ pixel_y = 30
+ },
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bnS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bnT" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/gravity_generator)
+"bnV" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/gravity_generator)
+"bnW" = (
+/obj/structure/sign/warning/radiation/rad_area{
+ pixel_x = 32
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/gravity_generator)
+"bnX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bnY" = (
+/obj/structure/bed,
+/obj/item/bedsheet/captain,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bnZ" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/obj/item/pen/fountain/captain,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"boa" = (
+/obj/structure/toilet{
+ contents = newlist(/obj/item/toy/snappop/phoenix);
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/heads/captain)
+"bob" = (
+/obj/structure/table/glass,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/screwdriver{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"boc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bod" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/radio/headset/headset_med,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"boe" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bof" = (
+/turf/closed/wall,
+/area/medical/medbay/central)
+"bog" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"boh" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"boi" = (
+/obj/machinery/computer/med_data{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"boj" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_x = 30
+ },
+/obj/machinery/light,
+/obj/machinery/computer/crew{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bok" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/security/checkpoint/medical)
+"bol" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bom" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bon" = (
+/turf/closed/wall/r_wall,
+/area/medical/genetics)
+"boo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"boq" = (
+/obj/structure/bed/roller,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bor" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/surgical_drapes,
+/obj/item/razor,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bos" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/power/apc{
+ areastring = "/area/science/robotics/lab";
+ dir = 8;
+ name = "Robotics Lab APC";
+ pixel_x = -25
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bou" = (
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"bov" = (
+/obj/structure/table,
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/crowbar,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/item/radio/headset/headset_sci{
+ pixel_x = -3
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"bow" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/research)
+"box" = (
+/turf/closed/wall,
+/area/science/robotics/lab)
+"boy" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/research)
+"boz" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/research)
+"boA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"boB" = (
+/turf/closed/wall,
+/area/science/lab)
+"boC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/science/robotics/lab)
+"boD" = (
+/obj/structure/table,
+/obj/item/circular_saw,
+/obj/item/scalpel{
+ pixel_y = 12
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boE" = (
+/obj/structure/table,
+/obj/item/hemostat,
+/obj/item/cautery{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"boG" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/mmi,
+/obj/item/mmi,
+/obj/item/mmi,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"boI" = (
+/obj/structure/sign/warning/vacuum/external,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"boJ" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "QMLoad2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"boK" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"boL" = (
+/obj/structure/table,
+/obj/item/retractor,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boM" = (
+/turf/open/floor/plasteel/white/corner,
+/area/science/research)
+"boN" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"boO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white/side,
+/area/science/research)
+"boP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"boQ" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"boR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"boS" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westleft{
+ name = "Cargo Desk";
+ req_access_txt = "50"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"boT" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"boU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"boV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"boW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"boY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/ian{
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"boZ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/northleft{
+ dir = 8;
+ name = "Reception Window"
+ },
+/obj/machinery/door/window/brigdoor{
+ base_state = "rightsecure";
+ dir = 4;
+ icon_state = "rightsecure";
+ name = "Head of Personnel's Desk";
+ req_access_txt = "57"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/flasher{
+ id = "hopflash";
+ pixel_y = 28
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hop";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bpb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hop)
+"bpc" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bpd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hop)
+"bpe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hop)
+"bph" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"bpj" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Captain's Quarters";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bpk" = (
+/obj/structure/closet/secure_closet/captains,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/item/clothing/under/rank/captain/parade,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bpl" = (
+/obj/structure/table/wood,
+/obj/item/storage/box/matches,
+/obj/item/razor{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/clothing/mask/cigarette/cigar,
+/obj/item/reagent_containers/food/drinks/flask/gold,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"bpm" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/item/soap/deluxe,
+/obj/item/bikehorn/rubberducky,
+/obj/structure/curtain,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/heads/captain)
+"bpn" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bpo" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bpp" = (
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Research Division Delivery";
+ req_access_txt = "47"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/science/lab)
+"bpq" = (
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bpr" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "Research Division"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/lab)
+"bps" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bpt" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bpu" = (
+/obj/structure/bed/roller,
+/obj/machinery/button/door{
+ desc = "A remote control switch for the medbay foyer.";
+ id = "MedbayFoyer";
+ name = "Medbay Exit Button";
+ normaldoorcontrol = 1;
+ pixel_y = 26
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpv" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical{
+ name = "Medbay Reception";
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpw" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall,
+/area/medical/medbay/central)
+"bpx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpz" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bpA" = (
+/obj/machinery/computer/cargo{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bpB" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bpC" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bpD" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ name = "Chemistry Lab";
+ req_access_txt = "5; 33"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"bpE" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/genetics)
+"bpF" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/southleft{
+ dir = 1;
+ name = "Chemistry Desk";
+ req_access_txt = "33"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bpG" = (
+/obj/machinery/power/apc{
+ areastring = "/area/medical/genetics";
+ dir = 1;
+ name = "Genetics APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bpH" = (
+/obj/structure/table/glass,
+/obj/item/folder/white,
+/obj/item/radio/headset/headset_medsci,
+/obj/machinery/requests_console{
+ department = "Genetics";
+ name = "Genetics Requests Console";
+ pixel_y = 30
+ },
+/obj/item/storage/pill_bottle/mutadone,
+/obj/item/storage/pill_bottle/mannitol,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bpI" = (
+/obj/machinery/dna_scannernew,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bpJ" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bpK" = (
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel,
+/area/medical/genetics)
+"bpL" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/medical/genetics)
+"bpM" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bpN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpO" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"bpR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bpS" = (
+/obj/structure/table,
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bpT" = (
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass{
+ amount = 20;
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"bpU" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"bpV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/robotics/lab)
+"bpW" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"bpX" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white/corner{
+ dir = 8
+ },
+/area/science/research)
+"bpY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bpZ" = (
+/obj/item/folder/white,
+/obj/structure/table,
+/obj/item/disk/tech_disk,
+/obj/item/disk/tech_disk,
+/obj/item/disk/design_disk,
+/obj/item/disk/design_disk,
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bqa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/window/eastright{
+ name = "Robotics Surgery";
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bqc" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bqd" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo2"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"bqe" = (
+/turf/closed/wall/r_wall,
+/area/science/explab)
+"bqf" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd2";
+ name = "research lab shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bqg" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bqh" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bqi" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2"
+ },
+/obj/machinery/door/poddoor{
+ id = "QMLoaddoor2";
+ name = "supply dock loading door"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bqj" = (
+/obj/structure/plasticflaps,
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bqk" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd2";
+ name = "research lab shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/lab)
+"bql" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bqm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bqn" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bqo" = (
+/obj/machinery/autolathe,
+/obj/machinery/light_switch{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bqp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/structure/table/reinforced,
+/obj/item/destTagger,
+/obj/item/destTagger,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bqq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hop)
+"bqr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hop)
+"bqs" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bqt" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bqu" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bqv" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"bqw" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bqx" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hop";
+ name = "Privacy Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hop)
+"bqy" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bqz" = (
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hop)
+"bqA" = (
+/obj/machinery/computer/card{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bqB" = (
+/obj/machinery/holopad,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hop)
+"bqC" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bqD" = (
+/obj/machinery/vending/coffee,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqF" = (
+/obj/machinery/vending/cigarette/beach,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqG" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqH" = (
+/turf/closed/wall/r_wall,
+/area/teleporter)
+"bqI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/teleporter)
+"bqJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/teleporter)
+"bqK" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Teleporter Maintenance";
+ req_access_txt = "17"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"bqL" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bqM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"bqN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bqO" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqP" = (
+/obj/structure/bed/roller,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqR" = (
+/obj/structure/table,
+/obj/item/crowbar,
+/obj/item/clothing/neck/stethoscope,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqT" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay West";
+ network = list("ss13","medbay")
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bqZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bra" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/rxglasses,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"brb" = (
+/obj/machinery/computer/scan_consolenew{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"brc" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/geneticist,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"brd" = (
+/turf/open/floor/plasteel,
+/area/medical/genetics)
+"bre" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel,
+/area/medical/genetics)
+"brf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"brg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"brh" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bri" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"brj" = (
+/obj/structure/bed/roller,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"brk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"brm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"brn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bro" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 10
+ },
+/area/science/research)
+"brp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"brq" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/button/door{
+ id = "robotics2";
+ name = "Shutters Control Button";
+ pixel_x = 24;
+ pixel_y = -24;
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"brr" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/explab)
+"brs" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Robotics Desk";
+ req_access_txt = "29"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/obj/item/folder/white,
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"brt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bru" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"brv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"brw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"brx" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd2";
+ name = "research lab shutters"
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/lab)
+"bry" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Experimentation Lab Maintenance";
+ req_access_txt = "47"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brz" = (
+/obj/structure/table,
+/obj/item/pen,
+/obj/machinery/camera{
+ c_tag = "Experimentor Lab";
+ network = list("ss13","rd")
+ },
+/obj/item/hand_labeler,
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/white/side,
+/area/science/explab)
+"brA" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/science/explab)
+"brB" = (
+/obj/structure/closet/l3closet/scientist,
+/turf/open/floor/plasteel/white/side,
+/area/science/explab)
+"brC" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/folder/white,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/item/radio/off,
+/turf/open/floor/plasteel/white/side,
+/area/science/explab)
+"brD" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/white/corner{
+ dir = 8
+ },
+/area/science/explab)
+"brE" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_one_access_txt = "8;12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brF" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brG" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brH" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brI" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brJ" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Supply Dock Airlock";
+ req_access_txt = "31"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"brK" = (
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"brL" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"brM" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #1"
+ },
+/obj/effect/turf_decal/bot,
+/mob/living/simple_animal/bot/mulebot{
+ beacon_freq = 1400;
+ home_destination = "QM #1";
+ suffix = "#1"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"brN" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"brO" = (
+/obj/structure/table,
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_x = -30
+ },
+/obj/item/multitool,
+/obj/machinery/camera{
+ c_tag = "Cargo Office";
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"brP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"brQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/junction/flip{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brR" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"brS" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"brU" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = -32
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hop";
+ name = "Privacy Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hop)
+"brV" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"brW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/vending/cart,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"brX" = (
+/obj/structure/table,
+/obj/item/storage/box/masks,
+/obj/item/storage/box/gloves{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"brY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"brZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bsa" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bsb" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bsc" = (
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"bsg" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/machinery/camera{
+ c_tag = "Medbay Morgue";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bsh" = (
+/turf/closed/wall,
+/area/teleporter)
+"bsi" = (
+/obj/structure/table,
+/obj/item/hand_tele,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bsj" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/obj/structure/table,
+/obj/item/beacon,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bsk" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bsl" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/structure/closet/crate,
+/obj/item/crowbar,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bsm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bsn" = (
+/obj/machinery/camera{
+ c_tag = "Teleporter"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bso" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bsp" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bsq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bsr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bss" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bst" = (
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_x = 30
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay East";
+ dir = 8;
+ network = list("ss13","medbay");
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bsu" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "GeneticsDoor";
+ name = "Genetics";
+ req_access_txt = "5; 68"
+ },
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bsv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bsw" = (
+/obj/machinery/door/airlock/research{
+ name = "Robotics Lab";
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bsx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bsy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bsz" = (
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bsA" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bsC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bsD" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bsE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/research{
+ name = "Experimentation Lab";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bsF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bsG" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bsH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/explab)
+"bsI" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/explab";
+ dir = 4;
+ name = "Experimentation Lab APC";
+ pixel_x = 26
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bsJ" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard)
+"bsK" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/disks{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bsL" = (
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bsM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bsN" = (
+/obj/machinery/door/window/westleft{
+ name = "Monkey Pen";
+ req_access_txt = "9"
+ },
+/turf/open/floor/plasteel,
+/area/medical/genetics)
+"bsO" = (
+/obj/structure/bodycontainer/morgue,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsP" = (
+/obj/structure/table/optable{
+ name = "Robotics Operating Table"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/item/tank/internals/anesthetic,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsQ" = (
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsR" = (
+/obj/machinery/computer/operating{
+ dir = 1;
+ name = "Robotics Operating Computer"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsS" = (
+/obj/machinery/camera{
+ c_tag = "Robotics Lab - South";
+ dir = 1;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bsT" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bsU" = (
+/obj/structure/table/optable{
+ name = "Robotics Operating Table"
+ },
+/obj/item/surgical_drapes,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"bsV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bsW" = (
+/obj/machinery/vending/wardrobe/robo_wardrobe,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"bsX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bsY" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/head_of_personnel,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bsZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bta" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Research Division North"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"btb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"btc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bte" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 6
+ },
+/area/science/research)
+"btf" = (
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"btg" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bth" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-16"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bti" = (
+/obj/structure/closet/wardrobe/grey,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/under/misc/assistantformal,
+/obj/item/clothing/under/dress/skirt,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"btj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"btk" = (
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/costume/kilt,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"btl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"btm" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 12
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"btn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/research)
+"bto" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"btp" = (
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"btq" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"btr" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Receiving Dock";
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "QMLoaddoor";
+ layer = 4;
+ name = "Loading Doors";
+ pixel_x = -24;
+ pixel_y = -8
+ },
+/obj/machinery/button/door{
+ id = "QMLoaddoor2";
+ layer = 4;
+ name = "Loading Doors";
+ pixel_x = -24;
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bts" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #2"
+ },
+/obj/effect/turf_decal/bot,
+/mob/living/simple_animal/bot/mulebot{
+ home_destination = "QM #2";
+ suffix = "#2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"btt" = (
+/obj/structure/table,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/item/folder/yellow,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"btu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"btv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"btw" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"btx" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/research)
+"bty" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"btz" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"btA" = (
+/obj/machinery/camera{
+ c_tag = "Research Division West"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"btB" = (
+/obj/machinery/computer/bounty{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"btC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"btD" = (
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/structure/table,
+/obj/item/pen/fourcolor,
+/obj/item/stamp/hop,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"btE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"btG" = (
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"btH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btI" = (
+/obj/machinery/power/apc{
+ areastring = "/area/teleporter";
+ dir = 8;
+ name = "Teleporter APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/bluespace_beacon,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btK" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btM" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command{
+ name = "Teleport Access";
+ req_access_txt = "17"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"btO" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"btP" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"btQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 10
+ },
+/area/science/research)
+"btR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"btS" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"btT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"btU" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"btV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"btW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"btX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"btY" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"btZ" = (
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bua" = (
+/turf/closed/wall,
+/area/medical/genetics)
+"bub" = (
+/obj/machinery/light,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"buc" = (
+/obj/machinery/light,
+/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/office";
+ name = "Cargo Office APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/brown,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bud" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bue" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Head of Personnel's Desk";
+ departmentType = 5;
+ name = "Head of Personnel RC";
+ pixel_y = -30
+ },
+/obj/machinery/camera{
+ c_tag = "Head of Personnel's Office";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"buf" = (
+/obj/machinery/computer/scan_consolenew{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bug" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bui" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"buj" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"buk" = (
+/turf/open/floor/plasteel/white/side{
+ dir = 8
+ },
+/area/medical/sleeper)
+"bul" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bum" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bun" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"buo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bup" = (
+/obj/machinery/light,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"buq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/medical/genetics)
+"bur" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bus" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"but" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"buu" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"buv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"buw" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bux" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"buy" = (
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 23
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"buz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"buB" = (
+/obj/machinery/conveyor_switch/oneway{
+ dir = 8;
+ id = "QMLoad"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"buC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"buD" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #3"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"buE" = (
+/obj/structure/table,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"buF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"buG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/research{
+ name = "Genetics Research Access";
+ req_access_txt = "9"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"buH" = (
+/obj/machinery/door/airlock/research{
+ name = "Genetics Research Access";
+ req_access_txt = "47"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"buI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"buJ" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"buK" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"buL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"buM" = (
+/obj/machinery/keycard_auth{
+ pixel_x = -24
+ },
+/obj/machinery/computer/cargo{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"buN" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"buO" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/obj/item/stack/packageWrap{
+ pixel_x = -1;
+ pixel_y = -1
+ },
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"buQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"buT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"buU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/research)
+"buV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/teleporter)
+"buW" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"buX" = (
+/obj/machinery/shieldwallgen,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"buY" = (
+/obj/machinery/shieldwallgen,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"buZ" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/teleporter)
+"bva" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bvb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bvc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bvd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/medical/sleeper)
+"bve" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bvf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bvg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bvh" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/sleeper)
+"bvi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/medical/sleeper)
+"bvj" = (
+/turf/closed/wall,
+/area/medical/sleeper)
+"bvk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bvl" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Surgery Observation"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bvm" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bvn" = (
+/obj/machinery/button/door{
+ desc = "A remote control switch for the genetics doors.";
+ id = "GeneticsDoor";
+ name = "Genetics Exit Button";
+ normaldoorcontrol = 1;
+ pixel_x = 8;
+ pixel_y = 24
+ },
+/obj/structure/table,
+/obj/item/book/manual/wiki/medical_cloning{
+ pixel_y = 6
+ },
+/obj/item/storage/box/rxglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvq" = (
+/obj/structure/chair,
+/obj/effect/landmark/start/geneticist,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvr" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvs" = (
+/obj/machinery/dna_scannernew,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvt" = (
+/obj/machinery/door/airlock/research/glass{
+ name = "Genetics Research";
+ req_access_txt = "5; 9; 68"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvu" = (
+/obj/structure/window/reinforced,
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel,
+/area/medical/genetics)
+"bvv" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/open/floor/plasteel,
+/area/medical/genetics)
+"bvw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvx" = (
+/turf/closed/wall/r_wall,
+/area/science/research)
+"bvy" = (
+/obj/machinery/camera{
+ c_tag = "Genetics Research";
+ dir = 1;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvz" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvA" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/medical/genetics)
+"bvB" = (
+/obj/machinery/camera{
+ c_tag = "Genetics Access";
+ dir = 8;
+ network = list("ss13","medbay");
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bvC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/checkpoint/science)
+"bvD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bvE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 6
+ },
+/area/science/research)
+"bvF" = (
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_x = -30
+ },
+/obj/machinery/computer/bounty{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/keycard_auth{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bvH" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bvI" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bvJ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hor)
+"bvK" = (
+/turf/closed/wall,
+/area/crew_quarters/heads/hor)
+"bvL" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bvM" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bvN" = (
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bvO" = (
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bvP" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bvQ" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bvR" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bvS" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/obj/machinery/door/poddoor{
+ id = "QMLoaddoor";
+ name = "supply dock loading door"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bvT" = (
+/obj/structure/plasticflaps,
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bvU" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/obj/machinery/light,
+/obj/machinery/status_display/supply{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bvV" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"bvW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bvX" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Bay South";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bvY" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #4"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"bvZ" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ pixel_x = 6;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bwa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bwb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bwc" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bwd" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/supply)
+"bwe" = (
+/turf/closed/wall,
+/area/security/checkpoint/supply)
+"bwf" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Bay Entrance";
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bwg" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hopqueue";
+ name = "HoP Queue Shutters"
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bwh" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bwi" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/structure/closet/secure_closet/hop,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/item/clothing/suit/ianshirt,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bwj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bwk" = (
+/obj/structure/table,
+/obj/machinery/recharger,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bwl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bwq" = (
+/obj/machinery/teleport/station,
+/turf/open/floor/plating,
+/area/teleporter)
+"bwr" = (
+/obj/machinery/computer/teleporter{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/teleporter)
+"bws" = (
+/obj/structure/rack,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plating,
+/area/teleporter)
+"bwt" = (
+/obj/machinery/teleport/hub,
+/turf/open/floor/plating,
+/area/teleporter)
+"bwu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bwv" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=4";
+ dir = 4;
+ freq = 1400;
+ location = "Medbay"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/medical/medbay/central)
+"bww" = (
+/obj/structure/chair,
+/obj/machinery/camera{
+ c_tag = "Surgery Observation";
+ network = list("ss13","medbay")
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bwx" = (
+/obj/machinery/door/window/eastleft{
+ name = "Medical Delivery";
+ req_access_txt = "5"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/medical/medbay/central)
+"bwy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bwz" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bwA" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bwB" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bwD" = (
+/obj/machinery/sleeper{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bwE" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bwF" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/glass/beaker/cryoxadone{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/glass/beaker/cryoxadone{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bwG" = (
+/obj/structure/sign/warning/nosmoking,
+/turf/closed/wall,
+/area/medical/sleeper)
+"bwH" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bwI" = (
+/obj/machinery/atmospherics/components/unary/cryo_cell,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bwJ" = (
+/obj/structure/table/glass,
+/obj/machinery/camera{
+ c_tag = "Medbay Cryogenics";
+ network = list("ss13","medbay")
+ },
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bwK" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bwL" = (
+/obj/machinery/camera{
+ c_tag = "Genetics Cloning";
+ dir = 4;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/closet/secure_closet/personal/patient,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bwM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bwN" = (
+/obj/machinery/light_switch{
+ pixel_x = 8;
+ pixel_y = 28
+ },
+/obj/machinery/button/door{
+ id = "Biohazard";
+ name = "Biohazard Shutter Control";
+ pixel_x = -5;
+ pixel_y = 28;
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bwO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bwQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/hor)
+"bwR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bwS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bwT" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Quartermaster";
+ req_access_txt = "41"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bwU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bwV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bwW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bwX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 3
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bwY" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bwZ" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bxa" = (
+/obj/structure/chair,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bxb" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bxc" = (
+/obj/machinery/holopad,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bxd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bxe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bxf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bxg" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bxi" = (
+/obj/machinery/computer/aifixer{
+ dir = 8
+ },
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Research Director's Desk";
+ departmentType = 5;
+ name = "Research Director RC";
+ pixel_x = -2;
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bxj" = (
+/obj/structure/table,
+/obj/machinery/computer/security/telescreen/rd,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bxk" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"bxl" = (
+/obj/structure/rack,
+/obj/item/circuitboard/aicore{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"bxm" = (
+/obj/effect/landmark/xmastree/rdrod,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"bxn" = (
+/turf/closed/wall,
+/area/science/explab)
+"bxo" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/explab)
+"bxp" = (
+/obj/machinery/computer/rdconsole/experiment{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/science/explab)
+"bxq" = (
+/obj/structure/table,
+/obj/item/clipboard,
+/obj/item/book/manual/wiki/experimentor,
+/turf/open/floor/plasteel/white/corner{
+ dir = 4
+ },
+/area/science/explab)
+"bxr" = (
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/science/explab)
+"bxs" = (
+/obj/machinery/button/door{
+ id = "telelab";
+ name = "Test Chamber Blast Doors";
+ pixel_x = 25;
+ req_access_txt = "47"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"bxt" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bxu" = (
+/turf/closed/wall,
+/area/quartermaster/qm)
+"bxv" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/depsec/science,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bxw" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Quartermaster";
+ req_access_txt = "41"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bxx" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/quartermaster/qm)
+"bxy" = (
+/turf/closed/wall,
+/area/quartermaster/miningdock)
+"bxz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/quartermaster/miningdock)
+"bxA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining{
+ req_access_txt = "48"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bxB" = (
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bxC" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bxD" = (
+/obj/item/book/manual/wiki/security_space_law,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bxE" = (
+/obj/machinery/computer/secure_data{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bxF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bxG" = (
+/obj/machinery/door/airlock/command{
+ name = "Head of Personnel";
+ req_access_txt = "57"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"bxI" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"bxK" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"bxL" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway South-East";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bxM" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/auxiliary)
+"bxN" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/structure/mirror{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bxO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bxP" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bxQ" = (
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bxR" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bxS" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bxT" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bxU" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bxV" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bxW" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Research Director";
+ req_access_txt = "30"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bxX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bxY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bxZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bya" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"byb" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"byc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/computer/card/minor/qm{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bye" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall,
+/area/medical/genetics)
+"byf" = (
+/turf/closed/wall/r_wall,
+/area/science/server)
+"byg" = (
+/obj/structure/table,
+/obj/item/clipboard,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/cartridge/quartermaster{
+ pixel_x = 6;
+ pixel_y = 5
+ },
+/obj/item/cartridge/quartermaster{
+ pixel_x = -4;
+ pixel_y = 7
+ },
+/obj/item/cartridge/quartermaster,
+/obj/item/coin/silver,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/item/stamp/qm,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byh" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command{
+ name = "Server Room";
+ req_access_txt = "30"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"byi" = (
+/turf/closed/wall,
+/area/security/checkpoint/science)
+"byj" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/security/checkpoint/science)
+"byk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/science)
+"byl" = (
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/pen/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bym" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/quartermaster/qm)
+"byn" = (
+/obj/structure/filingcabinet,
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byo" = (
+/obj/structure/table,
+/obj/machinery/button/door{
+ id = "Biohazard";
+ name = "Biohazard Shutter Control";
+ pixel_x = -5;
+ pixel_y = 5;
+ req_access_txt = "47"
+ },
+/obj/machinery/button/door{
+ id = "rnd2";
+ name = "Research Lab Shutter Control";
+ pixel_x = 5;
+ pixel_y = 5;
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"byp" = (
+/obj/machinery/computer/robotics{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"byq" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/effect/landmark/start/research_director,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"byr" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"bys" = (
+/obj/structure/rack,
+/obj/item/aicard,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"byt" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/hor)
+"byu" = (
+/obj/structure/displaycase/labcage,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"byv" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "telelab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/engine,
+/area/science/explab)
+"byw" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "telelab";
+ name = "test chamber blast door"
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/engine,
+/area/science/explab)
+"byx" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"byy" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"byz" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byA" = (
+/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/qm";
+ dir = 1;
+ name = "Quartermaster APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byB" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byC" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byD" = (
+/obj/structure/closet/secure_closet/quartermaster,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"byE" = (
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"byF" = (
+/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/miningdock";
+ dir = 1;
+ name = "Mining Dock APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"byG" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"byH" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/security/cargo,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"byI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"byJ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/checkpoint/supply)
+"byK" = (
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"byL" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/obj/effect/landmark/start/depsec/supply,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"byM" = (
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/machinery/computer/security/mining{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"byN" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byO" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = -30
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"byP" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"byU" = (
+/obj/machinery/light,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byW" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byX" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"byY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/medical/sleeper)
+"byZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/sleeper)
+"bza" = (
+/obj/structure/chair,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bzb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/medical/sleeper)
+"bzc" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Recovery Room"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bzd" = (
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/pen,
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bze" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bzf" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bzg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bzh" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bzi" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bzj" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bzk" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bzl" = (
+/obj/machinery/dna_scannernew,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bzm" = (
+/obj/machinery/clonepod,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bzn" = (
+/obj/machinery/computer/cloning{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bzo" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bzp" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/obj/machinery/light,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bzq" = (
+/obj/structure/closet/secure_closet/medical1,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bzr" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/vending/wardrobe/gene_wardrobe,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
+"bzs" = (
+/turf/closed/wall,
+/area/maintenance/aft)
+"bzt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ external_pressure_bound = 140;
+ name = "server vent";
+ pressure_checks = 0
+ },
+/turf/open/floor/circuit/telecomms/server,
+/area/science/server)
+"bzu" = (
+/obj/machinery/rnd/server,
+/turf/open/floor/circuit/telecomms/server,
+/area/science/server)
+"bzv" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bzw" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/server)
+"bzx" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bzy" = (
+/obj/machinery/camera{
+ c_tag = "Server Room";
+ network = list("ss13","rd");
+ pixel_x = 22
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/science/server";
+ dir = 1;
+ name = "Server Room APC";
+ pixel_y = 25
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bzz" = (
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = -30
+ },
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/obj/structure/closet/secure_closet/security/science,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bzA" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bzB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bzC" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bzD" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/computer/security/telescreen/circuitry,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bzE" = (
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bzF" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bzG" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bzH" = (
+/obj/structure/table,
+/obj/item/hemostat,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white/side,
+/area/medical/sleeper)
+"bzI" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/table,
+/obj/item/surgicaldrill,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bzJ" = (
+/obj/machinery/computer/mecha{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bzK" = (
+/obj/structure/table,
+/obj/item/scalpel{
+ pixel_y = 12
+ },
+/obj/item/circular_saw,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bzL" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"bzM" = (
+/obj/structure/rack,
+/obj/item/taperecorder{
+ pixel_x = -3
+ },
+/obj/item/paicard{
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"bzN" = (
+/obj/machinery/modular_computer/console/preset/research{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"bzO" = (
+/turf/open/floor/engine,
+/area/science/explab)
+"bzP" = (
+/obj/machinery/computer/cargo{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bzQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bzR" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bzS" = (
+/obj/structure/table,
+/obj/item/cautery{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bzT" = (
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/quartermaster,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bzU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bzV" = (
+/obj/machinery/vending/wardrobe/medi_wardrobe,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bzW" = (
+/obj/structure/closet/l3closet,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bzX" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bzY" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bzZ" = (
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bAa" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bAb" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bAc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bAd" = (
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/radio/off,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bAe" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=AIW";
+ location = "QM"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bAf" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bAg" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=AftH";
+ location = "AIW"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bAh" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=CHE";
+ location = "AIE"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bAi" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bAj" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=HOP";
+ location = "CHE"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bAk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bAl" = (
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/medical/sleeper)
+"bAm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bAn" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Mining Maintenance";
+ req_access_txt = "48"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/supply";
+ dir = 1;
+ name = "Cargo Security APC";
+ pixel_x = 1;
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAp" = (
+/obj/structure/closet/secure_closet/medical1,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bAq" = (
+/obj/machinery/sleeper{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay Treatment Center";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bAr" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bAs" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1;
+ name = "Connector Port (Air Supply)"
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bAt" = (
+/obj/structure/table/reinforced,
+/obj/item/wrench/medical,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bAu" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bAv" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1;
+ name = "Connector Port (Air Supply)"
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bAw" = (
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bAx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAy" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/science/server)
+"bAz" = (
+/obj/machinery/airalarm/server{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/science/server)
+"bAA" = (
+/obj/machinery/atmospherics/pipe/manifold{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAB" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "Server Room";
+ req_access_txt = "30"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAC" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 9
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAD" = (
+/obj/structure/chair/office/light,
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAE" = (
+/obj/machinery/camera{
+ c_tag = "Security Post - Science";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/obj/machinery/newscaster{
+ pixel_x = -30
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bAF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bAG" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bAH" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bAI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAL" = (
+/obj/structure/table,
+/obj/item/plant_analyzer,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bAM" = (
+/obj/structure/table,
+/obj/item/analyzer,
+/obj/item/healthanalyzer,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bAN" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bAO" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bAP" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bAQ" = (
+/obj/effect/landmark/blobstart,
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/engine,
+/area/science/explab)
+"bAR" = (
+/obj/machinery/rnd/experimentor,
+/turf/open/floor/engine,
+/area/science/explab)
+"bAS" = (
+/obj/machinery/camera{
+ c_tag = "Quartermaster's Office";
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/machinery/status_display/supply{
+ pixel_x = -32
+ },
+/obj/machinery/computer/security/qm{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/qm)
+"bAT" = (
+/obj/machinery/vending/wardrobe/jani_wardrobe,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bAU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bAV" = (
+/obj/machinery/door/window/westleft{
+ name = "Janitorial Delivery";
+ req_access_txt = "26"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bAW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bAX" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/table,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/clothing/mask/surgical,
+/obj/item/clothing/suit/apron/surgical,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/medical/sleeper)
+"bAY" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bAZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bBa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bBb" = (
+/obj/effect/landmark/start/medical_doctor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bBc" = (
+/obj/structure/table,
+/obj/item/surgical_drapes,
+/obj/item/razor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 8
+ },
+/area/medical/sleeper)
+"bBd" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin{
+ pixel_x = 2
+ },
+/obj/item/clothing/suit/straight_jacket,
+/obj/item/clothing/mask/muzzle,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bBe" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bBf" = (
+/obj/structure/filingcabinet,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/machinery/newscaster{
+ pixel_y = -32
+ },
+/obj/machinery/camera{
+ c_tag = "Security Post - Cargo";
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"bBg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBh" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBj" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBk" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Central Primary Hallway South-West";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBl" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bBn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bBo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBq" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/directions/engineering{
+ pixel_x = -32;
+ pixel_y = -40
+ },
+/obj/structure/sign/directions/medical{
+ dir = 4;
+ pixel_x = -32;
+ pixel_y = -24
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/status_display/evac{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Central Primary Hallway South";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBv" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortType = 22
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBw" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bBx" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBy" = (
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/space_up{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBA" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/junction/flip{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBB" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bBC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bBD" = (
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bBE" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bBF" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/item/storage/firstaid/toxin,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/airalarm/unlocked{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bBG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bBH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/quartermaster/miningdock)
+"bBI" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/wardrobe/miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/radio/headset/headset_cargo/mining,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bBJ" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bBK" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bBL" = (
+/obj/machinery/vending/medical{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bBN" = (
+/turf/closed/wall,
+/area/crew_quarters/heads/cmo)
+"bBO" = (
+/obj/machinery/computer/med_data,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bBP" = (
+/obj/machinery/computer/crew,
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Chief Medical Officer's Desk";
+ departmentType = 5;
+ name = "Chief Medical Officer RC";
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bBQ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bBR" = (
+/turf/closed/mineral/random/snow/no_caves,
+/area/security/main)
+"bBS" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
+ dir = 4;
+ external_pressure_bound = 120;
+ name = "server vent"
+ },
+/turf/open/floor/circuit/telecomms/server,
+/area/science/server)
+"bBU" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 9
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bBV" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/server)
+"bBW" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bBX" = (
+/obj/machinery/computer/rdservercontrol{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bBY" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/obj/structure/filingcabinet,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bBZ" = (
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/item/radio/off,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bCa" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/science";
+ name = "Science Security APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bCb" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bCc" = (
+/obj/machinery/computer/secure_data{
+ dir = 1
+ },
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = -30
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/science)
+"bCd" = (
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 8;
+ sortType = 15
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCf" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/hor";
+ dir = 8;
+ name = "RD Office APC";
+ pixel_x = -25
+ },
+/obj/structure/cable,
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/item/twohanded/required/kirbyplants/dead,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bCg" = (
+/obj/structure/table,
+/obj/item/cartridge/signal/toxins,
+/obj/item/cartridge/signal/toxins{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/cartridge/signal/toxins{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/machinery/camera{
+ c_tag = "Research Director's Office";
+ dir = 1;
+ network = list("ss13","rd")
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bCh" = (
+/obj/machinery/keycard_auth{
+ pixel_y = -24
+ },
+/obj/machinery/light,
+/obj/machinery/computer/card/minor/rd{
+ dir = 1
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bCi" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bCj" = (
+/obj/structure/closet/secure_closet/RD,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bCk" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
+"bCl" = (
+/obj/machinery/camera{
+ c_tag = "Experimentor Lab Chamber";
+ dir = 1;
+ network = list("ss13","rd")
+ },
+/obj/machinery/light,
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = -32
+ },
+/turf/open/floor/engine,
+/area/science/explab)
+"bCm" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bCn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCo" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bCp" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bCq" = (
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bCr" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCs" = (
+/turf/closed/wall,
+/area/storage/tech)
+"bCt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/lizard{
+ name = "Wags-His-Tail";
+ real_name = "Wags-His-Tail"
+ },
+/turf/open/floor/plasteel,
+/area/janitor)
+"bCu" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bCv" = (
+/turf/closed/wall,
+/area/janitor)
+"bCw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/janitor)
+"bCx" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/gateway)
+"bCy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/janitor)
+"bCz" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bCA" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bCB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Surgery Maintenance";
+ req_access_txt = "45"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bCC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bCD" = (
+/obj/structure/table,
+/obj/item/retractor,
+/turf/open/floor/plasteel/white/side,
+/area/medical/sleeper)
+"bCE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCG" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/reagent_containers/dropper,
+/obj/item/soap/nanotrasen,
+/obj/item/gun/syringe/dart,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCK" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCL" = (
+/obj/structure/closet/secure_closet/medical3,
+/obj/machinery/camera{
+ c_tag = "Medbay Storage";
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCM" = (
+/obj/structure/closet/secure_closet/medical3,
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCN" = (
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCO" = (
+/obj/structure/table,
+/obj/item/storage/box/bodybags{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/rxglasses,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/medical/sleeper)
+"bCQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/sleeper)
+"bCR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bCS" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/iv_drip,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/bloodbankgen,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bCU" = (
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_x = -30
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay South";
+ dir = 4;
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bCV" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bCW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bCX" = (
+/obj/effect/decal/cleanable/oil,
+/obj/item/cigbutt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bCY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bCZ" = (
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/chief_medical_officer,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bDa" = (
+/obj/machinery/keycard_auth{
+ pixel_x = 24
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bDb" = (
+/turf/closed/wall/r_wall,
+/area/science/xenobiology)
+"bDc" = (
+/turf/closed/wall,
+/area/science/storage)
+"bDd" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bDe" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"bDf" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bDg" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bDh" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bDj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bDk" = (
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/pen,
+/obj/machinery/requests_console{
+ department = "Mining";
+ pixel_x = -30
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bDl" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bDm" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bDn" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bDo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bDp" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bDq" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/item/key/janitor,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDr" = (
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/storage/box/mousetraps,
+/obj/item/storage/box/mousetraps,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDs" = (
+/obj/structure/sign/poster/contraband/lusty_xenomorph{
+ pixel_x = 32
+ },
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bDu" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDv" = (
+/obj/structure/table,
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/machinery/status_display/ai{
+ pixel_x = -32
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/storage/tech";
+ dir = 1;
+ name = "Tech Storage APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bDw" = (
+/obj/structure/table,
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/obj/item/wirecutters,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bDx" = (
+/obj/structure/table,
+/obj/item/electronics/apc,
+/obj/item/electronics/airlock,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bDA" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/power/apc{
+ areastring = "/area/medical/sleeper";
+ dir = 4;
+ name = "Treatment Center APC";
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/medical/sleeper)
+"bDC" = (
+/obj/machinery/computer/operating{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bDD" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bDE" = (
+/obj/machinery/vending/wallmed{
+ pixel_x = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay Recovery Room";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/iv_drip,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bDF" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "medpriv4";
+ name = "privacy door"
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"bDG" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bDH" = (
+/obj/structure/closet/l3closet/janitor,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDI" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bDJ" = (
+/obj/structure/closet/jcloset,
+/obj/item/storage/bag/trash,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/costume/maid,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDK" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Custodial Closet"
+ },
+/obj/vehicle/ridden/janicart,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDL" = (
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDM" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDN" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bDO" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDP" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 1;
+ freq = 1400;
+ location = "Janitor"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bDQ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDR" = (
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bDS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bDT" = (
+/obj/effect/landmark/start/medical_doctor,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bDU" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Chief Medical Officer";
+ req_access_txt = "40"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bDV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDW" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Medbay Storage";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bDY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bDZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bEa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bEb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bEc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bEd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical/glass{
+ name = "Medbay Storage";
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bEe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bEf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bEg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/research{
+ name = "Toxins Storage";
+ req_access_txt = "8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bEh" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bEi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
+"bEj" = (
+/obj/structure/table/glass,
+/obj/item/pen,
+/obj/item/clothing/neck/stethoscope,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/mob/living/simple_animal/pet/cat/Runtime,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bEk" = (
+/obj/structure/table/glass,
+/obj/item/folder/white,
+/obj/item/stamp/cmo,
+/obj/item/clothing/glasses/hud/health,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bEl" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/radio/intercom{
+ pixel_x = 25
+ },
+/obj/machinery/camera{
+ c_tag = "Chief Medical Office";
+ dir = 8;
+ network = list("ss13","medbay");
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bEm" = (
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bEn" = (
+/obj/machinery/camera{
+ c_tag = "Xenobiology Test Chamber";
+ network = list("xeno","rd")
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bEo" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bEp" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bEq" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/research";
+ dir = 8;
+ name = "Misc Research APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bEr" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bEs" = (
+/turf/closed/wall,
+/area/science/mixing)
+"bEt" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bEu" = (
+/obj/structure/closet/bombcloset,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEv" = (
+/obj/structure/closet/bombcloset,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEw" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEx" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Toxins Lab West";
+ network = list("ss13","rd")
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEy" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEz" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bEA" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEB" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEC" = (
+/turf/closed/wall/r_wall,
+/area/science/mixing)
+"bED" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEE" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEF" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/science/mixing)
+"bEI" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEJ" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"bEK" = (
+/obj/machinery/camera{
+ c_tag = "Mining Dock";
+ dir = 4
+ },
+/obj/machinery/computer/security/mining,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bEL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bEM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/mixing)
+"bEN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bEO" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bEP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bEQ" = (
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bER" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bES" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bET" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bEU" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bEV" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bEW" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bEX" = (
+/obj/structure/table,
+/obj/item/aicard,
+/obj/item/aiModule/reset,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bEY" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bEZ" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/stack/cable_coil,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bFa" = (
+/turf/open/floor/plating,
+/area/storage/tech)
+"bFb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bFc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bFd" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bFe" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Tech Storage";
+ req_access_txt = "23"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bFf" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/janitor,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bFg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bFh" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bFi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/janitor)
+"bFj" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bFk" = (
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bucket,
+/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{
+ pixel_x = 32
+ },
+/obj/structure/closet,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bFl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/janitor";
+ dir = 8;
+ name = "Custodial Closet APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFm" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortType = 6
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bFr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFs" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Custodial Maintenance";
+ req_access_txt = "26"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFt" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFu" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical{
+ name = "Operating Theatre";
+ req_access_txt = "45"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bFv" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bFw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bFx" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bFz" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/medical/sleeper)
+"bFA" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bFB" = (
+/obj/structure/closet/secure_closet/medical2,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"bFC" = (
+/obj/structure/table/wood/poker,
+/obj/item/clothing/mask/cigarette/cigar{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bFD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bFE" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/computer/security/telescreen/cmo{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bFF" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bFG" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bFH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light_switch{
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bFI" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bFJ" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bFK" = (
+/obj/structure/closet/wardrobe/pjs,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bFL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bFM" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bFN" = (
+/obj/structure/table,
+/obj/item/cartridge/medical{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/item/cartridge/medical{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/item/cartridge/medical,
+/obj/item/cartridge/chemistry{
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bFO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/cmo)
+"bFP" = (
+/obj/machinery/computer/card/minor/cmo{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bFQ" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bFR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bFS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bFT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bFU" = (
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bFV" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/obj/machinery/meter,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bFW" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bFX" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bFY" = (
+/obj/machinery/door/airlock/maintenance{
+ req_one_access_txt = "8;12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bFZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/science/mixing)
+"bGa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/maintenance/starboard)
+"bGb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/science/mixing)
+"bGc" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/mixing)
+"bGd" = (
+/obj/machinery/doppler_array/research/science{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bGe" = (
+/turf/closed/wall,
+/area/science/test_area)
+"bGf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating/airless,
+/area/science/test_area)
+"bGi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/quartermaster/miningdock)
+"bGj" = (
+/obj/machinery/computer/shuttle/mining{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bGk" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bGl" = (
+/obj/item/assembly/prox_sensor{
+ pixel_x = -4;
+ pixel_y = 1
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = 8;
+ pixel_y = 9
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = 9;
+ pixel_y = -2
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_y = 2
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bGm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bGn" = (
+/obj/structure/closet/secure_closet/miner,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bGo" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Firefighting equipment";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bGp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bGq" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bGr" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bGs" = (
+/obj/machinery/camera{
+ c_tag = "Secure Tech Storage"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/storage/tech)
+"bGt" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/AI,
+/turf/open/floor/plasteel,
+/area/storage/tech)
+"bGu" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/storage/tech)
+"bGv" = (
+/obj/structure/table,
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/obj/item/multitool,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bGw" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/rnd,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bGx" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/tcomms,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bGy" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/service,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bGz" = (
+/obj/structure/table/reinforced,
+/obj/item/wrench,
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/item/analyzer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bGA" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bGB" = (
+/obj/structure/table,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/machinery/requests_console{
+ department = "Janitorial";
+ departmentType = 1;
+ pixel_y = -29
+ },
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bGC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/research{
+ name = "Toxins Launch Room Access";
+ req_access_txt = "7"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bGD" = (
+/obj/structure/janitorialcart,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bGE" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/janitor)
+"bGF" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bGG" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bGH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bGL" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bGM" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bGN" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bGO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bGP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGQ" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGR" = (
+/obj/structure/table,
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/clothing/neck/stethoscope,
+/obj/item/gun/syringe/dart,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bGT" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/clothing/neck/stethoscope,
+/obj/machinery/vending/wallmed{
+ pixel_y = 28
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bGU" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/obj/machinery/button/door{
+ id = "medpriv4";
+ name = "Privacy Shutters";
+ pixel_y = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bGV" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bGW" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bGY" = (
+/obj/machinery/portable_atmospherics/scrubber/huge,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bGZ" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bHa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/heads/cmo)
+"bHb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bHc" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bHd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHe" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/storage";
+ dir = 8;
+ name = "Toxins Storage APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/camera{
+ c_tag = "Toxins Storage";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bHf" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bHg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"bHh" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bHk" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bHl" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bHm" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/research{
+ name = "Toxins Lab";
+ req_access_txt = "7"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bHn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/maintenance/aft)
+"bHo" = (
+/obj/structure/closet,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHq" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/science/mixing)
+"bHs" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bHt" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bHu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bHv" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bHw" = (
+/obj/item/target,
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bHy" = (
+/obj/structure/closet/crate,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bHz" = (
+/obj/item/stack/ore/iron,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bHA" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bHC" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bHD" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bHE" = (
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bHG" = (
+/obj/structure/rack,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/spawner/lootdrop/techstorage/command,
+/turf/open/floor/plasteel,
+/area/storage/tech)
+"bHH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHI" = (
+/obj/machinery/door/airlock/highsecurity{
+ name = "Secure Tech Storage";
+ req_access_txt = "19;23"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHK" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bHL" = (
+/obj/machinery/camera{
+ c_tag = "Research Division South";
+ dir = 8
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/white/side{
+ dir = 9
+ },
+/area/science/research)
+"bHM" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bHN" = (
+/obj/machinery/requests_console{
+ department = "Tech storage";
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHO" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/multitool,
+/obj/item/clothing/glasses/meson,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHP" = (
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bHQ" = (
+/obj/machinery/vending/assist,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bHR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/camera{
+ c_tag = "Aft Primary Hallway 2";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bHS" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bHT" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"bHU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHV" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/aft";
+ dir = 8;
+ name = "Aft Maintenance APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHW" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHX" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bIa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bIb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bIc" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/medical/sleeper)
+"bId" = (
+/obj/machinery/vending/wallmed{
+ pixel_y = -28
+ },
+/obj/machinery/camera{
+ c_tag = "Surgery Operating";
+ dir = 1;
+ network = list("ss13","medbay");
+ pixel_x = 22
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bIe" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bIf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/doorButtons/access_button{
+ idDoor = "virology_airlock_exterior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Button";
+ pixel_x = -24;
+ req_access_txt = "39"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/virology{
+ autoclose = 0;
+ frequency = 1449;
+ id_tag = "virology_airlock_exterior";
+ name = "Virology Exterior Airlock";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bIg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 13
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bIh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIi" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/o2{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/o2,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bIj" = (
+/obj/structure/table,
+/obj/machinery/light,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/hand_labeler,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bIk" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/fire{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/fire,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/machinery/door/window/northright{
+ name = "First-Aid Supplies";
+ red_alert_access = 1;
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bIl" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/toxin,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/machinery/door/window/northleft{
+ name = "First-Aid Supplies";
+ red_alert_access = 1;
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bIm" = (
+/obj/machinery/light,
+/obj/machinery/rnd/production/techfab/department/medical,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bIn" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/brute{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/brute,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"bIo" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bIp" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bIq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bIr" = (
+/obj/machinery/door/airlock/medical{
+ name = "Patient Room";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bIs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Xenobiology Maintenance";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bIt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIw" = (
+/obj/structure/closet/secure_closet/CMO,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/cmo)
+"bIx" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/science/xenobiology)
+"bIy" = (
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bIz" = (
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bIA" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bIB" = (
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bIC" = (
+/turf/open/floor/plasteel,
+/area/science/storage)
+"bID" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white/side{
+ dir = 5
+ },
+/area/science/research)
+"bIE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bIF" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bIG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bIH" = (
+/obj/machinery/pipedispenser/disposal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bII" = (
+/obj/item/storage/secure/safe{
+ pixel_x = 5;
+ pixel_y = 29
+ },
+/obj/machinery/camera{
+ c_tag = "Virology Break Room";
+ network = list("ss13","medbay")
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bIJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bIK" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bIL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bIM" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bIN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/xenobiology)
+"bIO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bIS" = (
+/obj/machinery/door/airlock/research{
+ name = "Toxins Launch Room";
+ req_access_txt = "7"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bIT" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/departments/xenobio{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"bIU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bIV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bIW" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bIX" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'BOMB RANGE";
+ name = "BOMB RANGE"
+ },
+/turf/closed/wall,
+/area/science/test_area)
+"bIY" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bIZ" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bJa" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bJb" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/mining/glass{
+ name = "Mining Dock";
+ req_access_txt = "48"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/miningdock)
+"bJd" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining/glass{
+ name = "Mining Dock";
+ req_access_txt = "48"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bJe" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJf" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/storage/tech)
+"bJh" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/RnD_secure,
+/turf/open/floor/plasteel,
+/area/storage/tech)
+"bJi" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall,
+/area/storage/tech)
+"bJj" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/analyzer,
+/obj/item/stock_parts/subspace/analyzer,
+/obj/item/stock_parts/subspace/analyzer,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bJk" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/medical,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bJl" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/engineering,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bJm" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/security,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bJn" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bJo" = (
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/science/research)
+"bJp" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bJq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/science/research)
+"bJs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJu" = (
+/obj/structure/light_construct{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction)
+"bJv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJx" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bJy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJz" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bJA" = (
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJB" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bJC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/medical/sleeper)
+"bJD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/medical/sleeper)
+"bJE" = (
+/turf/closed/wall/r_wall,
+/area/medical/medbay/central)
+"bJF" = (
+/obj/machinery/pipedispenser/disposal/transit_tube,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bJG" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bJH" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/shieldwallgen/xenobiologyaccess,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"bJI" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJJ" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJM" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJN" = (
+/turf/closed/wall,
+/area/science/xenobiology)
+"bJO" = (
+/obj/machinery/door/airlock/research{
+ name = "Testing Lab";
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bJP" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/science/storage)
+"bJT" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"bJU" = (
+/obj/machinery/vending/wardrobe/science_wardrobe,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bJV" = (
+/obj/structure/closet/l3closet/scientist{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bJW" = (
+/obj/item/transfer_valve{
+ pixel_x = -5
+ },
+/obj/item/transfer_valve{
+ pixel_x = -5
+ },
+/obj/item/transfer_valve,
+/obj/item/transfer_valve,
+/obj/item/transfer_valve{
+ pixel_x = 5
+ },
+/obj/item/transfer_valve{
+ pixel_x = 5
+ },
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bJX" = (
+/obj/item/assembly/signaler{
+ pixel_y = 8
+ },
+/obj/item/assembly/signaler{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/obj/item/assembly/signaler{
+ pixel_x = 6;
+ pixel_y = 5
+ },
+/obj/item/assembly/signaler{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bJY" = (
+/obj/structure/tank_dispenser,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bJZ" = (
+/obj/item/assembly/timer{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/assembly/timer{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/assembly/timer{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/obj/item/assembly/timer,
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bKa" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/mixing";
+ dir = 4;
+ name = "Toxins Lab APC";
+ pixel_x = 26
+ },
+/obj/structure/cable,
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bKb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bKc" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bKd" = (
+/obj/machinery/camera{
+ c_tag = "Toxins Launch Room Access";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bKe" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/mixing)
+"bKf" = (
+/obj/machinery/door/window/southleft{
+ name = "Mass Driver Door";
+ req_access_txt = "7"
+ },
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bKg" = (
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bKh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bKi" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bKj" = (
+/obj/machinery/camera{
+ c_tag = "Mining Dock External";
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bKk" = (
+/obj/item/stack/ore/silver,
+/obj/item/stack/ore/silver,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bKl" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bKm" = (
+/obj/structure/sign/warning/vacuum/external,
+/turf/closed/wall,
+/area/quartermaster/miningdock)
+"bKn" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/pickaxe{
+ pixel_x = 5
+ },
+/obj/item/shovel{
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bKo" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bKp" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bKq" = (
+/obj/machinery/mineral/equipment_vendor,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"bKr" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bKs" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bKt" = (
+/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,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bKu" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/amplifier,
+/obj/item/stock_parts/subspace/amplifier,
+/obj/item/stock_parts/subspace/amplifier,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bKv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bKw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/aft)
+"bKx" = (
+/obj/structure/closet/crate,
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bKy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/maintenance/aft)
+"bKz" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKA" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/construction)
+"bKB" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKC" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bKG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKI" = (
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 8;
+ sortType = 11
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKK" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/medical/medbay/central";
+ dir = 4;
+ name = "Medbay APC";
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKM" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bKN" = (
+/obj/machinery/door/airlock/medical{
+ name = "Apothecary";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bKO" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bKP" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westleft{
+ name = "Delivery Desk";
+ req_access_txt = "50"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bKQ" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/medical/medbay/central)
+"bKS" = (
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/cmo";
+ dir = 1;
+ name = "CM Office APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKU" = (
+/obj/machinery/door/airlock/engineering/abandoned{
+ name = "Construction Area";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bKV" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bKW" = (
+/obj/item/wrench,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bKX" = (
+/obj/machinery/button/door{
+ id = "misclab";
+ name = "Test Chamber Blast Doors";
+ pixel_y = -2;
+ req_access_txt = "55"
+ },
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bKY" = (
+/obj/machinery/computer/security/telescreen{
+ name = "Test Chamber Monitor";
+ network = list("xeno");
+ pixel_y = 2
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bKZ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bLb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bLc" = (
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
+/obj/structure/table,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bLd" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/machinery/doorButtons/access_button{
+ idDoor = "virology_airlock_interior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Button";
+ pixel_x = 8;
+ pixel_y = -28;
+ req_access_txt = "39"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bLe" = (
+/obj/structure/sign/warning/biohazard,
+/turf/closed/wall,
+/area/science/xenobiology)
+"bLf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bLg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLh" = (
+/obj/structure/sign/warning/fire,
+/turf/closed/wall,
+/area/science/research)
+"bLi" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bLj" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLk" = (
+/obj/machinery/mass_driver{
+ dir = 4;
+ id = "toxinsdriver"
+ },
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLl" = (
+/obj/machinery/door/poddoor{
+ id = "toxinsdriver";
+ name = "toxins launcher bay door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLm" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLn" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bLo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bLp" = (
+/obj/item/beacon,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bLq" = (
+/turf/closed/indestructible{
+ desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease";
+ icon_state = "riveted";
+ name = "hyper-reinforced wall"
+ },
+/area/science/test_area)
+"bLr" = (
+/obj/item/target/alien/anchored,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/camera/preset/toxins{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bLu" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLx" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/transmitter,
+/obj/item/stock_parts/subspace/transmitter,
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/treatment,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bLy" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/ansible,
+/obj/item/stock_parts/subspace/ansible,
+/obj/item/stock_parts/subspace/ansible,
+/obj/item/stock_parts/subspace/crystal,
+/obj/item/stock_parts/subspace/crystal,
+/obj/item/stock_parts/subspace/crystal,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bLz" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/storage/tech)
+"bLA" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/t_scanner,
+/obj/item/multitool,
+/obj/machinery/camera{
+ c_tag = "Tech Storage";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"bLB" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bLD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/storage/tech)
+"bLE" = (
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"bLF" = (
+/obj/structure/filingcabinet/filingcabinet,
+/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/sorting";
+ name = "Delivery Office APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bLG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"bLH" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bLI" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bLJ" = (
+/obj/machinery/computer/atmos_control,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bLK" = (
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bLL" = (
+/obj/machinery/computer/station_alert,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bLM" = (
+/obj/machinery/computer/atmos_alert,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bLN" = (
+/obj/machinery/vending/wardrobe/atmos_wardrobe,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bLO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/maintenance{
+ name = "Atmospherics Maintenance";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bLP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bLQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bLR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bLS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bLT" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bLU" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/chem_dispenser,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bLV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/chem_heater,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bLW" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bLX" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bLY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bLZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bMa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bMb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMc" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Medbay Maintenance";
+ req_access_txt = "5"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMf" = (
+/obj/structure/table,
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/obj/item/stack/cable_coil,
+/obj/item/multitool,
+/obj/item/stock_parts/cell/high/plus,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bMg" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/xenobiology";
+ dir = 8;
+ name = "Xenobiology APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bMh" = (
+/obj/structure/chair/stool,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bMi" = (
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bMj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bMk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bMl" = (
+/obj/machinery/processor/slime,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bMm" = (
+/obj/machinery/monkey_recycler,
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bMn" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder{
+ desc = "Used to grind things up into raw materials and liquids.";
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bMo" = (
+/obj/machinery/smartfridge/extract/preloaded,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bMp" = (
+/obj/structure/closet/l3closet/scientist,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/item/extinguisher,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bMq" = (
+/obj/structure/closet/l3closet/scientist,
+/obj/item/extinguisher,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bMr" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"bMs" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/research)
+"bMt" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bMu" = (
+/obj/machinery/door/poddoor/incinerator_toxmix,
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bMv" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/mixing)
+"bMw" = (
+/obj/machinery/sparker/toxmix{
+ pixel_x = 25
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{
+ dir = 4
+ },
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bMx" = (
+/obj/machinery/airlock_sensor/incinerator_toxmix{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bMy" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "mix to port"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bMz" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bMA" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bMB" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bMC" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bMD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bME" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bMG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bMH" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bMI" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bMJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bMK" = (
+/turf/closed/wall,
+/area/engine/atmos)
+"bML" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=4";
+ dir = 4;
+ freq = 1400;
+ location = "Atmospherics"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Atmospherics Desk";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMM" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMN" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMP" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bMR" = (
+/obj/machinery/pipedispenser,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMS" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics North East"
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Distro to Waste"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/meter/atmos/atmos_waste_loop,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMU" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMV" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible,
+/obj/machinery/meter/atmos/distro_loop,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMW" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMX" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Air to Distro"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bMY" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bMZ" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bNd" = (
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bNe" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bNf" = (
+/obj/structure/sign/warning/biohazard,
+/turf/closed/wall,
+/area/medical/virology)
+"bNg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bNh" = (
+/obj/machinery/computer/pandemic,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bNi" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bNj" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology/glass{
+ name = "Isolation A";
+ req_access_txt = "39"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bNk" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bNl" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology/glass{
+ name = "Isolation B";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bNm" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bNn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bNo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bNp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bNq" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bNr" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Xenobiology Lab";
+ req_access_txt = "55"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bNs" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bNt" = (
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bNu" = (
+/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bNv" = (
+/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bNw" = (
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bNx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bNy" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bNz" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/camera{
+ c_tag = "Toxins Lab East";
+ dir = 8;
+ network = list("ss13","rd");
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bNA" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bNB" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bNC" = (
+/obj/structure/closet/wardrobe/grey,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bND" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bNE" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bNF" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bNG" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/test_area)
+"bNH" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom{
+ pixel_y = -26
+ },
+/obj/item/paper_bin{
+ pixel_x = -3
+ },
+/obj/item/pen{
+ pixel_x = -3
+ },
+/obj/item/folder/yellow{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"bNI" = (
+/turf/closed/wall,
+/area/construction)
+"bNJ" = (
+/turf/open/floor/plating,
+/area/construction)
+"bNK" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Office";
+ req_access_txt = "50"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bNN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bNO" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bNP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNR" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Atmospherics Monitoring"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/checker,
+/area/engine/atmos)
+"bNS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNT" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics North West";
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNU" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/medical/virology)
+"bNV" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bNX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bNY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bNZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bOb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOc" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Mix to Distro"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOd" = (
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOe" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOf" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bOg" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Mix to Incinerator"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOh" = (
+/obj/structure/grille,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bOj" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bOk" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bOl" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/announcement_system,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bOm" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOn" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOo" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Telecomms)";
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bOp" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/camera{
+ c_tag = "Virology Airlock";
+ network = list("ss13","medbay")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOr" = (
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOs" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOt" = (
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOu" = (
+/obj/structure/rack,
+/obj/item/clothing/mask/gas{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bOv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bOw" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bOx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bOy" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bOz" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bOA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/twohanded/required/kirbyplants,
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/science/research)
+"bOB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/science/misc_lab)
+"bOC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bOD" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bOE" = (
+/obj/machinery/sparker/toxmix{
+ pixel_x = 25
+ },
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{
+ dir = 4
+ },
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bOF" = (
+/obj/structure/sign/warning/fire{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bOG" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "port to mix"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bOH" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/machinery/button/door/incinerator_vent_toxmix{
+ pixel_x = -25;
+ pixel_y = 5
+ },
+/obj/machinery/button/ignition/incinerator/toxmix{
+ pixel_x = -25;
+ pixel_y = -5
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"bOI" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"bOJ" = (
+/obj/item/target,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/science/test_area)
+"bOK" = (
+/obj/structure/barricade/wooden,
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bOL" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"bOM" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bON" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kanyewest";
+ name = "privacy shutters"
+ },
+/turf/open/floor/plating,
+/area/security/detectives_office)
+"bOO" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/engineering";
+ dir = 8;
+ name = "Engineering Security APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bOP" = (
+/obj/structure/table/glass,
+/obj/structure/reagent_dispensers/virusfood{
+ pixel_x = -30
+ },
+/obj/item/book/manual/wiki/infections{
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/syringe/antiviral,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bOQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/beacon,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOR" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/structure/tank_dispenser,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOT" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bOU" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOW" = (
+/obj/machinery/requests_console{
+ department = "Atmospherics";
+ departmentType = 4;
+ name = "Atmos RC";
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/computer/atmos_control{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/corner,
+/area/engine/atmos)
+"bOX" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bOY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/engine/atmos)
+"bOZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bPb" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research/glass{
+ name = "Circuitry Lab";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bPc" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Mix to Waste"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPe" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPf" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPg" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPh" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bPi" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bPj" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bPk" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics Waste Tank"
+ },
+/turf/open/floor/engine/vacuum,
+/area/engine/atmos)
+"bPl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{
+ dir = 8
+ },
+/turf/open/floor/engine/vacuum,
+/area/engine/atmos)
+"bPm" = (
+/turf/open/floor/engine/vacuum,
+/area/engine/atmos)
+"bPn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bPo" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bPp" = (
+/obj/machinery/iv_drip,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bPq" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bPr" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/l3closet,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bPs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/misc_lab)
+"bPt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bPu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bPw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bPx" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = -32
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPz" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 7
+ },
+/obj/item/storage/box/syringes{
+ pixel_y = 5
+ },
+/obj/item/storage/box/monkeycubes{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/storage/box/monkeycubes,
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPA" = (
+/obj/machinery/computer/camera_advanced/xenobio{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/portable_atmospherics/canister/bz,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"bPG" = (
+/obj/machinery/chem_master,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPH" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/slime_scanner,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/clothing/glasses/science,
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPI" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPJ" = (
+/obj/structure/table/glass,
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/beaker/large{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/dropper,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bPK" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/misc_lab)
+"bPL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bPM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"bPN" = (
+/turf/closed/wall,
+/area/science/misc_lab)
+"bPO" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bPP" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bPQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bPU" = (
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPV" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Maint Bar Access";
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden{
+ name = "wooden barricade (CLOSED)"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPW" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPX" = (
+/obj/structure/closet/emcloset,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPY" = (
+/obj/structure/girder,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPZ" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bQa" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bQb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bQc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plating,
+/area/construction)
+"bQd" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/obj/item/pen/blue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bQe" = (
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/machinery/button/door{
+ desc = "A remote control-switch for the engineering security doors.";
+ id = "Engineering";
+ name = "Engineering Lockdown";
+ pixel_x = -24;
+ pixel_y = -6;
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/radio/off,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light_switch{
+ pixel_x = -27;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bQf" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bQg" = (
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bQh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/landmark/start/atmospheric_technician,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQi" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Atmospherics Desk";
+ req_access_txt = "24"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQl" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/computer/atmos_alert{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark/corner,
+/area/engine/atmos)
+"bQm" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bQo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQq" = (
+/obj/machinery/camera{
+ c_tag = "Security Post - Engineering";
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bQr" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQs" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Air to Waste"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQt" = (
+/obj/item/crowbar,
+/obj/item/wrench,
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/corner,
+/area/hallway/primary/aft)
+"bQu" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQv" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQw" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQx" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Mix to Distro"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQy" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bQz" = (
+/obj/machinery/computer/atmos_control/tank/mix_tank{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bQA" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating/airless,
+/area/engine/atmos)
+"bQB" = (
+/obj/machinery/air_sensor/atmos/mix_tank,
+/turf/open/floor/engine/vacuum,
+/area/engine/atmos)
+"bQC" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/engine/vacuum,
+/area/engine/atmos)
+"bQD" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bQE" = (
+/obj/structure/table,
+/obj/item/storage/box/donkpockets{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/machinery/newscaster{
+ pixel_x = -30
+ },
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/stack/sheet/mineral/plasma,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bQF" = (
+/obj/machinery/vending/wardrobe/viro_wardrobe,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bQG" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/circuit)
+"bQH" = (
+/obj/structure/closet/l3closet,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bQI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bQJ" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bQK" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Control Room";
+ req_access_txt = "19; 61"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bQM" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bQN" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Xenobiology North";
+ dir = 8;
+ network = list("ss13","rd")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bQO" = (
+/obj/structure/closet/bombcloset,
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bQP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bQQ" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bQR" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/storage/toolbox/mechanical,
+/obj/item/clothing/ears/earmuffs,
+/obj/machinery/camera{
+ c_tag = "Testing Lab North";
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bQS" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bQT" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQU" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQV" = (
+/obj/machinery/atmospherics/components/trinary/filter{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQW" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQY" = (
+/obj/structure/table/reinforced,
+/obj/item/integrated_circuit_printer,
+/obj/machinery/computer/security/telescreen/circuitry{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bQZ" = (
+/turf/closed/wall/r_wall,
+/area/science/misc_lab)
+"bRa" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/stack/sheet/metal/ten,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bRg" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bRh" = (
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bRi" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bRj" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bRk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bRl" = (
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bRm" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bRn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/construction)
+"bRo" = (
+/obj/machinery/computer/secure_data{
+ dir = 8
+ },
+/obj/machinery/computer/security/telescreen/engine{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bRp" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bRr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRs" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bRt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRu" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/computer/atmos_alert{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark/corner,
+/area/engine/atmos)
+"bRv" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/atmospheric_technician,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRw" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRx" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bRy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Distribution Loop";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRD" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRE" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRF" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRG" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRI" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bRJ" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Unfiltered & Air to Mix"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRL" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{
+ dir = 8
+ },
+/turf/open/floor/engine/vacuum,
+/area/engine/atmos)
+"bRM" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/obj/machinery/reagentgrinder,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bRN" = (
+/turf/closed/wall,
+/area/medical/virology)
+"bRO" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bRP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/virology{
+ autoclose = 0;
+ frequency = 1449;
+ id_tag = "virology_airlock_interior";
+ name = "Virology Interior Airlock";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bRQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bRR" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology/glass{
+ name = "Monkey Pen";
+ req_access_txt = "39"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bRS" = (
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/depsec/engineering,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bRT" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/structure/disposaloutlet,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bRU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bRV" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bRW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bRY" = (
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "xenobio8";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bRZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bSa" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio8";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bSb" = (
+/obj/structure/closet/l3closet/scientist{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bSc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bSd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bSe" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/electropack,
+/obj/item/healthanalyzer,
+/obj/item/assembly/signaler,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bSf" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bSg" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSh" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSi" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSj" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSk" = (
+/obj/effect/landmark/start/scientist,
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bSl" = (
+/turf/closed/wall/r_wall,
+/area/science/circuit)
+"bSm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"bSn" = (
+/obj/effect/spawner/lootdrop/crate_spawner,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSo" = (
+/obj/effect/spawner/lootdrop/grille_or_trash,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSp" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSq" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSs" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSt" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/camera{
+ c_tag = "Telecomms Monitoring";
+ dir = 8;
+ network = list("tcomms")
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bSv" = (
+/obj/machinery/camera{
+ c_tag = "Construction Area";
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bSw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bSx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction)
+"bSy" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"bSz" = (
+/obj/structure/table,
+/turf/open/floor/plating,
+/area/construction)
+"bSA" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bSB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bSC" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bSD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/engine/atmos)
+"bSE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/engine/atmos)
+"bSF" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bSI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bSJ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bSK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bSM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bSN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bSQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bSR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bSS" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology{
+ name = "Break Room";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bST" = (
+/obj/machinery/doorButtons/airlock_controller{
+ idExterior = "virology_airlock_exterior";
+ idInterior = "virology_airlock_interior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Console";
+ pixel_x = 8;
+ pixel_y = 22;
+ req_access_txt = "39"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -4;
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bSU" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bSV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/firealarm{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bSW" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bSX" = (
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/medical/virology";
+ dir = 1;
+ name = "Virology APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Virology Module";
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bSY" = (
+/obj/machinery/vending/medical,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bTf" = (
+/obj/structure/rack,
+/obj/item/wrench,
+/obj/item/crowbar,
+/obj/machinery/computer/security/telescreen{
+ name = "Test Chamber Monitor";
+ network = list("test");
+ pixel_y = -30
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bTg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bTh" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bTi" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bTj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/checkpoint/engineering)
+"bTk" = (
+/obj/machinery/atmospherics/components/binary/valve,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTl" = (
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTm" = (
+/obj/machinery/atmospherics/components/trinary/mixer/flipped{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTn" = (
+/obj/structure/table,
+/obj/item/assembly/igniter{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 5;
+ pixel_y = -4
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 2;
+ pixel_y = 6
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 2;
+ pixel_y = -1
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTo" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bTp" = (
+/obj/structure/table/reinforced,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bTr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bTz" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bTB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bTC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bTD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTF" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTG" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bTH" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bTI" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bTJ" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/aft";
+ dir = 8;
+ name = "Aft Hall APC";
+ pixel_x = -25;
+ pixel_y = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bTK" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bTL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTP" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTQ" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Waste to Filter"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTR" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Filter to Waste"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTS" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTU" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTV" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "N2O Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/cafeteria,
+/area/engine/atmos)
+"bTW" = (
+/turf/open/floor/engine/n2o,
+/area/engine/atmos)
+"bTX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{
+ dir = 8
+ },
+/turf/open/floor/engine/n2o,
+/area/engine/atmos)
+"bTY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bTZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bUa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/medical/virology)
+"bUb" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bUc" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Telecomms Admin";
+ departmentType = 5;
+ name = "Telecomms RC";
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bUd" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio3";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bUe" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bUg" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bUh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio8";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bUi" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bUj" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bUk" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bUl" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bUm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bUn" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bUo" = (
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bUp" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bUq" = (
+/obj/machinery/vending/assist,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bUs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUt" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUx" = (
+/obj/structure/disposalpipe/junction/yjunction{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bUz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUB" = (
+/obj/machinery/power/apc{
+ areastring = "/area/tcommsat/computer";
+ name = "Telecomms Monitoring APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/tcommsat/computer)
+"bUD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUE" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bUF" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bUG" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bUH" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bUI" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/oil{
+ icon_state = "floor5"
+ },
+/turf/open/floor/plasteel/dark/corner,
+/area/engine/atmos)
+"bUJ" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bUK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bUL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bUM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bUN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bUO" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/visible,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bUP" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/engine/atmos)
+"bUQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bUS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Mix to External"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bUT" = (
+/obj/machinery/computer/atmos_control/tank/nitrous_tank{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/white/corner,
+/area/engine/atmos)
+"bUU" = (
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/miner/n2o,
+/turf/open/floor/engine/n2o,
+/area/engine/atmos)
+"bUV" = (
+/obj/machinery/air_sensor/atmos/nitrous_tank,
+/turf/open/floor/engine/n2o,
+/area/engine/atmos)
+"bUW" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/engine/n2o,
+/area/engine/atmos)
+"bUY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bUZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bVa" = (
+/obj/machinery/smartfridge/chemistry/virology/preloaded,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bVb" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bVc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bVd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bVe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bVf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bVg" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bVh" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bVi" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall,
+/area/science/xenobiology)
+"bVj" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bVk" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bVl" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bVm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bVn" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bVo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/break_room)
+"bVp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bVq" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bVr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bVs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"bVt" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/target_stake,
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"bVx" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/port/aft)
+"bVy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVC" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVD" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVE" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVF" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVG" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVI" = (
+/turf/closed/wall/r_wall,
+/area/tcommsat/server)
+"bVJ" = (
+/turf/closed/wall/r_wall,
+/area/tcommsat/computer)
+"bVK" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bVM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVN" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics Access";
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bVO" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bVP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bVQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bVR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/suit_storage_unit/atmos,
+/turf/open/floor/plasteel/dark/corner,
+/area/engine/atmos)
+"bVS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall,
+/area/engine/atmos)
+"bVT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bVU" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bVV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bVW" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Air to External"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bVX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/atmos,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bVY" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "External to Filter"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bVZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bWa" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bWc" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/engine/atmos)
+"bWd" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{
+ dir = 8
+ },
+/turf/open/floor/engine/n2o,
+/area/engine/atmos)
+"bWe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bWf" = (
+/obj/structure/table/glass,
+/obj/item/clothing/gloves/color/latex,
+/obj/machinery/requests_console{
+ department = "Virology";
+ name = "Virology Requests Console";
+ pixel_x = -32
+ },
+/obj/item/healthanalyzer,
+/obj/item/clothing/glasses/hud/health,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bWg" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/radio/headset/headset_med,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bWh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bWi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bWj" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bWl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bWm" = (
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "xenobio7";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bWn" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bWo" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bWp" = (
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bWq" = (
+/obj/machinery/atmospherics/components/binary/pump,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bWr" = (
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bWs" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bWt" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bWu" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Telecommunications";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bWv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bWw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWx" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWy" = (
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"bWz" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWA" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general,
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWB" = (
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"bWC" = (
+/obj/machinery/telecomms/bus/preset_four,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWD" = (
+/obj/machinery/telecomms/server/presets/engineering,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWE" = (
+/obj/machinery/telecomms/processor/preset_three,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWF" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/tcommsat/server";
+ dir = 1;
+ name = "Telecomms Server APC";
+ pixel_y = 25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"bWG" = (
+/obj/machinery/telecomms/server/presets/security,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWH" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bWI" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bWJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bWK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bWL" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bWM" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bWN" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bWO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bWP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/closed/wall,
+/area/engine/atmos)
+"bWQ" = (
+/turf/closed/wall/r_wall,
+/area/security/checkpoint/engineering)
+"bWR" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/camera{
+ c_tag = "Atmospherics Central";
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bWT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bWU" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Mix to Engine"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bWV" = (
+/obj/machinery/door/airlock/external{
+ name = "Atmospherics External Airlock";
+ req_access_txt = "24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bWW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bWX" = (
+/obj/structure/table/glass,
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/storage/box/syringes,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bWY" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/item/pen/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bWZ" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/virologist,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bXa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bXb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bXc" = (
+/obj/structure/table,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bXd" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bXh" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bXi" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/folder/white,
+/obj/item/pen,
+/obj/item/taperecorder,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bXj" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/button/ignition{
+ id = "testigniter";
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/machinery/button/door{
+ id = "testlab";
+ name = "Test Chamber Blast Doors";
+ pixel_x = 4;
+ pixel_y = 2;
+ req_access_txt = "55"
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bXk" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=AIE";
+ location = "AftH"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bXl" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bXm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bXn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bXo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bXp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bXq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Engineering";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bXr" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bXs" = (
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bXt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"bXv" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bXw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"bXx" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"bXy" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"bXz" = (
+/obj/machinery/telecomms/processor/preset_four,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXA" = (
+/obj/machinery/telecomms/server/presets/common,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXB" = (
+/obj/machinery/telecomms/bus/preset_three,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"bXD" = (
+/obj/machinery/telecomms/server/presets/command,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXE" = (
+/obj/machinery/computer/message_monitor{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bXF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bXG" = (
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bXH" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bXI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bXJ" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/machinery/light/small,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bXK" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"bXL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/engine/atmos)
+"bXM" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bXN" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bXO" = (
+/obj/structure/filingcabinet,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bXP" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/structure/closet/secure_closet/security/engine,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"bXQ" = (
+/obj/structure/fireaxecabinet{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bXR" = (
+/obj/machinery/power/floodlight,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bXS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bXT" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bXU" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bXV" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics East";
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Plasma Outlet Pump"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bXW" = (
+/turf/open/floor/engine/plasma,
+/area/engine/atmos)
+"bXX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{
+ dir = 8
+ },
+/turf/open/floor/engine/plasma,
+/area/engine/atmos)
+"bXY" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/engine/plasma,
+/area/engine/atmos)
+"bXZ" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bYa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bYb" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bYc" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = -32
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bYd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bYe" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bYf" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio2";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bYg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bYh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bYi" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bYj" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bYk" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bYl" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bYm" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bYn" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bYo" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/science/misc_lab)
+"bYp" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bYq" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bYr" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bYs" = (
+/obj/structure/closet/crate,
+/obj/item/clothing/under/color/lightpurple,
+/obj/item/stack/spacecash/c200,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bYt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bYu" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bYv" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Space"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"bYw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"bYx" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
+"bYy" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Incinerator Access";
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden{
+ name = "wooden barricade (CLOSED)"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bYz" = (
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYA" = (
+/obj/machinery/telecomms/broadcaster/preset_right,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYB" = (
+/obj/machinery/blackbox_recorder,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYC" = (
+/obj/machinery/telecomms/receiver/preset_right,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYD" = (
+/obj/machinery/computer/telecomms/server{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bYE" = (
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bYF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"bYG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/structure/sign/departments/engineering{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bYH" = (
+/turf/closed/wall,
+/area/engine/break_room)
+"bYI" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bYJ" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/atmos)
+"bYK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bYL" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bYM" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bYN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bYO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bYP" = (
+/obj/effect/landmark/event_spawn,
+/turf/closed/wall,
+/area/crew_quarters/bar)
+"bYT" = (
+/obj/machinery/computer/atmos_control/tank/toxin_tank{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bYU" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
+/turf/open/floor/engine/plasma,
+/area/engine/atmos)
+"bYV" = (
+/obj/machinery/air_sensor/atmos/toxin_tank,
+/turf/open/floor/engine/plasma,
+/area/engine/atmos)
+"bYW" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/engine/plasma,
+/area/engine/atmos)
+"bYX" = (
+/obj/structure/closet/l3closet/virology,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bYY" = (
+/obj/structure/closet/secure_closet/medical1,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
+"bYZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bZa" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/machinery/camera{
+ c_tag = "Xenobiology South";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bZb" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"bZc" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bZd" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/disposalpipe/junction/flip,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"bZe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/break_room)
+"bZg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZh" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"bZi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bZj" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZk" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZl" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Port"
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZn" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"bZo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"bZp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"bZq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bZr" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall,
+/area/tcommsat/computer)
+"bZs" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bZt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZu" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Foyer";
+ dir = 1
+ },
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -27
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bZw" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZx" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bZy" = (
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZz" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/book/manual/wiki/engineering_hacking{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/book/manual/wiki/engineering_construction,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZA" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZB" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/chief)
+"bZD" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/chief)
+"bZE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"bZF" = (
+/obj/machinery/power/apc{
+ areastring = "/area/engine/atmos";
+ dir = 8;
+ name = "Atmospherics APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bZG" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bZH" = (
+/obj/machinery/portable_atmospherics/canister,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bZI" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bZK" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bZL" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{
+ dir = 8
+ },
+/turf/open/floor/engine/plasma,
+/area/engine/atmos)
+"bZM" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/aft)
+"bZN" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZO" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZP" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/medical/virology)
+"bZQ" = (
+/obj/machinery/atmospherics/components/binary/valve/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZR" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/item/wrench,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZS" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZT" = (
+/obj/structure/rack,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZU" = (
+/obj/structure/closet/emcloset,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bZW" = (
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio6";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"bZX" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bZY" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bZZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/misc_lab)
+"caa" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"cac" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cad" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cae" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"caf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/port/aft)
+"cag" = (
+/obj/machinery/ntnet_relay,
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"cah" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"cai" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"cak" = (
+/obj/machinery/telecomms/hub/preset,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cal" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"can" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cao" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cap" = (
+/obj/machinery/light,
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"caq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"car" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"cas" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cat" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cau" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"cav" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"caw" = (
+/obj/structure/table,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cax" = (
+/obj/structure/closet/wardrobe/black,
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cay" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"caz" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"caA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/engineering)
+"caC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"caD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/security/checkpoint/engineering)
+"caE" = (
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"caF" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"caG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/requests_console{
+ department = "Atmospherics";
+ departmentType = 4;
+ name = "Atmos RC";
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"caH" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/oil{
+ icon_state = "floor6"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"caI" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caK" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caO" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caP" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caQ" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caR" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caX" = (
+/obj/machinery/sparker{
+ id = "testigniter";
+ pixel_x = -25
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"caY" = (
+/obj/item/beacon,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"caZ" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cba" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbd" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/misc_lab";
+ dir = 4;
+ name = "Testing Lab APC";
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"cbe" = (
+/obj/structure/table/reinforced,
+/obj/item/integrated_electronics/analyzer,
+/obj/item/integrated_electronics/debugger,
+/obj/item/integrated_electronics/wirer,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"cbf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cbg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"cbh" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/folder/white,
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cbi" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cbj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/port/aft)
+"cbk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Mix to Space"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/port/aft)
+"cbl" = (
+/obj/machinery/camera{
+ c_tag = "Telecomms Server Room";
+ dir = 4;
+ network = list("tcomms")
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cbm" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"cbn" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM"
+ },
+/turf/closed/wall,
+/area/tcommsat/computer)
+"cbo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"cbp" = (
+/obj/structure/closet/secure_closet/engineering_chief,
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/crew_quarters/heads/chief";
+ dir = 4;
+ name = "CE Office APC";
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cbq" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/mob/living/simple_animal/parrot/Poly,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cbr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"cbs" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/engine/engineering)
+"cbt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/camera{
+ c_tag = "Aft Primary Hallway 1";
+ dir = 8;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"cbu" = (
+/obj/machinery/power/apc{
+ areastring = "/area/engine/break_room";
+ dir = 8;
+ name = "Engineering Foyer APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cbv" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Research Delivery access";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cbw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cbx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortType = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cby" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cbA" = (
+/obj/machinery/portable_atmospherics/pump,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cbB" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Air Outlet Pump"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cbC" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cbD" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cbE" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cbF" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cbG" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "CO2 Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cbH" = (
+/turf/open/floor/engine/co2,
+/area/engine/atmos)
+"cbI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{
+ dir = 8
+ },
+/turf/open/floor/engine/co2,
+/area/engine/atmos)
+"cbJ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/aft)
+"cbL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbM" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbN" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbO" = (
+/obj/machinery/door/airlock/atmos/abandoned{
+ name = "Atmospherics Maintenance";
+ req_access_txt = "12;24"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbR" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio1";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cbS" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cbU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cbV" = (
+/obj/machinery/camera{
+ c_tag = "Testing Chamber";
+ dir = 1;
+ network = list("test","rd")
+ },
+/obj/machinery/light,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"cbY" = (
+/obj/structure/table/reinforced,
+/obj/item/multitool,
+/obj/item/screwdriver,
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"cbZ" = (
+/obj/structure/table/reinforced,
+/obj/item/integrated_circuit_printer,
+/obj/machinery/computer/security/telescreen/circuitry{
+ dir = 1;
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"cca" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/solar{
+ id = "portsolar";
+ name = "Port Solar Array"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"ccb" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/solar{
+ id = "portsolar";
+ name = "Port Solar Array"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"ccc" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ccd" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cce" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Construction Area Maintenance";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ccf" = (
+/obj/machinery/telecomms/broadcaster/preset_left,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"ccg" = (
+/obj/machinery/telecomms/message_server,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cch" = (
+/obj/machinery/telecomms/receiver/preset_left,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cci" = (
+/obj/structure/table,
+/obj/item/multitool,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"ccj" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cck" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"ccl" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"ccm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ccn" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Access"
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cco" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ccp" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cct" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccv" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ccw" = (
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"ccy" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ccz" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ccA" = (
+/obj/machinery/computer/atmos_control/tank/carbon_tank{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ccB" = (
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
+/turf/open/floor/engine/co2,
+/area/engine/atmos)
+"ccC" = (
+/obj/machinery/air_sensor/atmos/carbon_tank,
+/turf/open/floor/engine/co2,
+/area/engine/atmos)
+"ccD" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/engine/co2,
+/area/engine/atmos)
+"ccE" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 28
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccF" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccG" = (
+/obj/structure/chair/stool,
+/obj/effect/decal/cleanable/cobweb{
+ icon_state = "cobweb2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccM" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccO" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"ccR" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"ccT" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"ccU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"ccV" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccW" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ccZ" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cda" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdb" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdc" = (
+/obj/machinery/telecomms/bus/preset_two,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cdd" = (
+/obj/machinery/telecomms/server/presets/supply,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cde" = (
+/obj/machinery/telecomms/processor/preset_one,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cdf" = (
+/obj/machinery/telecomms/server/presets/medical,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cdg" = (
+/obj/machinery/computer/telecomms/monitor{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"cdh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdk" = (
+/obj/machinery/computer/atmos_alert,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cdl" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/carpet,
+/area/chapel/main)
+"cdm" = (
+/obj/structure/table/reinforced,
+/obj/item/clipboard,
+/obj/item/paper/monitorkey,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"cdn" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cdo" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cdp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cdq" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdr" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cds" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard/aft";
+ dir = 8;
+ name = "Starboard Quarter Maintenance APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/camera{
+ c_tag = "Aft Starboard Solar Access";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cdu" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdw" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cdx" = (
+/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/engine/atmos)
+"cdB" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cdC" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cdD" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{
+ dir = 8
+ },
+/turf/open/floor/engine/co2,
+/area/engine/atmos)
+"cdE" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdF" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdH" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdI" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdO" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdQ" = (
+/obj/structure/closet/emcloset,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdR" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdS" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"cdT" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cdU" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/chief_engineer,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"cdV" = (
+/obj/structure/table,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdW" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port/aft";
+ dir = 8;
+ name = "Port Quarter Maintenance APC";
+ pixel_x = -25;
+ pixel_y = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdX" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"cdZ" = (
+/obj/machinery/telecomms/processor/preset_two,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cea" = (
+/obj/machinery/telecomms/server/presets/service,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"ceb" = (
+/obj/machinery/telecomms/bus/preset_one,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cec" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"ced" = (
+/obj/machinery/telecomms/server/presets/science,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cee" = (
+/obj/structure/table,
+/obj/item/radio/off,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"cef" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"ceg" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/light,
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"ceh" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/bridge)
+"cei" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"cej" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cek" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/sign/warning/enginesafety{
+ pixel_x = 32
+ },
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cel" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cem" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cen" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ceo" = (
+/obj/machinery/keycard_auth{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"cep" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"ceq" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/chief)
+"cer" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"ces" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cet" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cev" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cew" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cex" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics South West";
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cey" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"cez" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ceA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"ceB" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ceC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceE" = (
+/obj/structure/sign/warning/fire{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceF" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/aft)
+"ceI" = (
+/obj/structure/sign/warning/biohazard,
+/turf/closed/wall,
+/area/maintenance/aft)
+"ceJ" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall,
+/area/maintenance/aft)
+"ceK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/closet/l3closet,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceL" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceM" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceN" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceO" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceP" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"ceQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"ceR" = (
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceS" = (
+/obj/item/stack/sheet/cardboard,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceT" = (
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceU" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceV" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ceW" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ceX" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"ceY" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ceZ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Power Storage";
+ req_access_txt = "11"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfa" = (
+/obj/structure/rack,
+/obj/item/storage/belt/utility,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/weldingtool/largetank,
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfb" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/chief)
+"cfc" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/chief)
+"cfd" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/radiation,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfe" = (
+/obj/structure/sign/warning/radiation/rad_area{
+ pixel_x = -32
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cfg" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"cfi" = (
+/obj/machinery/portable_atmospherics/scrubber/huge,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cfj" = (
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
+"cfk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/airlock/atmos{
+ name = "Turbine Access";
+ req_access_txt = "32"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cfl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
+"cfm" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/item/toy/minimeteor,
+/obj/item/poster/random_contraband,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfn" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/reagent_containers/food/snacks/donkpocket,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfo" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/roller,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/c_tube,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfq" = (
+/obj/structure/mopbucket,
+/obj/item/caution,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ external_pressure_bound = 140;
+ name = "killroom vent";
+ pressure_checks = 0
+ },
+/obj/machinery/camera{
+ c_tag = "Xenobiology Kill Room";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/circuit/telecomms,
+/area/science/xenobiology)
+"cfs" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Air Supply Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cft" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Testing Lab Maintenance";
+ req_access_txt = "47"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cfu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/science/misc_lab)
+"cfv" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Firefighting equipment";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cfw" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/port/aft)
+"cfx" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating/airless,
+/area/maintenance/solars/port/aft)
+"cfy" = (
+/obj/structure/rack,
+/obj/item/clothing/shoes/winterboots,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cfz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfB" = (
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/clothing/under/misc/overalls,
+/obj/item/clothing/under/misc/overalls,
+/obj/item/radio/headset/headset_eng,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Engineering Maintenance";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cfF" = (
+/obj/machinery/suit_storage_unit/ce,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/chief)
+"cfG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfH" = (
+/obj/machinery/button/door{
+ id = "ceprivacy";
+ name = "Privacy Shutters Control";
+ pixel_y = 26
+ },
+/obj/machinery/holopad,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cfI" = (
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/clothing/under/misc/overalls,
+/obj/item/clothing/under/misc/overalls,
+/obj/item/radio/headset/headset_eng,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfJ" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfK" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall,
+/area/engine/engineering)
+"cfL" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfM" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/engineering{
+ name = "Engine Room";
+ req_access_txt = "10"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cfN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cfP" = (
+/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cfQ" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cfT" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cfU" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cfW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/disposal/incinerator";
+ name = "Incinerator APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfY" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cfZ" = (
+/obj/machinery/light_switch{
+ pixel_y = 26
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cga" = (
+/obj/machinery/power/smes{
+ capacity = 9e+006;
+ charge = 10000
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/cobweb{
+ icon_state = "cobweb2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cgb" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = 32
+ },
+/obj/structure/disposalpipe/trunk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cgc" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/aft)
+"cgd" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cge" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgf" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/grille/broken,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgg" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgh" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgi" = (
+/turf/open/floor/circuit/telecomms,
+/area/science/xenobiology)
+"cgj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/barricade/wooden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/biohazard,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cgl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
+ external_pressure_bound = 120;
+ name = "killroom vent"
+ },
+/turf/open/floor/circuit/telecomms,
+/area/science/xenobiology)
+"cgm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgn" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cgo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgp" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgq" = (
+/obj/machinery/space_heater,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cgs" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgt" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgu" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgv" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cgw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cgy" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgA" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cgB" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cgC" = (
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cgD" = (
+/obj/machinery/camera{
+ c_tag = "Aft Port Solar Access";
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cgE" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/port/aft)
+"cgF" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cgG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cgI" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cgO" = (
+/obj/structure/rack,
+/obj/item/lighter,
+/obj/item/clothing/glasses/meson{
+ pixel_y = 4
+ },
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/reagent_containers/pill/patch/silver_sulf,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cgQ" = (
+/obj/machinery/camera{
+ c_tag = "Engineering East";
+ dir = 8
+ },
+/obj/machinery/vending/wardrobe/engi_wardrobe,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cgR" = (
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cgS" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/chief)
+"cgT" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "SMES Room";
+ req_access_txt = "32"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cgU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cgV" = (
+/obj/machinery/computer/atmos_control/tank/nitrogen_tank{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cgW" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cgX" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cgY" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "N2 Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cgZ" = (
+/obj/machinery/computer/atmos_control/tank/oxygen_tank{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cha" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"chb" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "O2 Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"chc" = (
+/obj/machinery/computer/atmos_control/tank/air_tank{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/engine/atmos)
+"chd" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/engine/atmos)
+"che" = (
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"chf" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics South East";
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Air Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/engine/atmos)
+"chg" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"chh" = (
+/obj/machinery/atmospherics/components/unary/tank/toxins{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"chi" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general{
+ level = 2
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"chj" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "plasma tank pump"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"chk" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
+"chl" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "atmospherics mix pump"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"chm" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/airalarm/all_access{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"chn" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cho" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/circuit/telecomms,
+/area/science/xenobiology)
+"chp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"chq" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/circuit/telecomms,
+/area/science/xenobiology)
+"chr" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Kill Chamber";
+ req_access_txt = "55"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"chs" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/circuit/telecomms,
+/area/science/xenobiology)
+"chu" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"chv" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chy" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chz" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chA" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chB" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"chC" = (
+/obj/structure/rack,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chD" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"chE" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"chH" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chJ" = (
+/obj/machinery/power/tracker,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"chN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chR" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chS" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Port Quarter Solar Access";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chT" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"chY" = (
+/obj/machinery/shieldgen,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cia" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cic" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cid" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/power/apc/highcap/fifteen_k{
+ areastring = "/area/engine/engineering";
+ dir = 1;
+ name = "Engineering APC";
+ pixel_y = 25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cie" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cif" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cig" = (
+/turf/closed/wall,
+/area/engine/engineering)
+"cij" = (
+/obj/machinery/modular_computer/console/preset/engineering,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cik" = (
+/obj/machinery/computer/apc_control{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cim" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"cin" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cio" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/yellow,
+/obj/item/stamp/ce,
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"ciq" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/heads/chief)
+"cis" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cit" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"ciu" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"civ" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"cix" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"ciy" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4;
+ name = "input gas connector port"
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ciz" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ciA" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "input port pump"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ciB" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/extinguisher,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ciD" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ name = "output gas connector port"
+ },
+/obj/machinery/portable_atmospherics/canister,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ciE" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ciF" = (
+/obj/structure/table,
+/obj/item/cartridge/medical,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ciG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/closet/firecloset/full,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ciH" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/item/latexballon,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ciI" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ciJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"ciK" = (
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ciL" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ciM" = (
+/obj/machinery/power/compressor{
+ comp_id = "incineratorturbine";
+ dir = 1;
+ luminosity = 2
+ },
+/obj/structure/cable/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/camera{
+ c_tag = "Turbine Chamber";
+ dir = 4;
+ network = list("turbine")
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"ciN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ciQ" = (
+/obj/machinery/power/solar_control{
+ dir = 4;
+ id = "portsolar";
+ name = "Port Quarter Solar Control"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"ciR" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/port/aft";
+ dir = 4;
+ name = "Port Quarter Solar APC";
+ pixel_x = 23;
+ pixel_y = 2
+ },
+/obj/machinery/camera{
+ c_tag = "Aft Port Solar Control";
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"ciS" = (
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"ciT" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ciU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ciW" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ciX" = (
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/rods/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 30
+ },
+/obj/item/lightreplacer,
+/obj/item/lightreplacer,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ciY" = (
+/obj/machinery/door/poddoor{
+ id = "Secure Storage";
+ name = "secure storage"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ciZ" = (
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cja" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjb" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel{
+ name = "floor"
+ },
+/area/engine/engineering)
+"cjc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cje" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjf" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/obj/effect/landmark/start/station_engineer,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cjg" = (
+/obj/machinery/computer/card/minor/ce{
+ dir = 4
+ },
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Chief Engineer's Desk";
+ departmentType = 3;
+ name = "Chief Engineer RC";
+ pixel_x = -32
+ },
+/obj/machinery/camera{
+ c_tag = "Chief Engineer's Office";
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cji" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjj" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cjk" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"cjl" = (
+/obj/machinery/camera{
+ c_tag = "Engineering MiniSat Access";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjm" = (
+/obj/machinery/door/airlock/command{
+ name = "MiniSat Access";
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjn" = (
+/obj/structure/chair/wood/normal{
+ dir = 4
+ },
+/obj/effect/landmark/blobstart,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"cjo" = (
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plasteel,
+/area/construction)
+"cjp" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cjq" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ name = "Mix to Space"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cjr" = (
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cjs" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cjt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cju" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Incinerator to Output"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cjv" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cjw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/aft)
+"cjx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/maintenance/disposal/incinerator)
+"cjy" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cjz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/maintenance/aft)
+"cjA" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/cigbutt/roach,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cjB" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/pen,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/science/xenobiology)
+"cjC" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cjD" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/starboard/aft)
+"cjE" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cjF" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Starboard Quarter Solar Access";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cjG" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/maintenance/solars/starboard/aft)
+"cjH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cjI" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cjJ" = (
+/turf/closed/wall/r_wall,
+/area/engine/engine_smes)
+"cjK" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cjL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"cjM" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Secure Storage";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cjN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjO" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjR" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet/wardrobe/engineering_yellow,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjU" = (
+/obj/machinery/computer/station_alert{
+ dir = 4
+ },
+/obj/machinery/computer/security/telescreen/ce{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cjV" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cjW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"cjX" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cjY" = (
+/obj/structure/table/reinforced,
+/obj/item/cartridge/engineering{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/item/cartridge/engineering{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/obj/item/cartridge/engineering{
+ pixel_x = 3
+ },
+/obj/item/cartridge/atmos,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"cka" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/research/glass{
+ name = "Test Chamber";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"ckb" = (
+/obj/machinery/atmospherics/pipe/simple,
+/obj/structure/grille,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"ckc" = (
+/obj/machinery/atmospherics/pipe/simple,
+/obj/structure/grille,
+/obj/machinery/meter{
+ name = "Mixed Air Tank In"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"ckd" = (
+/obj/machinery/atmospherics/pipe/simple,
+/obj/structure/grille,
+/obj/machinery/meter{
+ name = "Mixed Air Tank Out"
+ },
+/turf/closed/wall/r_wall,
+/area/engine/atmos)
+"cke" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ckf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"ckg" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ckh" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to MiniSat"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cki" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ckj" = (
+/obj/item/cigbutt,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ckk" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "Incinerator to Space"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"ckl" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ckm" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Biohazard Disposals";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cko" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"ckp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ckr" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cks" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"ckt" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/starboard/aft";
+ dir = 8;
+ name = "Starboard Quarter Solar APC";
+ pixel_x = -26;
+ pixel_y = 3
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cku" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"ckv" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ckw" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"ckx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cky" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"ckz" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"ckA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ckB" = (
+/obj/machinery/field/generator,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ckC" = (
+/obj/machinery/power/emitter,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ckD" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/item/storage/box/lights/mixed,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ckF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ckG" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/closet/crate/solarpanel_small,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ckH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ckI" = (
+/obj/machinery/suit_storage_unit/engine,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ckK" = (
+/obj/structure/tank_dispenser,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ckL" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/heads/chief)
+"ckM" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"ckN" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/research/glass{
+ name = "Test Chamber";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/science/misc_lab)
+"ckO" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Chief Engineer";
+ req_access_txt = "56"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"ckQ" = (
+/obj/structure/closet/cardboard,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"ckS" = (
+/obj/structure/closet/cardboard,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ckT" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"ckU" = (
+/obj/machinery/air_sensor/atmos/nitrogen_tank,
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
+"ckV" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{
+ dir = 1
+ },
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
+"ckW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{
+ dir = 1
+ },
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
+"ckX" = (
+/obj/machinery/air_sensor/atmos/oxygen_tank,
+/turf/open/floor/engine/o2,
+/area/engine/atmos)
+"ckY" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{
+ dir = 1
+ },
+/turf/open/floor/engine/o2,
+/area/engine/atmos)
+"ckZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{
+ dir = 1
+ },
+/turf/open/floor/engine/o2,
+/area/engine/atmos)
+"cla" = (
+/obj/machinery/air_sensor/atmos/air_tank,
+/turf/open/floor/engine/air,
+/area/engine/atmos)
+"clb" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/engine/atmos)
+"clc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/engine/atmos)
+"cld" = (
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Mix to Incinerator"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cle" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"clf" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"clg" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"clh" = (
+/obj/machinery/light/small,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -31
+ },
+/obj/machinery/computer/turbine_computer{
+ dir = 1;
+ id = "incineratorturbine"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"cli" = (
+/obj/machinery/button/door/incinerator_vent_atmos_aux{
+ pixel_x = 6;
+ pixel_y = -24
+ },
+/obj/machinery/button/door/incinerator_vent_atmos_main{
+ pixel_x = -6;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"clj" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"clk" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cll" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clm" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/general/hidden{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cln" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clo" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clp" = (
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clq" = (
+/obj/structure/rack,
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cls" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"clw" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cly" = (
+/obj/structure/chair/stool,
+/obj/machinery/camera{
+ c_tag = "Aft Starboard Solar Control";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"clz" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"clA" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"clB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"clC" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"clD" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"clE" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"clF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"clG" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"clJ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"clM" = (
+/obj/structure/table,
+/obj/item/storage/box/lights/mixed,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"clN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"clO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/grey,
+/obj/item/clothing/under/misc/assistantformal,
+/obj/item/clothing/under/misc/assistantformal,
+/obj/machinery/camera{
+ c_tag = "Dorms East - Holodeck";
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"clQ" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"clR" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"clT" = (
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
+"clU" = (
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
+"clV" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
+/turf/open/floor/engine/o2,
+/area/engine/atmos)
+"clW" = (
+/turf/open/floor/engine/o2,
+/area/engine/atmos)
+"clY" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/engine/air,
+/area/engine/atmos)
+"clZ" = (
+/turf/open/floor/engine/air,
+/area/engine/atmos)
+"cmb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cmd" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"cme" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"cmf" = (
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{
+ pixel_x = 38;
+ pixel_y = 6
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cmg" = (
+/obj/machinery/atmospherics/pipe/simple/general/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmh" = (
+/obj/structure/disposalpipe/junction/yjunction{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmj" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmk" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmo" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cmq" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"cmr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cmt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cmu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cmv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cmw" = (
+/obj/machinery/power/solar_control{
+ dir = 1;
+ id = "starboardsolar";
+ name = "Starboard Quarter Solar Control"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cmx" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cmy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cmz" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cmA" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cmB" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cmC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"cmD" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Engineering"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cmF" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cmG" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cmL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cmN" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cmU" = (
+/obj/machinery/light/small,
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
+"cmV" = (
+/obj/machinery/light/small,
+/turf/open/floor/engine/o2,
+/area/engine/atmos)
+"cmW" = (
+/obj/machinery/light/small,
+/turf/open/floor/engine/air,
+/area/engine/atmos)
+"cmX" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction)
+"cmY" = (
+/obj/machinery/atmospherics/components/binary/pump/on,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/airlock_sensor/incinerator_atmos{
+ pixel_x = 8;
+ pixel_y = 24
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cmZ" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1
+ },
+/obj/structure/sign/warning/fire{
+ pixel_x = 32
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cna" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cnb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnc" = (
+/obj/machinery/light/small,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cne" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnf" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cng" = (
+/obj/machinery/light/small,
+/obj/structure/table,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/clipboard,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cnk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cnl" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cnm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnn" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/camera{
+ c_tag = "SMES Room";
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnr" = (
+/obj/machinery/door/window/southleft{
+ name = "Engineering Delivery";
+ req_access_txt = "10"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cnt" = (
+/obj/machinery/camera{
+ c_tag = "Engineering West";
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/start/station_engineer,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cnv" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cny" = (
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cnA" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/apc,
+/obj/item/electronics/apc,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/twohanded/rcl/pre_loaded,
+/obj/item/twohanded/rcl/pre_loaded,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cnB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/construction)
+"cnC" = (
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cnD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/maintenance/aft)
+"cnE" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnF" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Waste Out"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnG" = (
+/obj/structure/closet/emcloset,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cnJ" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cnK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cnL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnM" = (
+/obj/machinery/door/window{
+ name = "SMES Chamber";
+ req_access_txt = "32"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnN" = (
+/obj/structure/window/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnO" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnP" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/window/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engine_smes)
+"cnQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cnR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engine_smes)
+"cnS" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera{
+ c_tag = "SMES Access";
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cnU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cnX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cnY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cnZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"coa" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cob" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"coh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"con" = (
+/turf/open/pool,
+/area/crew_quarters/fitness/pool)
+"cop" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{
+ dir = 1
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"coq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{
+ dir = 1
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cor" = (
+/obj/machinery/igniter{
+ id = "Incinerator"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/air_sensor{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cos" = (
+/obj/machinery/door/poddoor/incinerator_atmos_aux,
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cot" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cou" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cov" = (
+/obj/machinery/power/port_gen/pacman,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cow" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cox" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"coy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"coz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"coA" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"coB" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "SMES Room";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"coC" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"coH" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"coI" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"coJ" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"coL" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"coT" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/meter,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"coZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpa" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/closet/secure_closet/engineering_welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpb" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cpj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/chair/office/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpk" = (
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpm" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpn" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpp" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpq" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -32
+ },
+/obj/machinery/computer/rdconsole/production{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cps" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/bridge)
+"cpE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpF" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/space_cops{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"cpG" = (
+/obj/structure/table/optable,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"cpI" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cpN" = (
+/obj/machinery/power/turbine{
+ luminosity = 2
+ },
+/obj/structure/cable/yellow,
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cpO" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Incinerator Output Pump"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/disposal/incinerator)
+"cpQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/disposal/incinerator)
+"cpR" = (
+/obj/machinery/door/airlock/abandoned{
+ name = "Observatory Access"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cpS" = (
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/engine/engine_smes";
+ name = "SMES room APC";
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpT" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/closet/secure_closet/engineering_electrical,
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"cpV" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Storage";
+ dir = 4
+ },
+/obj/machinery/rnd/production/protolathe/department/engineering,
+/obj/structure/sign/poster/contraband/power{
+ desc = "Lord Singuloth must feed. Annoyingly, it's really easy for people to sabotage containment and let Lord Singuloth eat the entire station.. For this reason, Nanotrasen prefers Supermatter reactors.";
+ pixel_x = -32;
+ poster_item_desc = "This poster depicts Lord Singuloth. Nanotrasen doesn't approve. Nanotrasen wants Supermatter over Singularities, as they are usually much safer."
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpX" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cpY" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqn" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqo" = (
+/obj/structure/sign/warning/pods{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqp" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Escape Pod";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cqr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"cqs" = (
+/obj/structure/sign/warning/fire,
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"cqt" = (
+/obj/machinery/door/poddoor/incinerator_atmos_main,
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cqv" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqw" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/rnd/production/circuit_imprinter,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqz" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqK" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqL" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqM" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"cqN" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqO" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/item/stack/cable_coil,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqP" = (
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"cqR" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cqY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cri" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"crk" = (
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"crl" = (
+/obj/structure/table,
+/obj/item/taperecorder,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"crm" = (
+/obj/structure/table,
+/obj/item/storage/box/matches,
+/obj/item/storage/fancy/cigarettes,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"crn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"cro" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crp" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"crq" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crr" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cry" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"crz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"crA" = (
+/obj/structure/transit_tube_pod,
+/obj/structure/transit_tube/station/reverse/flipped{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crB" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"crC" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"crE" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"crG" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"crP" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"crR" = (
+/obj/structure/transit_tube,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crW" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crX" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"crY" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/transit_tube,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"csc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/maintenance/aft)
+"csg" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"csm" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/aft)
+"csq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/computer/security/telescreen/turbine{
+ dir = 1;
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"csr" = (
+/obj/machinery/button/ignition{
+ id = "Incinerator";
+ pixel_x = -6;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"csy" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"csD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csN" = (
+/obj/structure/transit_tube/horizontal,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csO" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/transit_tube/horizontal,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/xmastree,
+/turf/open/floor/plasteel/dark,
+/area/chapel/main)
+"csU" = (
+/obj/structure/transit_tube/station/reverse,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csX" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csZ" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"cta" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "MiniSat External Access";
+ req_access_txt = "65;13"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctb" = (
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctg" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cth" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cti" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctj" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat Pod Access";
+ dir = 1;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctk" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cto" = (
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Foyer";
+ req_one_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctp" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 8
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctr" = (
+/obj/structure/table,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/item/folder{
+ pixel_x = 3
+ },
+/obj/item/phone{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/pen,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cts" = (
+/obj/structure/rack,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/radio/off{
+ pixel_y = 4
+ },
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctw" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/computer/station_alert{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctx" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cty" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctz" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "teledoor";
+ name = "MiniSat Teleport Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctB" = (
+/obj/structure/cable,
+/obj/machinery/power/tracker,
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"ctE" = (
+/obj/machinery/teleport/hub,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctF" = (
+/obj/machinery/button/door{
+ id = "teledoor";
+ name = "MiniSat Teleport Shutters Control";
+ pixel_y = 25;
+ req_access_txt = "17;65"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctG" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctH" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = -31
+ },
+/obj/machinery/computer/monitor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctJ" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctK" = (
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Teleporter";
+ req_access_txt = "17;65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctL" = (
+/obj/machinery/teleport/station,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctM" = (
+/obj/machinery/bluespace_beacon,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctQ" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctR" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/turf/closed/wall,
+/area/engine/engineering)
+"ctS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctT" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat_interior";
+ dir = 4;
+ name = "MiniSat Foyer APC";
+ pixel_x = 27
+ },
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctW" = (
+/obj/machinery/computer/teleporter{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctX" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat Teleporter";
+ dir = 1;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctY" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"ctZ" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cua" = (
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cub" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuc" = (
+/obj/structure/rack,
+/obj/machinery/status_display/evac{
+ pixel_y = -32
+ },
+/obj/item/storage/box/donkpockets,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cud" = (
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat_interior";
+ name = "Antechamber Turret Control";
+ pixel_y = -24;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat Foyer";
+ dir = 1;
+ network = list("minisat")
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cue" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuf" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat/service)
+"cug" = (
+/obj/machinery/status_display/ai{
+ pixel_y = -32
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuh" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/structure/rack,
+/obj/item/wrench,
+/obj/item/crowbar/red,
+/obj/item/clothing/head/welding,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cui" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuj" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cul" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Antechamber";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cum" = (
+/obj/machinery/recharge_station,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cun" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Mix to MiniSat"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuo" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cup" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 8;
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuq" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Air Out"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cur" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 4;
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cus" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 8;
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuv" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 4;
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuw" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cux" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/clothing/head/welding,
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 35
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuy" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuA" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "MiniSat Atmospherics";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuB" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 28
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuC" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuD" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "MiniSat Antechamber";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat/atmos";
+ name = "Atmospherics Turret Control";
+ pixel_x = -27;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuF" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat/service";
+ name = "Service Bay Turret Control";
+ pixel_x = 27;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuH" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuI" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuJ" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuK" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "MiniSat Service Bay";
+ dir = 8;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/mechanical,
+/obj/item/multitool,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuM" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/atmos";
+ dir = 8;
+ name = "MiniSat Atmospherics APC";
+ pixel_x = -27
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Atmospherics";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/mob/living/simple_animal/bot/secbot/pingsky,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Service Bay";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/service";
+ dir = 4;
+ name = "MiniSat Service Bay APC";
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/port_gen/pacman,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuY" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/mob/living/simple_animal/bot/floorbot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cva" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai)
+"cvb" = (
+/obj/machinery/status_display/ai,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai)
+"cvc" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1447;
+ listening = 0;
+ name = "Station Intercom (AI Private)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cvd" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cve" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat/hallway";
+ name = "Chamber Hallway Turret Control";
+ pixel_x = 32;
+ pixel_y = -24;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cvf" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai)
+"cvg" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/mob/living/simple_animal/bot/cleanbot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cvh" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cvi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cvj" = (
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvk" = (
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvl" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cvm" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Chamber Hallway";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvp" = (
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cvq" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvr" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cvs" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvv" = (
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/ai)
+"cvw" = (
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvx" = (
+/obj/effect/landmark/start/ai/secondary,
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_y = 28
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = -27;
+ pixel_y = 5
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_y = -25
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cvy" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvA" = (
+/obj/effect/landmark/start/ai/secondary,
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_y = 28
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = 27;
+ pixel_y = 5
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_y = -25
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cvB" = (
+/obj/structure/rack,
+/obj/item/crowbar/red,
+/obj/item/wrench,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvD" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvE" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvG" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4;
+ installation = /obj/item/gun/energy/e_gun
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvJ" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4;
+ installation = /obj/item/gun/energy/e_gun
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvL" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvM" = (
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat Core Hallway";
+ dir = 4;
+ network = list("aicore")
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvN" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cvP" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvR" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvU" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvV" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvW" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvX" = (
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvZ" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwa" = (
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/hallway";
+ dir = 4;
+ name = "MiniSat Chamber Hallway APC";
+ pixel_x = 27
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwb" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1447;
+ listening = 0;
+ name = "Station Intercom (AI Private)";
+ pixel_x = -28;
+ pixel_y = -29
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwe" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/turret_protected/ai)
+"cwf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Chamber Observation";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwg" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwh" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwi" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwk" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwm" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/white,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwp" = (
+/obj/structure/chair/office/dark,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwq" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/ai)
+"cws" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/ai)
+"cwt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "AI Core";
+ req_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwv" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cww" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwA" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwB" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/status_display/ai{
+ pixel_x = 32
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cwC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwD" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/turretid{
+ name = "AI Chamber turret control";
+ pixel_x = 5;
+ pixel_y = -24
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cwE" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/ai_monitored/turret_protected/ai";
+ name = "AI Chamber APC";
+ pixel_y = -24
+ },
+/obj/machinery/flasher{
+ id = "AI";
+ pixel_x = -11;
+ pixel_y = -24
+ },
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat AI Chamber North";
+ dir = 1;
+ network = list("aicore")
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cwH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"cwT" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Escape Pod 2";
+ dir = 8
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cxm" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cxo" = (
+/obj/structure/chair/wood/normal,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"cxN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"cxP" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"cxW" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"cxY" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Escape Pod 1";
+ dir = 8
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cya" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"cyb" = (
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod One"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cyg" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/command{
+ name = "Command Tool Storage";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/storage/eva)
+"cyh" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Security Escape Airlock";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"cyl" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cyp" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Airlock"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"cyr" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Cargo Escape Airlock"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"cyt" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 4"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cyu" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 3"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cyC" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cyD" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Supply Dock Airlock";
+ req_access_txt = "31"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"cyE" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cyG" = (
+/turf/open/floor/plating,
+/area/engine/atmos)
+"cyK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cyL" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cyM" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "Engine Room";
+ req_access_txt = "10"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cyU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"czg" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four";
+ shuttledocked = 1
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"czk" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "MiniSat External Access";
+ req_access_txt = "65;13"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"czG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czJ" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/maintenance/disposal/incinerator)
+"czK" = (
+/turf/closed/wall,
+/area/security/vacantoffice)
+"czO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"czQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"czT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czX" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czZ" = (
+/obj/structure/chair,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAa" = (
+/obj/structure/chair,
+/obj/item/storage/fancy/cigarettes,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAb" = (
+/obj/structure/closet,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cAd" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAe" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cAg" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"cAh" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAy" = (
+/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"cAA" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAB" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAC" = (
+/obj/structure/sink/kitchen{
+ dir = 8;
+ pixel_x = 11
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAD" = (
+/obj/structure/table,
+/obj/item/kitchen/knife,
+/obj/item/storage/box/donkpockets,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAE" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = 2
+ },
+/obj/item/reagent_containers/food/snacks/mint{
+ pixel_y = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAF" = (
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"cAG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/hop";
+ name = "Head of Personnel APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"cAH" = (
+/obj/machinery/processor,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAI" = (
+/obj/machinery/conveyor_switch/oneway{
+ dir = 8;
+ id = "garbage";
+ name = "disposal conveyor"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"cAJ" = (
+/obj/structure/closet,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"cAK" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/janitor,
+/turf/open/floor/plasteel,
+/area/janitor)
+"cAQ" = (
+/obj/structure/chair,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAR" = (
+/obj/machinery/door/window{
+ dir = 1;
+ name = "AI Core Door";
+ req_access_txt = "16"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cAS" = (
+/obj/effect/landmark/start/ai,
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = -27;
+ pixel_y = -9
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_y = -31
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_x = 27;
+ pixel_y = -9
+ },
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -28;
+ pixel_y = -28
+ },
+/obj/machinery/requests_console{
+ department = "AI";
+ departmentType = 5;
+ pixel_x = 28;
+ pixel_y = -28
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cAT" = (
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cAV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/showcase/cyborg/old{
+ dir = 8;
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cAW" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 4;
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cAY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/ai)
+"cAZ" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cBa" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cBb" = (
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat AI Chamber South";
+ network = list("aicore")
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cBc" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai)
+"cBd" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cBe" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cBg" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/hydroponics)
+"cBh" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/locker)
+"cBi" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"cBj" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"cBk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"cBl" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit)
+"cBm" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"cBn" = (
+/obj/structure/closet,
+/obj/item/stack/tile/carpet/royalblue{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/green{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/purple{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/orange{
+ amount = 24
+ },
+/obj/item/stack/tile/wood{
+ amount = 24
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"cBo" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"cBp" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"cBq" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"cBr" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"cBt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/white,
+/area/science/explab)
+"cBu" = (
+/obj/machinery/status_display/ai{
+ pixel_y = 32
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/crew_quarters/heads/hor)
+"cBv" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/supply)
+"cBw" = (
+/obj/machinery/door/firedoor,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"cBx" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"cBy" = (
+/obj/machinery/door/airlock{
+ name = "Custodial Closet";
+ req_access_txt = "26"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/janitor)
+"cBz" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cBA" = (
+/obj/machinery/button/massdriver{
+ id = "toxinsdriver";
+ pixel_y = 24
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"cBB" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"cBC" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/storage/tech)
+"cBD" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cBE" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/air_sensor/atmos/toxins_mixing_tank,
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"cBF" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cBH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"cBI" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/security/checkpoint/engineering)
+"cBJ" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cBK" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"cBL" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cBM" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/twohanded/rcl/pre_loaded,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"cBN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cBO" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cBP" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/engine/air,
+/area/engine/atmos)
+"cBS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cBT" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cBZ" = (
+/obj/structure/table/wood,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"cCb" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ amount = 5
+ },
+/obj/item/flashlight,
+/turf/open/floor/plating,
+/area/construction)
+"cCc" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/hazardvest,
+/turf/open/floor/plating,
+/area/construction)
+"cCd" = (
+/turf/open/floor/plasteel,
+/area/construction)
+"cCe" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plating,
+/area/construction)
+"cCf" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/construction)
+"cCi" = (
+/turf/closed/wall,
+/area/security/vacantoffice/b)
+"cCj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/detectives_office)
+"cCk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/detectives_office)
+"cCn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
+"cCo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"cCp" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood/AMinus,
+/obj/item/reagent_containers/blood/BMinus{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/blood/BPlus{
+ pixel_x = 1;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/blood/OMinus,
+/obj/item/reagent_containers/blood/OPlus{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/APlus,
+/obj/item/reagent_containers/blood/random,
+/turf/open/floor/plasteel,
+/area/medical/sleeper)
+"cCq" = (
+/obj/machinery/deepfryer,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"cCt" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/obj/item/poster/random_official,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cCE" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cCF" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"cCT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cCY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cDl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/tool,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cDm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/engivend,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cDB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cDJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cDK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cDL" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"cDN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/engine/engineering)
+"cDZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cEo" = (
+/obj/structure/closet/boxinggloves,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"cGz" = (
+/obj/structure/table/wood,
+/obj/item/instrument/violin,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"cGG" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"cHf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/item/reagent_containers/food/drinks/britcup,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"cHD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 14
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cHE" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Mech Bay Maintenance";
+ req_access_txt = "29"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/robotics/mechbay)
+"cHF" = (
+/obj/machinery/button/door{
+ id = "Skynet_launch";
+ name = "Mech Bay Door Control";
+ pixel_x = 6;
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"cHG" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"cHH" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"cHI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"cHJ" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"cHK" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research/glass{
+ name = "Robotics Lab";
+ req_access_txt = "29"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cHL" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/science/robotics/mechbay)
+"cHM" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cHN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit,
+/area/science/robotics/mechbay)
+"cHO" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "robo1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cHP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass{
+ amount = 20;
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cHQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"cHR" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo1"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cHS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/landmark/start/roboticist,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cHT" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cHU" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cHV" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "robo2"
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cHW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/mecha_part_fabricator,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cHX" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
+/obj/item/multitool{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cHZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cIa" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cIb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo2"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cIc" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cId" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/science/robotics/lab)
+"cIe" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cIf" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"cIh" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 1"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cIv" = (
+/obj/structure/sign/poster/official/cohiba_robusto_ad,
+/turf/closed/wall,
+/area/lawoffice)
+"cJW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"cKC" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"cKT" = (
+/obj/machinery/door/airlock/external{
+ name = "Atmospherics External Airlock";
+ req_access_txt = "24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"cMp" = (
+/obj/machinery/light,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cMC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/computer/security/telescreen/engine{
+ dir = 8;
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cMQ" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/solar{
+ id = "starboardsolar";
+ name = "Starboard Solar Array"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"cMS" = (
+/obj/item/chair/wood,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"cNa" = (
+/obj/structure/cable,
+/obj/machinery/power/solar{
+ id = "starboardsolar";
+ name = "Starboard Solar Array"
+ },
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel,
+/area/icemoon/surface/outdoors)
+"cNE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/crew_quarters/bar)
+"cNG" = (
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"cNI" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
+"cNJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"cNL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/central";
+ dir = 1;
+ name = "Central Maintenance APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"cNM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"cNN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
+"cNR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNS" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard";
+ dir = 4;
+ name = "Starboard Maintenance APC";
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNT" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNV" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_one_access_txt = "8;12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNW" = (
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cNX" = (
+/obj/machinery/door/airlock/maintenance{
+ req_one_access_txt = "8;12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cNY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cNZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOe" = (
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOw" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cOx" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOz" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"cOT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOV" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"cPn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"cPA" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cPH" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cPI" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cQw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cQB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cQF" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"cQT" = (
+/obj/structure/filingcabinet,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"cQU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"cSA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/courtroom)
+"cSE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cSF" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cSL" = (
+/obj/machinery/button/door{
+ id = "atmos";
+ name = "Atmospherics Lockdown";
+ pixel_x = -24;
+ pixel_y = 10;
+ req_access_txt = "24"
+ },
+/obj/machinery/button/door{
+ desc = "A remote control-switch for secure storage.";
+ id = "Secure Storage";
+ name = "Engineering Secure Storage";
+ pixel_x = -24;
+ req_access_txt = "11"
+ },
+/obj/machinery/button/door{
+ desc = "A remote control-switch for the engineering security doors.";
+ id = "Engineering";
+ name = "Engineering Lockdown";
+ pixel_x = -24;
+ pixel_y = -10;
+ req_access_txt = "10"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/chief)
+"cSM" = (
+/obj/machinery/computer/station_alert,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cSN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSR" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Power Storage"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cST" = (
+/obj/effect/landmark/start/station_engineer,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSU" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSV" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cSW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cSX" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cSY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cSZ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/chief)
+"cTa" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cTb" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/pump,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cTc" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cTd" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"cTe" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cTf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/requests_console{
+ department = "Engineering";
+ departmentType = 4;
+ name = "Engineering RC";
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cTD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/central/secondary";
+ dir = 8;
+ name = "Central Maintenance APC";
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"cTE" = (
+/obj/machinery/computer/shuttle/mining{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"cTF" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cTJ" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"cTM" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/department/medical/morgue";
+ dir = 4;
+ name = "Morgue Maintenance APC";
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"cTO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTS" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTT" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"cTX" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/shieldwallgen/xenobiologyaccess,
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cTY" = (
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"cTZ" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/xenobiology)
+"cUx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge/meeting_room)
+"cVb" = (
+/turf/closed/wall,
+/area/hallway/secondary/service)
+"cVs" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"cVt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"cVK" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"cXi" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"cXU" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light{
+ light_color = "#c9d3e8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"cZe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"daI" = (
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"daY" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"dbU" = (
+/obj/structure/light_construct{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"dce" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"dev" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/storage";
+ name = "Cargo Bay APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"deE" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Gas to Filter"
+ },
+/obj/machinery/airalarm/engine{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"dfh" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/circuit";
+ name = "Circuitry Lab APC";
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"dfL" = (
+/obj/structure/reagent_dispensers/keg/gargle,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"dgz" = (
+/turf/closed/wall,
+/area/crew_quarters/cryopod)
+"dgO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"dhT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Starboard";
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"diq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"dly" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"dlO" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"dml" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"dqb" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"dqu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"dsC" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/theatre)
+"dtx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 25
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"dvc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"dvO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/science/circuit)
+"dyE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"dyS" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"dzi" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"dzQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"dBm" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"dCr" = (
+/obj/structure/pool/Rboard,
+/turf/open/floor/plasteel/yellowsiding{
+ dir = 8
+ },
+/area/crew_quarters/fitness/pool)
+"dCV" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/range)
+"dDc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Mix Bypass"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"dFX" = (
+/turf/closed/wall,
+/area/crew_quarters/fitness/pool)
+"dIt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"dIH" = (
+/obj/structure/grille/broken,
+/obj/effect/landmark/loneopspawn,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"dJL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/airlock/command{
+ name = "Head of Security's Office";
+ req_access_txt = "58"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/hos)
+"dKP" = (
+/turf/closed/wall,
+/area/maintenance/bar)
+"dKV" = (
+/obj/structure/chair/stool/bar,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"dMZ" = (
+/obj/structure/sign/poster/official/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"dPk" = (
+/obj/structure/closet{
+ name = "Costume Closet"
+ },
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"dPq" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"dSF" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"dSI" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"dTI" = (
+/obj/structure/urinal{
+ pixel_y = 32
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"dUG" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 9
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"dVX" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"dXq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"dYZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/range)
+"eaI" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom{
+ pixel_x = -30
+ },
+/obj/item/stock_parts/cell/high,
+/obj/item/stock_parts/cell/high,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"ecg" = (
+/turf/open/floor/plasteel/yellowsiding/corner{
+ dir = 4
+ },
+/area/crew_quarters/fitness/pool)
+"ecE" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Mix to Waste"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"edA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-04"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"egt" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/requests_console{
+ department = "Bar";
+ departmentType = 2;
+ pixel_x = -30;
+ pixel_y = 45;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"eih" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"elh" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"ene" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"enB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/execution/transfer)
+"eon" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"epC" = (
+/obj/machinery/door/airlock{
+ desc = "To keep the station within regulations, space IKEA requires one storage cupboard for their Nanotrasen partnership to continue.";
+ id_tag = "MaintDorm1";
+ name = "Furniture Storage"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port)
+"epD" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"eqd" = (
+/obj/item/electropack/shockcollar,
+/obj/item/assembly/signaler,
+/turf/open/floor/plating,
+/area/security/prison)
+"eqA" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"esK" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Chemical Storage";
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden,
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"esL" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"esZ" = (
+/obj/machinery/door/airlock{
+ desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals.";
+ id_tag = "PrivateStudy";
+ name = "Private Study"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/wood,
+/area/library)
+"etE" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"evR" = (
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"ewu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"exP" = (
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-14"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"eyM" = (
+/obj/machinery/mineral/ore_redemption{
+ input_dir = 2;
+ output_dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"eAG" = (
+/obj/item/clothing/under/misc/pj/blue,
+/obj/item/clothing/shoes/sneakers/white,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"eAJ" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"eBm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"eBX" = (
+/obj/machinery/vending/cola/space_up,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"eCr" = (
+/obj/structure/closet{
+ name = "Suit Closet"
+ },
+/obj/item/clothing/under/suit/white,
+/obj/item/clothing/under/suit/tan,
+/obj/item/clothing/under/suit/red,
+/obj/item/clothing/under/suit/black_really,
+/obj/item/clothing/under/suit/navy,
+/obj/item/clothing/under/suit/green,
+/obj/item/clothing/under/suit/black/skirt,
+/obj/item/clothing/under/suit/checkered,
+/obj/item/clothing/under/suit/charcoal,
+/obj/item/clothing/under/suit/burgundy,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/black,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/blue,
+/obj/item/clothing/under/rank/civilian/lawyer/bluesuit,
+/obj/item/clothing/under/rank/civilian/lawyer/female,
+/obj/item/clothing/under/rank/civilian/lawyer/purpsuit,
+/obj/item/clothing/under/rank/civilian/lawyer/really_black,
+/obj/item/clothing/under/rank/civilian/lawyer/red,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"eCR" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"eEe" = (
+/obj/machinery/door/airlock{
+ name = "Theatre Backstage";
+ req_access_txt = "46"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"eFx" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/ai_monitored/security/armory)
+"eHa" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"eHI" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"eJa" = (
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck{
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"eMs" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ePe" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"ePU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"eQb" = (
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"eSe" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"eVC" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/crew_quarters/cryopod)
+"eVJ" = (
+/turf/open/floor/plasteel/yellowsiding{
+ dir = 1
+ },
+/area/crew_quarters/fitness/pool)
+"eVL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"eWL" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"eWV" = (
+/obj/machinery/door/airlock/external{
+ name = "Atmospherics External Airlock";
+ req_access_txt = "24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"eXz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"fcn" = (
+/obj/structure/lattice,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/nuke_storage)
+"fcG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/science/mixing)
+"fdQ" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"feE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
+"feG" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"fft" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"fgG" = (
+/obj/structure/table/wood,
+/obj/machinery/requests_console{
+ department = "Theatre";
+ name = "theatre RC";
+ pixel_x = -32
+ },
+/obj/item/reagent_containers/food/snacks/baguette,
+/obj/item/toy/dummy,
+/obj/item/lipstick/random{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/lipstick/random{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
+"fjS" = (
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"fkR" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Engine Room";
+ req_access_txt = "10"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"flc" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"flE" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"fne" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/landmark/start/mime,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
+"fnC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"foo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 5
+ },
+/obj/machinery/meter,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"foT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"fpl" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"fpt" = (
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"fpz" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"fpI" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-06"
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/entry)
+"fpW" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Gas to Chamber"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"fqD" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"fsa" = (
+/obj/machinery/button/door{
+ id = "armory3";
+ name = "Armory Shutters";
+ pixel_y = 26;
+ req_access_txt = "3"
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/security/armory)
+"fsj" = (
+/obj/structure/table,
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/range)
+"ftE" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"fup" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"fvY" = (
+/obj/machinery/computer/cryopod{
+ pixel_y = 26
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"fxa" = (
+/obj/structure/chair/wood/normal,
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/maintenance/bar)
+"fxe" = (
+/obj/structure/chair/sofa,
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"fxx" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall,
+/area/security/brig)
+"fxS" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/power/rad_collector/anchored,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"fxV" = (
+/turf/closed/wall/r_wall,
+/area/hallway/primary/central)
+"fxZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"fyS" = (
+/obj/structure/pool/ladder{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/pool,
+/area/crew_quarters/fitness/pool)
+"fzd" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"fAj" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/love_ian{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"fAX" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"fBy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"fCx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "holoprivacy";
+ name = "Holodeck Privacy";
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"fFA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"fGf" = (
+/obj/machinery/smartfridge/disks{
+ pixel_y = 2
+ },
+/obj/structure/table,
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"fHs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"fHG" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"fJs" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Cooling Loop Bypass"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"fJY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"fJZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"fKl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"fMp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"fNu" = (
+/obj/machinery/door/airlock/external{
+ name = "Atmospherics External Airlock";
+ req_access_txt = "24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engine/atmos)
+"fOA" = (
+/obj/machinery/door/airlock{
+ name = "Theatre Backstage";
+ req_access_txt = "46"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"fOI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-18"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"fPL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"fPM" = (
+/obj/structure/rack,
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/wrench,
+/obj/item/weldingtool,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"fPU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"fTg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"fTC" = (
+/obj/structure/filingcabinet,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"fUP" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/engineering/glass/critical{
+ heat_proof = 1;
+ name = "Supermatter Chamber";
+ req_access_txt = "10"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"fZm" = (
+/obj/structure/chair/sofa/left,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"gav" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"gbd" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"gbh" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness)
+"gbq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/construction)
+"gbu" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/area/security/prison)
+"gbT" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"gcj" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gcF" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"gfr" = (
+/obj/structure/bed,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"gfC" = (
+/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"gfD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"gfJ" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ghD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"gii" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"gjl" = (
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"gkD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"glC" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"glY" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/item/cartridge/atmos,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"gnf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/departments/custodian{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"gpD" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"grc" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"grA" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness)
+"gsM" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"gvX" = (
+/turf/open/floor/plasteel/yellowsiding,
+/area/crew_quarters/fitness/pool)
+"gwd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"gxc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"gyr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"gzf" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/curtain,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
+"gzv" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"gzY" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"gAi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gAE" = (
+/obj/structure/rack,
+/obj/item/flashlight,
+/obj/item/crowbar/large,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"gBa" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"gBo" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"gCd" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Aft";
+ network = list("ss13","engine");
+ pixel_x = 23
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gCC" = (
+/obj/structure/sign/poster/contraband/tools,
+/turf/closed/wall,
+/area/storage/primary)
+"gDB" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gDP" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"gGH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gIy" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gJm" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gLz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"gLH" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"gMl" = (
+/obj/structure/chair/wood/normal{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"gNC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"gNE" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"gOZ" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"gQX" = (
+/obj/machinery/button/door{
+ desc = "Alright, GAMER! Want to take your PWRGAME addiction to the MAX? Just smash this button with your chubby chetto encrusted hands an- oh, you broke the switch. Good job, idiot.";
+ id = "RIPFUN";
+ name = "Powerful Gamer Toggle";
+ normaldoorcontrol = 1;
+ pixel_x = -24;
+ pixel_y = 7;
+ specialfunctions = 4
+ },
+/obj/structure/table_frame/wood,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"gRZ" = (
+/obj/structure/bookcase{
+ name = "Forbidden Knowledge"
+ },
+/turf/open/floor/carpet,
+/area/library)
+"gTx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"gUu" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"gWd" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"gWo" = (
+/turf/closed/wall,
+/area/security/range)
+"gZG" = (
+/obj/structure/closet/crate/freezer/surplus_limbs,
+/obj/item/reagent_containers/glass/beaker/synthflesh,
+/turf/open/floor/plasteel/white/side{
+ dir = 8
+ },
+/area/medical/sleeper)
+"haM" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"hcb" = (
+/turf/open/floor/carpet,
+/area/crew_quarters/theatre)
+"hcA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"hew" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"hgO" = (
+/obj/structure/table,
+/obj/item/storage/pill_bottle/dice{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/snacks/cherrycupcake,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"hhc" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"hid" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"hiV" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"hlT" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock";
+ req_access_txt = "2";
+ shuttledocked = 1
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"hlV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/dorms)
+"hnl" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/port)
+"hnU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/window/westleft{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Shooting Range"
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"hrF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"hsb" = (
+/obj/structure/table/wood,
+/obj/item/book/codex_gigas,
+/obj/item/clothing/under/suit/red,
+/obj/structure/destructible/cult/tome,
+/turf/open/floor/carpet,
+/area/library)
+"hsZ" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"hzK" = (
+/turf/open/floor/plasteel/yellowsiding/corner{
+ dir = 1
+ },
+/area/crew_quarters/fitness/pool)
+"hAe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/gloves/color/black,
+/obj/item/tank/internals/emergency_oxygen/engi{
+ pixel_x = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"hBw" = (
+/obj/structure/lattice,
+/turf/closed/wall,
+/area/maintenance/fore)
+"hBA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"hGf" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"hGH" = (
+/obj/machinery/door/airlock{
+ desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals.";
+ id_tag = "PrivateStudy";
+ name = "Private Study"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/wood,
+/area/library)
+"hHQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"hIL" = (
+/obj/structure/sign/poster/contraband/space_up{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"hIM" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"hLJ" = (
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"hNw" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Atmos to Loop"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"hOv" = (
+/obj/structure/table/wood/fancy,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/snacks/burger/plain,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"hOI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"hPs" = (
+/obj/structure/fireplace{
+ pixel_y = -6
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 23
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"hPP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/quartermaster/warehouse)
+"hRa" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"hRI" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"hSh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"hSl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"hSZ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"hVs" = (
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"hWd" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"iaZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"ibK" = (
+/turf/open/floor/plasteel,
+/area/security/processing)
+"idK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Firing Range";
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/security/range)
+"iiW" = (
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"ijG" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/window,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"ikk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"ikm" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"imH" = (
+/obj/structure/falsewall,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"inq" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"inw" = (
+/mob/living/simple_animal/hostile/retaliate/goose{
+ desc = "Some evil loose goose.";
+ name = "Cere"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"inR" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/theatre)
+"iou" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"ipA" = (
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"itD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"itG" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"itK" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"itQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"ium" = (
+/mob/living/simple_animal/bot/cleanbot{
+ name = "C.L.E.A.N."
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"iuR" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"iwB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/port)
+"izg" = (
+/obj/item/cigbutt/cigarbutt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"izv" = (
+/obj/machinery/vending/clothing,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"izw" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "Output to Waste"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"iBv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"iEJ" = (
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod One"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"iGX" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"iHk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"iJM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/engine/engineering)
+"iLJ" = (
+/obj/item/reagent_containers/glass/bucket,
+/mob/living/simple_animal/pet/bumbles,
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"iMv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/table/glass,
+/obj/structure/bedsheetbin/towel,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"iNn" = (
+/obj/machinery/camera{
+ c_tag = "Kitchen Cold Room"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/reagent_dispensers/cooking_oil,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"iPp" = (
+/obj/structure/girder,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"iPX" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder{
+ desc = "Used to grind things up into raw materials and liquids.";
+ pixel_y = 5
+ },
+/obj/item/lighter,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"iRj" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"iTq" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/theatre)
+"iTU" = (
+/obj/structure/musician/piano{
+ icon_state = "piano"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"iUK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/vacantoffice/b)
+"iVJ" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"iVU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/crew_quarters/cryopod)
+"iWx" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"iWD" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"iXc" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"iYC" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"iYE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table/glass,
+/obj/item/storage/firstaid/regular,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"jaF" = (
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"jaH" = (
+/obj/structure/door_assembly/door_assembly_mai,
+/obj/item/electronics/airlock,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"jbf" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/service";
+ dir = 1;
+ name = "Service Hall APC";
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"jex" = (
+/obj/machinery/smartfridge/organ/preloaded,
+/turf/closed/wall,
+/area/medical/sleeper)
+"jez" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"jfm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"jgm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/camera{
+ c_tag = "Circuitry Lab";
+ dir = 8;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"jgA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"jhU" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 10
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"jjC" = (
+/obj/structure/table/wood,
+/obj/item/toy/cards/deck,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"jkx" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/computer/slot_machine,
+/obj/item/coin/iron,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"jkz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"jlm" = (
+/obj/machinery/rnd/production/techfab/department/cargo,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"jmV" = (
+/obj/structure/table/wood/fancy,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/reagent_containers/food/drinks/britcup{
+ desc = "Kingston's personal cup.";
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"jqv" = (
+/obj/structure/chair/wood/normal{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken7"
+ },
+/area/maintenance/bar)
+"jqS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"jrl" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Engine Room";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"jrE" = (
+/obj/structure/sign/poster/official/random{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"jsT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"juG" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/obj/item/reagent_containers/food/snacks/bluecherrycupcake{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"juQ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"jvd" = (
+/obj/structure/closet/athletic_mixed,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"jxF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"jyO" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/security/armory)
+"jAN" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 8
+ },
+/area/crew_quarters/fitness)
+"jBi" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness)
+"jBA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"jCq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"jEc" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
+"jFH" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"jGW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"jHh" = (
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"jHt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"jIb" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"jIs" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"jJF" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/maintenance/port/aft)
+"jKP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"jLn" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Gravity Generator";
+ req_access_txt = "11"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engine_smes)
+"jLT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"jMW" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "PoolShut";
+ name = "Pool Shutters";
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"jRw" = (
+/obj/machinery/computer/arcade/minesweeper{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"jSO" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"jTJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable,
+/obj/machinery/power/emitter/anchored{
+ dir = 4;
+ state = 2
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"jVl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"jXN" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 8;
+ filter_type = "n2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"jZT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "maint2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"kbm" = (
+/obj/machinery/door/window/brigdoor/security/cell{
+ id = "Cell 2";
+ name = "Cell 2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"kbT" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
+ dir = 1
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/engine/engineering)
+"kdO" = (
+/obj/machinery/pool/controller,
+/turf/open/floor/plasteel/yellowsiding,
+/area/crew_quarters/fitness/pool)
+"kdP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/range)
+"ker" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"keM" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/washing_machine,
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"kfv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/storage/tech)
+"kfX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engine_smes)
+"kgr" = (
+/obj/machinery/light/small{
+ brightness = 3;
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/prison)
+"khb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/kitchen/rollingpin,
+/obj/item/shovel/spade,
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"khB" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Pool Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"khV" = (
+/obj/machinery/vending/cola/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"kjm" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Cooling Loop to Gas"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"kmw" = (
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"kmS" = (
+/obj/structure/dresser,
+/obj/item/flashlight/lamp/green{
+ pixel_x = -2;
+ pixel_y = 15
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"knx" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"kob" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"kqI" = (
+/obj/structure/window,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"ksp" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/closed/wall,
+/area/engine/atmos)
+"ktP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"kuh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"kuA" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/security/range)
+"kvL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/bridge/meeting_room)
+"kxf" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
+"kyF" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"kyT" = (
+/obj/effect/landmark/loneopspawn,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"kzT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/science/mixing)
+"kAH" = (
+/obj/machinery/camera{
+ c_tag = "Bar West";
+ dir = 4
+ },
+/obj/machinery/computer/arcade/orion_trail,
+/obj/structure/sign/poster/official/foam_force_ad{
+ pixel_x = -32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"kAJ" = (
+/obj/machinery/portable_atmospherics/pump,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"kAO" = (
+/obj/structure/chair/sofa{
+ dir = 1
+ },
+/obj/structure/window,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"kCa" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"kCo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"kGJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"kHd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Prisoner Processing";
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"kJc" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"kLz" = (
+/obj/structure/cable,
+/obj/machinery/power/emitter/anchored{
+ dir = 4;
+ state = 2
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"kMt" = (
+/obj/machinery/computer/prisoner/gulag_teleporter_computer,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"kNt" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"kNv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/free_drone{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"kOV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"kPd" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"kPj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction/flip,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"kQk" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/item/storage/toolbox/electrical,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"kQz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"kQO" = (
+/obj/structure/reagent_dispensers/keg/semen,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"kSb" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"kTj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "maintenance access";
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden,
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"kUC" = (
+/obj/machinery/chem_master/condimaster,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"kVO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable,
+/obj/machinery/power/emitter/anchored{
+ dir = 8;
+ state = 2
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"kXA" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"kYk" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/departments/evac{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"kZE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"kZS" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"laq" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/range)
+"lfB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"lfV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"lgA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Port";
+ dir = 4;
+ network = list("ss13","engine")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"lip" = (
+/obj/structure/closet{
+ name = "Suit Closet"
+ },
+/obj/item/clothing/under/suit/white,
+/obj/item/clothing/under/suit/tan,
+/obj/item/clothing/under/suit/red,
+/obj/item/clothing/under/suit/black_really,
+/obj/item/clothing/under/suit/navy,
+/obj/item/clothing/under/suit/green,
+/obj/item/clothing/under/suit/black/skirt,
+/obj/item/clothing/under/suit/checkered,
+/obj/item/clothing/under/suit/charcoal,
+/obj/item/clothing/under/suit/burgundy,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/black,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/blue,
+/obj/item/clothing/under/rank/civilian/lawyer/bluesuit,
+/obj/item/clothing/under/rank/civilian/lawyer/female,
+/obj/item/clothing/under/rank/civilian/lawyer/purpsuit,
+/obj/item/clothing/under/rank/civilian/lawyer/really_black,
+/obj/item/clothing/under/rank/civilian/lawyer/red,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"lnk" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"lnu" = (
+/obj/structure/chair/wood/normal{
+ dir = 4
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/maintenance/bar)
+"lpA" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"lsk" = (
+/obj/machinery/vending/autodrobe/all_access,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"ltK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"lva" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"lwN" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"lzX" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"lAB" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall,
+/area/science/circuit)
+"lAH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"lBy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/tank/internals/plasma,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
+"lBz" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/door/window/northleft{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"lCi" = (
+/obj/docking_port/stationary/public_mining_dock{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"lCo" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"lGV" = (
+/obj/machinery/button/door{
+ id = "maintdiy";
+ name = "Shutters Control Button";
+ pixel_x = -6;
+ pixel_y = 24
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"lHe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/obj/item/wrench,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"lHk" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "External Gas to Loop"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"lIY" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"lJC" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Three"
+ },
+/turf/open/floor/plating,
+/area/security/main)
+"lLa" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"lMg" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"lNH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"lPl" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/quartermaster/miningdock)
+"lPr" = (
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "applebush"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"lQG" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/circuit)
+"lRb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/range)
+"lSa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/theatre)
+"lUS" = (
+/obj/structure/table/wood/fancy/black,
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"lZl" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/gold,
+/obj/item/coin/gold,
+/obj/item/coin/gold,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"lZn" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "innerbrig";
+ name = "Brig Infirmary";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"lZs" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"lZK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/crew_quarters/fitness/pool)
+"mbP" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"mbU" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
+"mcp" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/security/range)
+"mdG" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"meb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/bed,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"mgF" = (
+/obj/structure/bed,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"mjr" = (
+/obj/structure/reagent_dispensers/keg/milk,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"mkv" = (
+/obj/machinery/camera{
+ c_tag = "Gravity Generator Room";
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"mkO" = (
+/obj/machinery/door/airlock{
+ name = "Shower Room"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/toilet)
+"mkU" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"mml" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/security/armory)
+"mnC" = (
+/obj/structure/target_stake,
+/obj/item/target/syndicate,
+/turf/open/floor/plating,
+/area/security/range)
+"mos" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_x = -27;
+ pixel_y = -27;
+ prison_radio = 1
+ },
+/obj/machinery/flasher{
+ id = "Cell 3";
+ pixel_x = -24;
+ pixel_y = -36
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/yellow,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"moD" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/bluecherrycupcake{
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"mps" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"mpI" = (
+/obj/structure/table/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
+ },
+/area/maintenance/bar)
+"mqh" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"mqZ" = (
+/obj/structure/reagent_dispensers/keg/aphro/strong,
+/obj/item/reagent_containers/glass/beaker,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"mrR" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"msM" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"mvt" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"mxn" = (
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Three"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/main)
+"myh" = (
+/obj/structure/musician/piano,
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"mzB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/window,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"mAH" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"mDB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
+"mGw" = (
+/obj/machinery/door/airlock/security{
+ name = "Labor Shuttle";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/security/range)
+"mHl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"mHU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/light_construct{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"mIZ" = (
+/obj/structure/falsewall,
+/turf/open/floor/plating,
+/area/security/prison)
+"mJo" = (
+/obj/structure/door_assembly/door_assembly_mai,
+/obj/item/electronics/airlock,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"mJG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"mKq" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"mNi" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"mNW" = (
+/obj/structure/sign/poster/official/fruit_bowl{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/primary/starboard)
+"mOB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Gravity Generator";
+ req_access_txt = "11"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/gravity_generator)
+"mPk" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm5";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"mPr" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/clothing/under/color/grey,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"mPE" = (
+/obj/machinery/chem_dispenser/drinks,
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"mQS" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"mRe" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"mRQ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"mTG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"mZO" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"naN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"nbT" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"nbY" = (
+/obj/item/melee/baton/cattleprod,
+/obj/item/stock_parts/cell/high,
+/obj/item/electropack,
+/obj/structure/closet/secure_closet{
+ name = "Persuasion Storage";
+ req_access = "list(2)"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ncF" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 5
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"ndq" = (
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"nez" = (
+/obj/structure/table/wood,
+/obj/item/instrument/piano_synth,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"nfm" = (
+/obj/machinery/vending/autodrobe,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"nfw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"ngs" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"ngU" = (
+/obj/structure/rack,
+/obj/item/storage/firstaid,
+/obj/item/clothing/glasses/hud/health,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ngV" = (
+/obj/structure/table/wood,
+/obj/item/instrument/guitar,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"nhY" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"nkP" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"nnp" = (
+/obj/structure/closet/secure_closet/medical1,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"noy" = (
+/obj/structure/sign/poster/contraband/smoke{
+ desc = "This poster reminds us all that the Detective is a parasite. Year after year, they must get replacement lungs because of their addiction. ";
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"noF" = (
+/obj/machinery/door/airlock{
+ name = "Instrument Storage"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/fore)
+"nss" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/door/window/northright{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"nsA" = (
+/turf/closed/wall,
+/area/crew_quarters/abandoned_gambling_den)
+"nuw" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"nxv" = (
+/obj/machinery/power/apc{
+ areastring = "/area/construction";
+ name = "Construction Area APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"nyb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/orange/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"nBI" = (
+/obj/item/cigbutt/cigarbutt,
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"nEj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"nEI" = (
+/obj/structure/closet/emcloset/anchored,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"nGf" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"nGt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"nLu" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"nLw" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"nQi" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"nRl" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_y = -24;
+ req_access_txt = "10"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"nRG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"nSt" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"nTG" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"nUV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"nVR" = (
+/obj/docking_port/stationary{
+ dir = 4;
+ dwidth = 1;
+ height = 4;
+ name = "escape pod loader";
+ roundstart_template = /datum/map_template/shuttle/escape_pod/default;
+ width = 3
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"nYe" = (
+/obj/structure/safe,
+/obj/item/clothing/head/bearpelt,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/gun/ballistic/revolver/nagant,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"nZE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"nZL" = (
+/obj/machinery/computer/arcade/minesweeper,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"oax" = (
+/obj/structure/table/wood/fancy,
+/obj/machinery/light,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"oby" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"oce" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"ocv" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/boxing/yellow,
+/obj/item/clothing/gloves/boxing/green,
+/obj/item/clothing/gloves/boxing/blue,
+/obj/item/clothing/gloves/boxing/blue,
+/obj/item/clothing/gloves/boxing,
+/obj/item/clothing/gloves/boxing,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"odx" = (
+/obj/machinery/vending/kink,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"ofU" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"ohq" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"okG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"okK" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_x = -27;
+ pixel_y = -27;
+ prison_radio = 1
+ },
+/obj/machinery/flasher{
+ id = "Cell 1";
+ pixel_x = -24;
+ pixel_y = -36
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/green,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"old" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/sign/departments/security{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"olr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"omX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"omY" = (
+/obj/item/flashlight/lamp/green{
+ pixel_x = -2;
+ pixel_y = 15
+ },
+/obj/structure/dresser{
+ desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too.";
+ name = "Dresser";
+ pixel_y = 7
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"oqj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"oqO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"osB" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"ouQ" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"ovv" = (
+/obj/structure/table,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/recharger,
+/obj/item/gun/energy/laser/practice,
+/obj/item/gun/energy/laser/practice,
+/turf/open/floor/plasteel,
+/area/security/range)
+"owT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/geiger_counter,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/suit/radiation,
+/obj/item/clothing/head/radiation,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"oxl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"oxm" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/flora/ausbushes/ppflowers,
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/structure/flora/ausbushes/brflowers,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/grass,
+/area/crew_quarters/bar)
+"oyl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/door/window/eastleft{
+ name = "Blue Corner"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"oyz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"oyX" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Air In"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"oAb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/bar)
+"oAB" = (
+/obj/structure/fireplace{
+ pixel_y = -6
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"oDb" = (
+/obj/effect/landmark/loneopspawn,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors)
+"oDm" = (
+/obj/machinery/gulag_teleporter,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"oDN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"oEe" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"oEZ" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"oHB" = (
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"oHU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"oIJ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"oIW" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
+"oKh" = (
+/obj/structure/chair/wood/normal{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"oLl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"oNz" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"oNQ" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
+"oRG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"oSl" = (
+/obj/machinery/door/airlock/security{
+ name = "Firing Range";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/security/range)
+"oTW" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/theatre)
+"oUh" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"oVo" = (
+/obj/structure/pool/ladder,
+/turf/open/pool,
+/area/crew_quarters/fitness/pool)
+"oXJ" = (
+/obj/structure/sign/warning/fire,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"oYj" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -26
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Fore";
+ dir = 1;
+ network = list("ss13","engine");
+ pixel_x = 23
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"oYS" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/power/rad_collector/anchored,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"oZl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/pjs,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/accessory/maidapron,
+/obj/item/clothing/accessory/maidapron,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"oZv" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"pem" = (
+/obj/machinery/button/door{
+ desc = "Bolts the doors to the Private Study.";
+ id = "PrivateStudy";
+ name = "Private Study Lock";
+ pixel_x = 25;
+ pixel_y = 25;
+ req_access_txt = "";
+ req_one_access_txt = "28;63"
+ },
+/turf/open/floor/wood,
+/area/library)
+"peI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"pgf" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
+"pgn" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"pjg" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"pkF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"plC" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"plS" = (
+/obj/machinery/door/window/brigdoor/security/cell{
+ id = "Cell 1";
+ name = "Cell 1"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"poc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"pou" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"pqe" = (
+/obj/structure/chair/sofa,
+/obj/structure/window{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"pqs" = (
+/obj/machinery/vending/clothing,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"psk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge/meeting_room)
+"pst" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/vault,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"puh" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/light/small,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
+"pzk" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"pAK" = (
+/obj/machinery/door/window/brigdoor/security/cell{
+ id = "Cell 3";
+ name = "Cell 3"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"pBd" = (
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"pBp" = (
+/obj/effect/landmark/event_spawn,
+/turf/closed/wall,
+/area/crew_quarters/fitness)
+"pDe" = (
+/obj/machinery/door/window/southright{
+ name = "Target Storage"
+ },
+/obj/item/target/alien,
+/obj/item/target/alien,
+/obj/item/target/syndicate,
+/turf/open/floor/plating,
+/area/security/range)
+"pHl" = (
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/storage/box/syringes,
+/obj/item/reagent_containers/glass/bottle/epinephrine{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = 8;
+ pixel_y = -3
+ },
+/obj/item/reagent_containers/syringe{
+ pixel_x = 6;
+ pixel_y = -3
+ },
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/sleeper)
+"pHH" = (
+/obj/machinery/door/airlock/external{
+ name = "Mining Dock Airlock";
+ req_access_txt = "48";
+ shuttledocked = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/miningdock)
+"pHO" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/contraband/fun_police{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"pIf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
+"pJR" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/library)
+"pLn" = (
+/obj/machinery/conveyor/inverted{
+ dir = 5;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"pPi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"pPs" = (
+/obj/structure/reflector/single/anchored{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"pPv" = (
+/obj/structure/sign/warning/radiation,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"pPI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"pQp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"pQr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"pQN" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"pRg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/closed/wall,
+/area/maintenance/aft)
+"pRs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"pRx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/turf/open/floor/plating,
+/area/engine/supermatter)
+"pRW" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"pSn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"pUy" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"qaY" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"qcm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/captain)
+"qeb" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/abandoned_gambling_den";
+ name = "Abandoned Gambling Den APC";
+ pixel_y = -24
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"qeA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Pool"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"qeF" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"qeQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"qfk" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/window,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"qfD" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ desc = "Privacy shutters for the Private Study. Stops people spying in on your game.";
+ id = "PrivateStudy1";
+ name = "Private Study Privacy Shutters"
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/wood,
+/area/library)
+"qiK" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"qje" = (
+/obj/structure/sign/mining{
+ pixel_y = 7
+ },
+/turf/closed/wall,
+/area/quartermaster/miningdock)
+"qmn" = (
+/obj/machinery/computer/libraryconsole/bookmanagement,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"qmG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"qqs" = (
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"qus" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/obj/item/reagent_containers/food/snacks/cheesynachos{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
+"qyj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/fore)
+"qzA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"qBi" = (
+/obj/structure/lattice,
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/captain)
+"qBq" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/camera{
+ c_tag = "Supermatter Chamber";
+ network = list("engine");
+ pixel_x = 23
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"qGd" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Gas to Cooling Loop"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"qIw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"qLR" = (
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
+"qOc" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/camera{
+ c_tag = "VR Sleepers";
+ dir = 1
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
+"qOB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/captain)
+"qTA" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"qTG" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/theatre)
+"qTV" = (
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-22"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"qVP" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"qWV" = (
+/obj/machinery/pool/filter{
+ pixel_y = 24
+ },
+/turf/open/pool,
+/area/crew_quarters/fitness/pool)
+"qXg" = (
+/obj/structure/chair/sofa/left,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"qXZ" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"rca" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/item/cartridge/atmos,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"rcD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/science/circuit)
+"rcI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 1";
+ name = "Cell 1 Locker"
+ },
+/obj/item/radio/headset{
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
+ name = "prisoner headset";
+ prison_radio = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"rdG" = (
+/obj/machinery/hydroponics/constructable,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
+"reA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/kink,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"rfW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/maintenance/disposal/incinerator)
+"rgx" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 4
+ },
+/obj/machinery/power/rad_collector/anchored,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"rhX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"rjH" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"rjQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"rmN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"rmX" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/beer,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"rnt" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/bridge/meeting_room)
+"roP" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"rqf" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"rqk" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"rqE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"rqW" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/dresser,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/theatre";
+ dir = 8;
+ name = "Theatre APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"rrM" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet/wardrobe/black,
+/obj/item/clothing/under/dress/skirt,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/under/custom/trendy_fit,
+/obj/item/clothing/under/custom/trendy_fit,
+/obj/item/clothing/under/dress/sundress,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"rtl" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/camera{
+ c_tag = "Bar Backroom"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"rtC" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ruo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"rvr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"rvC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"rvS" = (
+/obj/structure/chair/comfy/brown{
+ color = "#66b266";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"ryr" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"rAR" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"rBq" = (
+/obj/item/clothing/head/kitty,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/mask/muzzle,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"rBE" = (
+/obj/structure/ladder,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"rBP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"rCl" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "outerbrig";
+ name = "Brig";
+ req_access_txt = "63"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"rEB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/light,
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"rEJ" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"rGq" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"rGC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"rIA" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"rJv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"rJw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating/airless,
+/area/maintenance/port/fore)
+"rKP" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/construction)
+"rMN" = (
+/obj/structure/bed,
+/obj/item/tank/internals/anesthetic,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/semen,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"rNc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/computer/security/telescreen/toxins{
+ dir = 1;
+ network = list("toxins");
+ pixel_y = -28
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"rOg" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/engineering/glass/critical{
+ heat_proof = 1;
+ name = "Supermatter Chamber";
+ req_access_txt = "10"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"rPU" = (
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
+"rQJ" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"rQX" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/quartermaster/miningdock)
+"rTu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/command{
+ name = "Command Access To Vault";
+ req_access = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge/meeting_room)
+"rTD" = (
+/obj/machinery/vending/snack/random,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"rUG" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"rXl" = (
+/obj/structure/chair/office/light,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"saK" = (
+/obj/structure/closet/crate,
+/obj/item/target/alien,
+/obj/item/target/alien,
+/obj/item/target/clown,
+/obj/item/target/clown,
+/obj/item/target/syndicate,
+/obj/item/target/syndicate,
+/obj/item/gun/energy/laser/practice,
+/obj/item/gun/energy/laser/practice,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"saU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/engine_smes)
+"saX" = (
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/grass,
+/area/security/prison)
+"sci" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
+"seP" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"sfs" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"slk" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"snF" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 4
+ },
+/obj/machinery/power/rad_collector/anchored,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"spl" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/pipe_dispenser,
+/obj/item/flashlight,
+/obj/item/storage/toolbox/mechanical,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"spz" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"sqg" = (
+/obj/structure/table/wood,
+/obj/item/clothing/under/misc/pj/red,
+/obj/item/clothing/shoes/sneakers/white,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"sqp" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/command{
+ name = "Captain's Vault Access";
+ req_access_txt = "20"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/captain)
+"sra" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"srG" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"ssh" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"ssB" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"sth" = (
+/obj/structure/table/glass,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"str" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/crew_quarters/fitness/pool)
+"stF" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/yellow,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"svN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"swf" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 6
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"sxs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"syJ" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/theatre)
+"szG" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"sAk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"sAM" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/maintenance/bar)
+"sAQ" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"sCS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"sEi" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
+"sEt" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken7"
+ },
+/area/maintenance/bar)
+"sEM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"sFW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/sign/departments/restroom{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"sHx" = (
+/obj/structure/table,
+/obj/item/book/manual/hydroponics_pod_people{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/paper/guides/jobs/hydroponics{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"sJx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"sJI" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"sLa" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"sLj" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"sLv" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"sNK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"sOs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance/abandoned,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"sOA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"sPm" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Engine Coolant Bypass"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"sPT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"sPY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/engine_smes)
+"sRH" = (
+/obj/machinery/autolathe/secure{
+ name = "public autolathe"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"sRT" = (
+/obj/machinery/vending/cola/random,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"sSW" = (
+/obj/structure/chair/office/light,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"sTo" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"sTI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"sUh" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/closed/wall,
+/area/engine/atmos)
+"sVb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"sWR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/computer/bounty{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"sXl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"sXy" = (
+/obj/machinery/door/airlock/external{
+ name = "Security External Airlock";
+ req_access_txt = "63"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"sXA" = (
+/obj/machinery/vending/boozeomat/all_access,
+/turf/closed/wall,
+/area/maintenance/bar)
+"sXV" = (
+/turf/closed/wall/r_wall,
+/area/security/range)
+"sYC" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"sYR" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/bar)
+"sZN" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"tal" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/hallway/secondary/service)
+"taY" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"tcF" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"tgH" = (
+/obj/structure/filingcabinet/employment,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
+"thz" = (
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"tif" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"tkq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"tkB" = (
+/obj/structure/sign/poster/official/help_others{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"tkU" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
+ },
+/area/maintenance/bar)
+"tlu" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"tmO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"tqg" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"trb" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/courtroom)
+"ttL" = (
+/obj/structure/sign/poster/contraband/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"tur" = (
+/obj/item/restraints/handcuffs/fake,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"tvi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"twn" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Engine Room";
+ req_access_txt = "10"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"txm" = (
+/obj/structure/table/wood/fancy/royalblue,
+/obj/item/crowbar/red,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"tyX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"tzQ" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/soap,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
+"tAC" = (
+/obj/structure/closet/athletic_mixed,
+/obj/item/toy/poolnoodle/red,
+/obj/item/toy/poolnoodle/blue,
+/obj/item/toy/poolnoodle/yellow,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"tAH" = (
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"tAR" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"tCa" = (
+/obj/structure/table/wood,
+/obj/item/instrument/guitar{
+ pixel_x = -7
+ },
+/obj/item/instrument/eguitar{
+ pixel_x = 5
+ },
+/obj/item/instrument/violin,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"tCd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"tGG" = (
+/obj/structure/reflector/double/anchored{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"tHh" = (
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"tIV" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"tJi" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/closet/crate/wooden/toy,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/clown{
+ pixel_y = -32
+ },
+/obj/item/megaphone/clown,
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
+"tJK" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Gravity Generator";
+ req_access_txt = "11"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"tJS" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"tKb" = (
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plating,
+/area/security/vacantoffice/b)
+"tKk" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ icon_state = "roomnum";
+ name = "Room Number 1";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"tMj" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"tMl" = (
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/kitchen)
+"tNF" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"tOn" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"tOq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/mixing)
+"tPe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"tPT" = (
+/obj/machinery/chem_dispenser/drinks/beer,
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"tQY" = (
+/obj/machinery/atmospherics/components/binary/valve/digital/on{
+ dir = 4;
+ name = "Output Release"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"tRe" = (
+/obj/machinery/chem_master,
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"tRi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"tRB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"tRF" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"tWj" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"tXL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"tZe" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/sign/poster/official/pda_ad{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"uaw" = (
+/obj/machinery/power/apc{
+ areastring = "/area/storage/art";
+ dir = 1;
+ name = "Maint bar";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"ubj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/door/window/westright{
+ name = "Red Corner"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"ucq" = (
+/obj/structure/sign/poster/contraband/red_rum{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"uei" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ufD" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
+"uge" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Gas to Mix"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"ugu" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"uhm" = (
+/obj/machinery/door/airlock{
+ name = "Recharging Station"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ujv" = (
+/obj/structure/sign/departments/restroom,
+/turf/closed/wall,
+/area/crew_quarters/toilet)
+"ujF" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"ujS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"ulB" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"ulM" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/red,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"uml" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"unA" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"unR" = (
+/turf/open/floor/plasteel/yellowsiding{
+ dir = 8
+ },
+/area/crew_quarters/fitness/pool)
+"uoB" = (
+/obj/structure/table/reinforced,
+/obj/item/multitool,
+/obj/item/screwdriver,
+/obj/machinery/camera{
+ c_tag = "Circuitry Lab North";
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"uoG" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/detectives_office";
+ dir = 4;
+ name = "Detective's Office APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"uqX" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"usE" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/rack,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"usO" = (
+/obj/machinery/vending/snack/random,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"utp" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"uua" = (
+/obj/machinery/atmospherics/components/binary/valve,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"uut" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"uuG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"uvd" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
+"uve" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"uvZ" = (
+/obj/structure/mineral_door/wood,
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"uxY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/junction,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"uzi" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"uzs" = (
+/turf/open/floor/plasteel/yellowsiding{
+ dir = 4
+ },
+/area/crew_quarters/fitness/pool)
+"uAH" = (
+/turf/open/floor/plasteel/yellowsiding/corner{
+ dir = 8
+ },
+/area/crew_quarters/fitness/pool)
+"uBa" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/soda_cans/starkist{
+ pixel_x = 5;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"uBP" = (
+/obj/structure/reflector/box/anchored{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"uCo" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"uCU" = (
+/obj/machinery/door/airlock/security{
+ name = "Interrogation";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"uDO" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"uEx" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "PoolShut";
+ name = "Pool Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/fitness/pool)
+"uEI" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"uFp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/cohiba_robusto_ad{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"uFZ" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"uGI" = (
+/turf/open/floor/grass,
+/area/security/prison)
+"uHp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/main)
+"uIO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"uJx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/theatre)
+"uNu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"uOJ" = (
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/vault,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"uPT" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"uQS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1;
+ pixel_x = 5
+ },
+/obj/machinery/light/small,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"uRd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/engine/gravity_generator)
+"uRx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"uRS" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/carpet{
+ icon_state = "carpetsymbol"
+ },
+/area/crew_quarters/theatre)
+"uSC" = (
+/obj/machinery/pool/drain,
+/turf/open/pool,
+/area/crew_quarters/fitness/pool)
+"uSL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"uTe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"uUi" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"uVS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"uXt" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"vaW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"vbi" = (
+/obj/structure/table,
+/obj/item/instrument/guitar{
+ pixel_x = -7
+ },
+/obj/item/instrument/eguitar{
+ pixel_x = 5
+ },
+/obj/item/instrument/violin,
+/obj/item/instrument/trombone,
+/obj/item/instrument/saxophone,
+/obj/item/instrument/piano_synth,
+/obj/item/instrument/recorder,
+/obj/item/instrument/accordion,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"vbD" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "EVA Storage";
+ req_access_txt = "18"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
+"vcN" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"vda" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"vdu" = (
+/obj/structure/table/wood,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
+"veS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/fitness/pool)
+"vfX" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"vgJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/fore";
+ dir = 1;
+ name = "Fore Maintenance APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"vhb" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/locker)
+"viD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"viF" = (
+/obj/structure/table/wood,
+/obj/item/instrument/trumpet,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"vjm" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/rag,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"vmQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
+"vnu" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"vnI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/warehouse";
+ dir = 4;
+ name = "Cargo Warehouse APC";
+ pixel_x = 26
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"voa" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"vob" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/supermatter)
+"voW" = (
+/obj/structure/pool/Lboard,
+/turf/open/pool,
+/area/crew_quarters/fitness/pool)
+"vpY" = (
+/obj/structure/closet/lasertag/blue,
+/obj/item/clothing/under/misc/pj/blue,
+/obj/item/clothing/under/misc/pj/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"vqP" = (
+/obj/structure/bed/dogbed{
+ desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off.";
+ name = "pet bed"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"vsM" = (
+/obj/machinery/power/apc/auto_name/south,
+/obj/structure/cable,
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"vsT" = (
+/obj/structure/closet/crate,
+/obj/item/book/manual/wiki/telescience,
+/obj/item/book/manual/wiki/engineering_guide,
+/obj/item/book/manual/wiki/engineering_construction,
+/obj/item/book/manual/wiki/atmospherics,
+/obj/item/book/manual/wiki/detective,
+/obj/item/book/manual/wiki/tcomms,
+/obj/item/book/manual/wiki/engineering_singulo_tesla,
+/obj/item/book/manual/wiki/experimentor,
+/obj/item/book/manual/wiki/research_and_development,
+/obj/item/book/manual/wiki/robotics_cyborgs,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/medicine,
+/obj/item/book/manual/wiki/medical_cloning,
+/obj/item/book/manual/wiki/infections,
+/obj/item/book/manual/ripley_build_and_repair,
+/obj/item/book/manual/hydroponics_pod_people,
+/obj/item/book/manual/wiki/toxins,
+/obj/item/book/manual/wiki/grenades,
+/obj/item/book{
+ desc = "An undeniably handy book.";
+ icon_state = "bookknock";
+ name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"
+ },
+/turf/open/floor/wood,
+/area/library)
+"vwZ" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"vxh" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"vxV" = (
+/obj/structure/reflector/single/anchored{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"vxX" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"vyp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/crew_quarters/dorms)
+"vyK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"vzp" = (
+/obj/structure/table/reinforced,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/item/stock_parts/cell/high,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"vzO" = (
+/obj/structure/chair/wood/normal{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/maintenance/bar)
+"vAi" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"vAl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/camera{
+ c_tag = "Pool East";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"vBa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge/meeting_room)
+"vCa" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"vCb" = (
+/obj/machinery/rnd/production/techfab/department/service,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"vCn" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"vCt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"vCy" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard/fore";
+ dir = 1;
+ name = "Starboard Bow Maintenance APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"vEc" = (
+/obj/machinery/power/supermatter_crystal/engine,
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"vEi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"vEp" = (
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"vFr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"vGn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Prisoner Processing";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"vHj" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Cryogenics "
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/cryopod)
+"vHx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"vHz" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"vHT" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/departments/evac{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"vHY" = (
+/turf/open/floor/plating,
+/area/science/mixing)
+"vIi" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/range";
+ dir = 4;
+ name = "Firing Range APC";
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/range)
+"vIo" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Brig East";
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"vJu" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"vLo" = (
+/obj/structure/closet/secure_closet/chemical,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"vLM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"vOF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"vOU" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/nuke_storage)
+"vPs" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"vPE" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"vTP" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"vUs" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Gas"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"vZA" = (
+/obj/structure/cable,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+"vZR" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/library)
+"wag" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"wbd" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"wbE" = (
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"wcB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
+"wcR" = (
+/turf/open/floor/plasteel/yellowsiding/corner,
+/area/crew_quarters/fitness/pool)
+"wdr" = (
+/obj/machinery/door/window/southleft{
+ name = "Target Storage"
+ },
+/obj/item/target/clown,
+/obj/item/target/clown,
+/obj/item/target,
+/obj/item/target,
+/turf/open/floor/plating,
+/area/security/range)
+"wfR" = (
+/obj/item/electropack/shockcollar,
+/obj/item/assembly/signaler,
+/turf/open/floor/plating,
+/area/maintenance/bar)
+"wgZ" = (
+/obj/structure/cable,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"wig" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"wje" = (
+/obj/structure/rack,
+/obj/item/instrument/banjo,
+/obj/item/instrument/harmonica,
+/obj/item/instrument/accordion,
+/obj/item/instrument/recorder,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"wjz" = (
+/obj/structure/table,
+/obj/item/pipe_dispenser,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"wkN" = (
+/turf/closed/wall,
+/area/science/circuit)
+"wlf" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Engine Room";
+ req_access_txt = "10"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"wlI" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/main)
+"woR" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cryopod)
+"wph" = (
+/obj/docking_port/stationary{
+ area_type = /area/construction/mining/aux_base;
+ dheight = 4;
+ dir = 8;
+ dwidth = 4;
+ height = 9;
+ id = "aux_base_zone";
+ name = "aux base zone";
+ roundstart_template = /datum/map_template/shuttle/aux_base/default;
+ width = 9
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"wql" = (
+/obj/structure/extinguisher_cabinet,
+/turf/closed/wall/r_wall,
+/area/hallway/primary/central)
+"wqF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"wrp" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"wun" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"wvX" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light,
+/obj/item/stack/sheet/metal/ten,
+/turf/open/floor/plasteel/white,
+/area/science/circuit)
+"wxT" = (
+/obj/structure/chair/sofa/left,
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"wzX" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"wAh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"wAN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"wBd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall,
+/area/hallway/secondary/service)
+"wHk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"wHz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"wHT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"wIY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"wKe" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "maintdiy";
+ name = "Security Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
+"wKZ" = (
+/turf/open/floor/engine,
+/area/engine/engineering)
+"wLY" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"wQg" = (
+/obj/structure/pool/ladder{
+ dir = 2;
+ pixel_y = 24
+ },
+/turf/open/pool,
+/area/crew_quarters/fitness/pool)
+"wTf" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"wUg" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"wUr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet,
+/area/crew_quarters/theatre)
+"wUY" = (
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"wWu" = (
+/turf/open/openspace/icemoon,
+/area/icemoon/surface/outdoors)
+"wWT" = (
+/obj/effect/landmark/start/roboticist,
+/turf/open/floor/plasteel/white,
+/area/science/robotics/lab)
+"wWW" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/yellow,
+/obj/machinery/button/door{
+ id = "PoolShut";
+ name = "Pool Shutters";
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"wXl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/camera{
+ c_tag = "Pool West";
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"wYc" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"wZI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/heads/captain)
+"xal" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"xaB" = (
+/obj/structure/closet/athletic_mixed,
+/obj/item/toy/poolnoodle/red,
+/obj/item/toy/poolnoodle/blue,
+/obj/item/toy/poolnoodle/yellow,
+/obj/machinery/button/door{
+ id = "PoolShut";
+ name = "Pool Shutters";
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"xaS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"xbn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/item/coin/gold,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"xfY" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"xgk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"xgC" = (
+/obj/machinery/power/apc{
+ areastring = "/area/engine/gravity_generator";
+ dir = 8;
+ name = "Gravity Generator APC";
+ pixel_x = -25;
+ pixel_y = 1
+ },
+/obj/structure/table,
+/obj/item/paper/guides/jobs/engi/gravity_gen,
+/obj/item/pen/blue,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"xgF" = (
+/obj/structure/chair/stool/bar,
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
+ },
+/area/maintenance/bar)
+"xhS" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"xhV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"xib" = (
+/obj/machinery/door/window/westleft{
+ base_state = "right";
+ icon_state = "right";
+ name = "Unisex Showers"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
+"xiw" = (
+/obj/machinery/door/airlock{
+ name = "Service Hall";
+ req_one_access_txt = "25;26;35;28"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/service)
+"xkd" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"xmo" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"xmS" = (
+/obj/structure/chair/comfy/beige{
+ dir = 8
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"xnm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"xol" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"xqG" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/starkist{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"xrc" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
+"xrN" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"xtP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"xuz" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"xxi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"xxp" = (
+/turf/open/floor/plating,
+/area/security/range)
+"xzv" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"xAk" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"xAv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"xBk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 23
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"xBw" = (
+/obj/structure/closet/wardrobe/cargotech,
+/obj/item/radio/headset/headset_cargo,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"xDM" = (
+/obj/machinery/camera{
+ c_tag = "Locker Room South";
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"xEu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
+"xEB" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/nuke_storage";
+ dir = 1;
+ name = "Vault APC";
+ pixel_y = 25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/circuit,
+/area/ai_monitored/nuke_storage)
+"xEC" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"xEE" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/vending/wardrobe/curator_wardrobe,
+/turf/open/floor/carpet,
+/area/library)
+"xGQ" = (
+/obj/structure/sign/plaques/golden{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/security/armory)
+"xIa" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/grille_or_trash,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"xJV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
+"xJW" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Security Maintenance";
+ req_access_txt = "1"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/main)
+"xJY" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
+ dir = 8
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"xOx" = (
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"xPk" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm6";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
+"xPY" = (
+/obj/structure/table/wood,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/instrument/trombone,
+/turf/open/floor/wood,
+/area/crew_quarters/theatre)
+"xSW" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/security/armory)
+"xTe" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/ai_monitored/security/armory)
+"xTy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/engine/gravity_generator)
+"xUe" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison)
+"xUL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/obj/machinery/camera/motion{
+ c_tag = "Vault";
+ dir = 1;
+ network = list("vault")
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/nuke_storage)
+"xUX" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/rack,
+/obj/item/storage/box/zipties{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/item/storage/box/zipties{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"xWq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"xXi" = (
+/obj/machinery/vending/clothing,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"xZD" = (
+/obj/structure/closet/lasertag/red,
+/obj/item/clothing/under/misc/pj/red,
+/obj/item/clothing/under/misc/pj/red,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"xZL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness/pool)
+"ycd" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
+"ycu" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/science/circuit)
+"ycY" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
+"yds" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ydD" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/suit_storage_unit/rd,
+/turf/open/floor/plasteel,
+/area/science/mixing)
+"ydM" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"yhx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/security/brig)
+"yhz" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"ykN" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/turf/open/floor/plating/snowed/smoothed/icemoon,
+/area/icemoon/surface/outdoors)
+
+(1,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(2,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(3,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(4,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(5,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(6,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(7,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(8,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(9,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(10,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(11,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(12,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(13,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(14,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(15,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(16,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(17,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(18,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(19,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(20,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(21,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(22,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(23,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(24,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(25,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(26,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(27,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(28,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(29,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aud
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+auC
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(30,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(31,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(32,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(33,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+auj
+crk
+aBM
+aBM
+aBM
+crk
+crk
+crk
+crk
+crk
+aBM
+aBM
+aBM
+crk
+auj
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(34,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+crk
+aBM
+crk
+crk
+aBM
+crk
+crk
+aBM
+arB
+asE
+cyb
+asE
+arB
+aBM
+aBM
+crk
+crk
+crk
+crk
+crk
+aBM
+aBM
+arB
+asE
+cyb
+asE
+arB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(35,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+auO
+auP
+cwT
+aAC
+aBM
+aBM
+crk
+crk
+crk
+crk
+crk
+aBM
+aBM
+aAC
+auO
+auP
+cxY
+arB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(36,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+avP
+iEJ
+asE
+arB
+aBM
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+aBM
+arB
+asE
+iEJ
+avP
+arB
+aBM
+aBM
+aBM
+aBM
+aBM
+arB
+arB
+arB
+arB
+aAC
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(37,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+fpI
+ayk
+awW
+aAD
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+awW
+awW
+aQG
+aRX
+arB
+aBM
+aBM
+aBM
+aBM
+aBM
+arB
+awZ
+ayk
+awW
+aAD
+awW
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(38,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+awZ
+ayl
+azy
+auP
+cIh
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+azy
+auP
+cIh
+ayl
+aRY
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+awW
+awZ
+ayl
+beK
+auP
+cyt
+avb
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(39,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+awZ
+ayk
+awW
+awW
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+awW
+awW
+awV
+aRY
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+awW
+awZ
+ayk
+awW
+awW
+awW
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(40,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+apJ
+apN
+apN
+apN
+apN
+wph
+apN
+apN
+apN
+apN
+apJ
+awZ
+cqr
+azz
+aAF
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+aOf
+azz
+aPu
+aRY
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+awW
+awZ
+aym
+azz
+aAF
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(41,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+awZ
+aIK
+ayl
+aAE
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+aOe
+ayl
+ayl
+aRY
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+awW
+awZ
+ayl
+ayl
+aAE
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(42,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+awZ
+aIK
+ayl
+aAH
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+aOh
+ayl
+jHh
+aRY
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+awW
+awZ
+ayl
+ayl
+bgi
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(43,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+awZ
+cry
+azA
+aAG
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+aOg
+azA
+aQH
+aRY
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+awW
+awZ
+ayn
+azA
+bgh
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(44,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+apJ
+apN
+apN
+apN
+apN
+lCi
+apN
+apN
+apN
+apN
+apJ
+awZ
+crz
+awW
+awW
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+awW
+awW
+awV
+aRY
+awW
+aBM
+aBM
+aBM
+aBM
+aBM
+awW
+awZ
+ayk
+awW
+awW
+awW
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(45,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+apJ
+apJ
+apJ
+ajZ
+asF
+atp
+asF
+asF
+asF
+asF
+apJ
+axh
+aIK
+azy
+auP
+cIh
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+azy
+auP
+cIh
+ayl
+aRY
+awW
+aBM
+crk
+auS
+crk
+aBM
+awW
+awZ
+ayl
+beL
+auP
+cyu
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(46,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+apJ
+asH
+atI
+atI
+arE
+ayq
+ayq
+auc
+avp
+axI
+ayp
+awW
+aAD
+awW
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+awW
+awW
+awW
+aQG
+aRX
+arB
+aBM
+aWa
+aXI
+awW
+aBM
+arB
+awY
+ayk
+awW
+aAD
+awW
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(47,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+asF
+asI
+auQ
+auQ
+auQ
+auQ
+aCX
+aub
+aLu
+axH
+ayo
+azB
+awW
+aBM
+crk
+crk
+crk
+auA
+crk
+crk
+crk
+aBM
+awW
+aPt
+aPu
+aRY
+arB
+awW
+awW
+auP
+awW
+awW
+arB
+awZ
+aym
+fOI
+awW
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(48,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+apJ
+asJ
+cTE
+avQ
+axc
+aCT
+atb
+aIH
+apJ
+clB
+aIK
+azC
+arB
+arB
+arB
+awW
+awW
+awW
+awW
+awW
+arB
+arB
+arB
+aPv
+ayl
+aRZ
+asE
+aAF
+awW
+cyl
+awW
+baF
+asE
+bbb
+ayl
+beN
+arB
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(49,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+axG
+aIK
+aym
+aAI
+aBH
+azz
+azz
+azz
+azz
+azz
+azz
+aLv
+aBH
+azz
+aPu
+ayl
+ayl
+aNh
+aym
+azz
+ayl
+azz
+aPu
+ayl
+aIK
+ayl
+beM
+aAC
+crk
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(50,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+alU
+atJ
+amC
+aKf
+bEJ
+axb
+ayr
+azD
+aAJ
+azD
+aCp
+aEz
+aFG
+aHu
+ayl
+ayl
+ayl
+aNb
+ayl
+ayl
+ayl
+ayl
+aTr
+aUM
+ayl
+ayl
+aWc
+baG
+ayl
+aIK
+ayl
+beM
+arB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(51,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+alU
+alU
+alU
+aCW
+amC
+asK
+alU
+alU
+atO
+alU
+alU
+aBI
+aBI
+aBI
+aBI
+aBI
+aNh
+aKj
+aLw
+aLw
+aLw
+aLw
+aQI
+aNh
+czK
+czK
+czK
+czK
+aXX
+czK
+czK
+bbc
+beO
+beO
+beO
+beO
+beO
+beO
+beO
+beO
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(52,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+oDb
+ayF
+ayF
+ayF
+ayF
+aqJ
+amC
+gLH
+ase
+avq
+aum
+avq
+avq
+cwH
+avq
+aAj
+aBK
+aCL
+aEG
+aFI
+aBI
+aIM
+aKk
+aLy
+aNd
+aOj
+aPx
+aQJ
+ayl
+czK
+aUO
+aUy
+aWm
+aWf
+vdu
+czK
+bhN
+bcl
+beQ
+pLn
+bhI
+bjb
+bkz
+blS
+bnv
+wWu
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(53,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+alU
+alU
+alU
+asc
+atn
+aLt
+aue
+aue
+aue
+aue
+aAe
+aBJ
+aCs
+aEE
+aFH
+aGZ
+aIJ
+aJX
+aLi
+aMO
+aNR
+aOY
+aQl
+bcD
+aTs
+aUN
+baH
+aWi
+aXY
+baH
+aTs
+bbd
+beO
+beP
+bgj
+beO
+bja
+beO
+bja
+bja
+wWu
+wWu
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(54,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+apL
+aqK
+alU
+asc
+atq
+aon
+amC
+axe
+ays
+alU
+auT
+aBI
+aCY
+aEI
+aFK
+aHy
+aIM
+aKk
+aLz
+aNe
+aNe
+aLz
+aQo
+aSb
+czK
+aUQ
+aUA
+aWr
+aXZ
+aUQ
+czK
+bbe
+beO
+beS
+bgj
+bhJ
+bjd
+bkB
+cAI
+bja
+wWu
+wWu
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayB
+ayB
+ayB
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(55,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+alU
+alU
+apM
+aqL
+alU
+asc
+atq
+auX
+avS
+amC
+amC
+alU
+auT
+aBI
+aDc
+aEH
+bxM
+aHa
+aIL
+aJY
+aLj
+aMP
+aMP
+aPa
+aQn
+ayl
+czK
+aUO
+aUO
+aXL
+aXZ
+aUO
+czK
+bbe
+beO
+beR
+bgj
+bgj
+bjc
+cAF
+cAF
+bja
+wWu
+wWu
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(56,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+aAM
+ayB
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+aoS
+amC
+aom
+ank
+asc
+atq
+auZ
+bsU
+axf
+amC
+alU
+auT
+aBI
+aDf
+aEK
+aFM
+aHy
+ayl
+aKk
+aLA
+xmS
+aNf
+aLA
+aQD
+aSd
+czK
+aUQ
+aUW
+aXL
+aXZ
+baJ
+czK
+bbe
+beO
+beU
+bgk
+bhL
+bjc
+cAF
+blV
+beO
+wWu
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+chJ
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(57,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBD
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+anO
+ayF
+ayF
+ayF
+atl
+ayF
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+aoR
+apO
+aqM
+arF
+asc
+atq
+auY
+amC
+amC
+ayt
+alU
+aAw
+aBl
+aCZ
+aEJ
+aFL
+aBI
+aIO
+aKk
+asE
+asE
+asE
+asE
+aQD
+ayl
+czK
+aUl
+aUR
+aWs
+aXZ
+aUQ
+czK
+bbf
+beT
+beT
+bdQ
+beZ
+bje
+bkC
+cAJ
+beO
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayB
+ayB
+ayB
+ayB
+ayF
+ayF
+ayF
+hrF
+ayF
+ayF
+ayF
+ayB
+ayB
+aAM
+ayB
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(58,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBD
+ayF
+ads
+adS
+aeG
+ayF
+ads
+adS
+aeG
+ayF
+ads
+adS
+aeG
+ayF
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+aoT
+amC
+aqO
+arG
+asc
+atq
+ava
+amC
+axg
+ayu
+azF
+azF
+azF
+azF
+azF
+azF
+azF
+aIQ
+aKk
+aLC
+aNg
+aOk
+aPy
+aRd
+aRM
+aTt
+aUm
+aUm
+aWt
+aYd
+aZn
+aTt
+bbg
+bdG
+bdu
+bdT
+beO
+bjf
+beO
+beO
+beO
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+hrF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(59,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBD
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+alU
+alU
+alU
+arG
+ash
+atq
+alU
+alU
+alU
+alU
+azF
+aAP
+aAP
+aAP
+aEF
+aFN
+azF
+aIP
+aKl
+aLB
+aLB
+aLB
+aLB
+aQK
+aSe
+czK
+aUQ
+aUQ
+aXN
+aUO
+aUQ
+czK
+bcI
+aPz
+bdt
+bdR
+aSg
+aYf
+bkD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+cca
+cca
+cca
+cca
+cca
+ayF
+csZ
+ayF
+cca
+cca
+cca
+cca
+cca
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(60,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBD
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+aoX
+arI
+asi
+atr
+atN
+atN
+atN
+ayi
+azq
+aAK
+aBv
+aDa
+aAQ
+aAQ
+azF
+aIR
+ayl
+ayl
+aNi
+ayl
+ayl
+ayl
+aSf
+czK
+czK
+czK
+czK
+czK
+czK
+czK
+aPz
+aPz
+bdB
+aWv
+aTu
+bjg
+bkD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+ccc
+ccX
+ccX
+ccX
+ccX
+vZA
+crk
+uDO
+cjH
+cjH
+cjH
+cjH
+cnl
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(61,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+amC
+arH
+atP
+auV
+auV
+auV
+axK
+ayh
+azi
+aAx
+aBm
+aAQ
+aAQ
+aAQ
+azF
+azF
+azF
+aLD
+aNh
+aNh
+aPz
+aPz
+aPz
+aPz
+aSg
+aWj
+aXP
+aZr
+baL
+bbI
+bcK
+aPz
+bdB
+aWv
+bfh
+aPz
+aPz
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+ccb
+ccb
+ccb
+ccb
+ccb
+ayF
+vPs
+ayF
+ccb
+ccb
+ccb
+ccb
+ccb
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(62,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayB
+ayB
+ayF
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ads
+adu
+aeG
+ayF
+ayF
+ayF
+ajV
+alR
+alR
+alR
+alR
+alU
+alU
+alU
+aqP
+arJ
+alU
+atQ
+ats
+atV
+atO
+asK
+azF
+aAT
+aBw
+aDg
+aAQ
+aAQ
+aHz
+aIS
+aKn
+aLF
+aLF
+aLF
+aPz
+aQL
+aSg
+aSg
+aSg
+aWl
+aSg
+aZs
+baN
+bbK
+bcM
+bdH
+bdD
+bea
+bfq
+bji
+bkF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+hrF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(63,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ajV
+ajV
+ajV
+alQ
+amy
+ang
+alR
+aoj
+amC
+apP
+amC
+arH
+alU
+ats
+atS
+ats
+atO
+asK
+azF
+aAS
+aFP
+aAQ
+aAQ
+aAQ
+aAQ
+aAQ
+aKm
+aLE
+aNj
+aLE
+aPz
+aPz
+aPz
+aTu
+aUS
+aWk
+aWk
+aWk
+baM
+bbJ
+bcL
+aWk
+bdC
+bdZ
+bhO
+bjh
+bkE
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+cca
+cca
+cca
+cca
+cca
+ayF
+csZ
+ayF
+cca
+cca
+cca
+cca
+cca
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(64,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+abX
+jIs
+jIs
+vZA
+crk
+uDO
+jIs
+vZA
+crk
+uDO
+jIs
+vZA
+crk
+uDO
+jIs
+ajW
+akB
+alh
+alT
+amA
+ani
+anI
+aol
+aol
+aol
+aol
+arL
+alU
+atR
+atQ
+atV
+atO
+asK
+azF
+aAU
+aBG
+aAQ
+aAQ
+aAQ
+aAQ
+aAQ
+aKn
+aLE
+aNl
+aOm
+aPB
+aQM
+aQM
+aTv
+aUT
+aPz
+aXQ
+aXQ
+aXQ
+aXQ
+aPz
+aPz
+epC
+aPz
+bhQ
+bjj
+bkF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+ccc
+ccX
+ccX
+ccX
+ccX
+vZA
+crk
+uDO
+cjH
+cjH
+cjH
+cjH
+cnl
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(65,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ajV
+ajV
+ajV
+alS
+amz
+anh
+anH
+amC
+aok
+anJ
+aFJ
+arK
+alU
+alU
+ali
+alU
+atO
+asK
+azF
+aAP
+aAP
+aAP
+aAQ
+aFO
+aHA
+aIT
+azF
+aLG
+aNk
+aOl
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+aXQ
+aZt
+aXQ
+ycd
+aPz
+omY
+cMS
+gQX
+bhQ
+bjj
+bkF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+ccb
+ccb
+ccb
+ccb
+ccb
+ayF
+vPs
+ayF
+ccb
+ccb
+ccb
+ccb
+ccb
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(66,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+aAM
+ayB
+ayF
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ayF
+ayF
+ajV
+alR
+alR
+alR
+alR
+amC
+aom
+apP
+amC
+arN
+amC
+amC
+amC
+amC
+axi
+asK
+azF
+azF
+azF
+azF
+aEL
+azF
+azF
+azF
+azF
+aLE
+aNm
+aOl
+aPA
+aQO
+aSh
+aTw
+aUU
+aWn
+aXQ
+aZv
+aXQ
+bbL
+aPz
+bdJ
+txm
+bgr
+iwB
+hew
+bkF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aAM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+hrF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(67,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+alF
+anj
+anJ
+aoU
+alU
+amC
+arM
+alU
+avc
+asO
+avV
+atO
+ayw
+atN
+aAV
+aBQ
+aDh
+aDo
+aFQ
+aHe
+aIN
+aKp
+aLE
+aNm
+aOl
+aPA
+aQN
+aQN
+aQN
+aUn
+aTy
+aWy
+aYe
+bbq
+aZw
+aPz
+bct
+bfa
+gfr
+bhQ
+bjk
+bkE
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+cca
+cca
+cca
+cca
+cca
+ayF
+csZ
+ayF
+cca
+cca
+cca
+cca
+cca
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(68,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+alF
+anl
+amC
+alU
+alU
+amC
+alU
+alU
+apP
+alU
+alU
+atP
+auV
+axK
+aAN
+aBL
+aDd
+aDd
+aFR
+aDd
+aDd
+aJZ
+aLk
+aNo
+aOo
+aPA
+aQS
+aQN
+aSV
+aUo
+aUX
+aXp
+baO
+aZo
+baw
+aPz
+hPs
+cBn
+bgs
+hnl
+bjk
+bkF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+avd
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+avT
+aBM
+aBM
+aBM
+ayF
+ayB
+ayF
+ccc
+ccX
+ccX
+ccX
+ccX
+vZA
+crk
+uDO
+cjH
+cjH
+cjH
+cjH
+cnl
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(69,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ads
+crE
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+alU
+ank
+alU
+alU
+alU
+amC
+amC
+amC
+arN
+alU
+avW
+amC
+ayx
+atO
+aAL
+aBQ
+aDb
+aDo
+aFY
+aDo
+aDo
+aKp
+aLE
+aLE
+aOn
+aPA
+aQP
+aQN
+aTB
+aUt
+aWo
+aXQ
+aXQ
+aXQ
+aXQ
+aPz
+aPz
+aPz
+aPz
+bhQ
+bjk
+aPz
+aBM
+aBM
+boI
+bqi
+brJ
+boI
+brJ
+bvS
+boI
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+avU
+ayF
+ayF
+crk
+ayF
+ayB
+ayF
+ccb
+ccb
+ccb
+ccb
+ccb
+ayF
+vPs
+ayF
+ccb
+ccb
+ccb
+ccb
+ccb
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(70,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+crG
+aeG
+ayF
+ads
+crG
+aeG
+ayF
+ads
+crG
+aeG
+ayF
+ayB
+ayF
+ayF
+ayF
+alU
+amD
+anm
+amC
+amC
+ali
+amC
+alU
+asO
+atL
+alU
+avX
+axf
+amC
+atO
+aAY
+aBQ
+aDl
+bxk
+aDo
+aDo
+aIX
+gCC
+aLE
+aLE
+aOp
+aPA
+aQR
+aQN
+aQN
+aUt
+aWq
+aQN
+aQN
+aQN
+aQN
+vhb
+bbO
+aPA
+bgt
+bhS
+bjk
+aPz
+aBM
+aBM
+blW
+bqj
+brK
+blW
+brK
+bvT
+blW
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+oDb
+avU
+ayF
+ayF
+ayF
+ayF
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+hrF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(71,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+ayF
+ayF
+ayF
+alU
+amC
+amC
+amC
+amC
+ali
+amC
+alU
+alU
+alU
+alU
+alU
+axj
+alU
+atO
+aAY
+aBQ
+aDk
+aDo
+aDo
+aDo
+aIW
+aBQ
+aLE
+aLE
+aOl
+aPC
+aQN
+aQN
+aTz
+aUp
+ubj
+aXr
+aZx
+aQN
+aQN
+cBh
+bdL
+aPA
+bgt
+bhR
+bjk
+aZE
+blW
+blW
+blW
+bqi
+cyD
+blW
+cyD
+bvS
+blW
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+avU
+ayF
+ayF
+ayF
+ayF
+ayB
+ayB
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+hrF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+ayB
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(72,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayB
+ayB
+ayB
+ayB
+ayB
+ayF
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayF
+ayF
+ayF
+alU
+amE
+ann
+amC
+amC
+alU
+amC
+alU
+arN
+atU
+alU
+atU
+amC
+atJ
+atO
+aAY
+aBQ
+aDn
+aDo
+aDo
+aHD
+aIZ
+aBQ
+aLE
+aLE
+aOq
+aPD
+aQT
+aQN
+aTC
+aUs
+aUY
+aXv
+aYS
+aQN
+aQN
+vhb
+bbO
+aPA
+aSg
+bhT
+bjk
+aZE
+blY
+bnw
+boJ
+bql
+brL
+btr
+bnw
+bvV
+blW
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+avU
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cfx
+chO
+cfx
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(73,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+oDb
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+alU
+alU
+ank
+alU
+alU
+amC
+amC
+amC
+amC
+alU
+avc
+amC
+atJ
+atO
+aAY
+aBQ
+aDm
+aDo
+aDo
+aDo
+aIY
+gCC
+aLE
+aLE
+aOl
+aPA
+pqs
+aQN
+aTC
+aUs
+mTG
+aXt
+ijG
+aQN
+aQN
+aPA
+aPA
+aPA
+bel
+bfI
+bgq
+bhY
+bkj
+bqm
+bqm
+bps
+bjr
+bjr
+buB
+bvU
+aZE
+ayF
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+bVx
+caf
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cfx
+chN
+cfx
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(74,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+amF
+alU
+amC
+alU
+alU
+alU
+alU
+amC
+amC
+alU
+atM
+axl
+auV
+azG
+aAY
+aBQ
+aDp
+aDo
+aFU
+aDo
+aJb
+aKp
+aLE
+aLE
+aOl
+aPE
+aQV
+aQN
+aTC
+aUu
+gxc
+aXt
+ijG
+aQN
+aQN
+aZB
+aPA
+bfc
+bew
+bfM
+bjl
+bkG
+bkp
+bmj
+bjt
+cCo
+bjt
+bjt
+biq
+bvV
+blW
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+lPl
+rQX
+lPl
+ayF
+ayF
+ayF
+bCq
+bCq
+bCq
+bLv
+bCq
+ayF
+cbj
+crk
+crk
+crk
+ayF
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+cfx
+cfx
+cyK
+cfx
+cfx
+ayF
+ayF
+oDb
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(75,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alU
+alU
+alU
+amC
+alU
+crk
+rJw
+arO
+amC
+amC
+avc
+atO
+axk
+ayy
+ayy
+aAO
+aBN
+aDe
+aDe
+aFT
+aDe
+aIU
+aKa
+aLH
+aLE
+aOl
+aPA
+aiB
+aQN
+nLw
+sLa
+oyl
+aXw
+qfk
+aQN
+aQN
+aZA
+aPA
+aWv
+aYb
+aZE
+aZE
+aZE
+bkn
+bmh
+bjr
+bmb
+bjr
+bjr
+buC
+bvV
+blW
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bxy
+bxy
+pHH
+bxy
+bxy
+ayF
+ayF
+bCq
+ajD
+bCq
+bSn
+bCq
+bCq
+cbj
+bLv
+bXv
+bLv
+ayF
+bCq
+cAy
+cAB
+ajG
+cAD
+cAH
+cfw
+cgA
+chP
+ciQ
+cfw
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(76,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+anK
+ali
+ayF
+alU
+rJw
+alU
+atW
+atW
+atO
+axn
+alU
+aoX
+atJ
+aBQ
+aDq
+aDo
+aFZ
+aHE
+aJc
+aKs
+aLK
+aLK
+aOr
+aPA
+aQX
+aQN
+aSi
+aUv
+aWp
+aTy
+aTy
+aTy
+aTy
+bbs
+bcw
+bfd
+bgw
+aZE
+bjn
+bjr
+bkt
+bmh
+boK
+bpz
+boK
+bjr
+bkt
+bvV
+blW
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bxy
+vCa
+avl
+vCa
+bxy
+ayF
+ayF
+bCq
+bHE
+bJP
+bHE
+bJP
+bCq
+cbk
+bLv
+bHE
+bLv
+ayF
+bCq
+cAA
+bHE
+bHE
+ccZ
+cAK
+cfw
+cgC
+chR
+ciS
+cfw
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(77,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+aKY
+ali
+ayF
+ayF
+ayF
+alU
+ali
+ali
+atO
+axo
+ayz
+ayz
+ayz
+aBR
+aBR
+aBR
+aBR
+aBR
+aBR
+aBR
+aLm
+aLE
+aOl
+aPA
+vJu
+aQN
+aTD
+ocv
+aUZ
+aYU
+aYU
+aYU
+aYU
+aYU
+bcu
+bfe
+aYb
+aZE
+bjm
+bjr
+bjr
+bmh
+boK
+bjr
+boK
+bjr
+bjr
+bvV
+bxu
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bxy
+juQ
+gzv
+byE
+bxy
+ayF
+ayF
+bCq
+bHE
+bHE
+bHE
+bHE
+bCq
+bVy
+bLv
+cyE
+bLv
+bLv
+bCq
+bHE
+cAC
+ccZ
+cAE
+ceV
+cfw
+cgB
+chQ
+ciR
+cfw
+crk
+crk
+crk
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(78,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+ali
+amC
+alU
+alU
+alU
+ayF
+ayF
+ayF
+crk
+avY
+axo
+arP
+fgG
+rqW
+aGD
+tJi
+aCr
+hcb
+qTG
+hcb
+aKu
+aLM
+aLF
+aOs
+aPG
+aPG
+aPG
+aPG
+aPG
+lip
+aQW
+aQW
+aQW
+aQW
+xDM
+aPA
+jxF
+aYb
+aZE
+bjp
+bjr
+bjr
+bmh
+boK
+bjr
+cBp
+bjr
+buB
+bvV
+bxu
+bxu
+bxx
+bxu
+bxu
+avf
+ayF
+bxy
+avl
+rBE
+byE
+bxy
+ayF
+ayF
+bCq
+bHE
+bPW
+bHE
+bHE
+bCq
+bVB
+bHE
+bHE
+bYu
+bZk
+bCq
+cTF
+bCq
+bCq
+bCq
+bCq
+cfw
+cgE
+chS
+cfw
+cfw
+bCq
+bXv
+bCq
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(79,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+yds
+amC
+aon
+aoW
+arP
+aqQ
+aqQ
+aqQ
+aqQ
+avZ
+axo
+arP
+rPU
+fne
+aGr
+aHI
+fOA
+tWj
+oyz
+hcb
+aKu
+aLL
+bDe
+aOl
+aPF
+aQY
+aSk
+aTE
+aPG
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+aWv
+aYb
+aZE
+bjo
+bjr
+bjr
+bmh
+boK
+bjr
+boK
+bjr
+bjr
+bub
+bxu
+bvF
+bzP
+bAS
+bxu
+ayF
+ayF
+bxy
+gii
+eBm
+byE
+bxy
+ayF
+ayF
+bCq
+bHE
+bHE
+bSo
+bHE
+bCq
+bVA
+bWw
+bXw
+bYt
+bZj
+bCq
+bHE
+bCq
+bSq
+cdW
+ceW
+bCq
+cgD
+bUs
+bHE
+cjI
+bCq
+clA
+bCq
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(80,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+aKY
+amC
+amC
+amC
+gsM
+aqR
+aqR
+aGh
+aqR
+awb
+axo
+arP
+aCh
+pIf
+kCo
+aHK
+aCr
+uJx
+ikk
+hcb
+aKu
+aLN
+aLE
+aOl
+aPH
+aRa
+aRa
+aTG
+aPG
+aWu
+aYc
+aZD
+aZD
+vnI
+aZD
+aZD
+bff
+dev
+aZE
+xBw
+bjr
+ama
+bmh
+bjr
+bjr
+bjr
+bjr
+bjr
+bvX
+bxu
+byA
+bzR
+byd
+bxx
+ayF
+ayF
+bxy
+qTA
+avl
+qTA
+bxy
+ayF
+ayF
+bCq
+bPV
+bCq
+bCq
+cTF
+bCq
+bVD
+bWy
+bXx
+bYw
+bZj
+bYy
+bHE
+bTz
+bHE
+bUs
+ceY
+bCq
+bJP
+bUs
+bHE
+bLu
+bCq
+cyE
+bCq
+ayF
+ayF
+ayF
+ayF
+bCq
+bCq
+bLv
+bLv
+bLv
+ayF
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(81,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+nBI
+anL
+aoo
+aoX
+arP
+arP
+arP
+arP
+arP
+avZ
+axp
+ayC
+azH
+eEe
+aGv
+aCr
+aCr
+uJx
+ikk
+hcb
+aKu
+aLN
+aLE
+aOl
+aPF
+aQZ
+aRa
+aTF
+aPG
+aSX
+hPP
+aZF
+aZF
+aZF
+aZF
+aZF
+aZF
+bgy
+gjl
+bjq
+bjr
+bjr
+bmh
+bjr
+bjr
+bjr
+bjr
+bjr
+bjr
+bxw
+byz
+bzQ
+byc
+bxx
+ayF
+ayF
+bGi
+bGi
+bJb
+bGi
+bGi
+ayF
+ayF
+bCq
+bPU
+bHE
+bSp
+bHE
+bCq
+bVC
+bWx
+bWy
+bYv
+bZl
+bCq
+bHE
+bCq
+cda
+cgF
+bCq
+cqn
+cAh
+chT
+bHE
+bHE
+ckv
+bHE
+bCq
+bLv
+bLv
+bLv
+bLv
+bCq
+ciT
+cqK
+crl
+bLv
+ayF
+aBD
+azl
+azl
+azl
+azl
+azl
+azl
+azl
+aBD
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(82,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ali
+ali
+ali
+alU
+alU
+arP
+aqR
+wje
+rQJ
+uUi
+avZ
+xtP
+ayA
+sNK
+xmo
+aBV
+mzB
+mJG
+szG
+aHG
+aJe
+aKw
+aLP
+aMR
+aNU
+aPJ
+aPJ
+aPJ
+aPJ
+aPJ
+aVC
+aXJ
+bgA
+aZp
+baY
+bcJ
+bcF
+bfg
+bgA
+bhW
+bjt
+biq
+bjr
+bmh
+bjr
+bqn
+brN
+brN
+brN
+brN
+bxx
+byC
+bzT
+byl
+bxx
+ayF
+ayF
+bGi
+bHz
+avl
+bKk
+bGi
+ayF
+ayF
+bCq
+bPW
+bCq
+bCq
+cOw
+bCq
+bVF
+bWA
+bXy
+bYx
+bWz
+bCq
+bHE
+bCq
+bQa
+cpY
+cyL
+cqy
+cAi
+bQa
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+cpR
+bHE
+cAQ
+crm
+bLv
+ayF
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+aBD
+oDb
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(83,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+arP
+vqP
+inw
+gzY
+rtC
+izg
+awa
+axq
+qyj
+azI
+rjQ
+aBU
+myh
+inR
+wUr
+iTq
+hcb
+aKu
+aLN
+aMQ
+aNT
+aPI
+aRb
+aRb
+aRb
+aRb
+aWx
+aXE
+baS
+baS
+bbP
+bcR
+bcE
+baS
+bex
+aZF
+bgu
+bic
+bku
+bmh
+bjr
+aZE
+brM
+bts
+buD
+bvY
+bxx
+byB
+bwS
+byg
+bxx
+ayF
+ayF
+bGi
+bHy
+avl
+bKj
+bGi
+ayF
+ayF
+bCq
+bHE
+bHE
+mPr
+cdb
+bCq
+bVE
+bWz
+bHE
+bHE
+bLu
+bCq
+bLu
+bCq
+cdb
+bSs
+bCq
+bCq
+cgG
+bCq
+bCq
+bCq
+bCq
+cTF
+bCq
+bLv
+bLv
+bLv
+bLv
+bCq
+cqv
+cqL
+bJe
+bLv
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBD
+aBD
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(84,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+aqQ
+uCo
+gzY
+eAG
+aqR
+aqR
+kTj
+xxi
+ayD
+cGz
+aMr
+ngs
+aDv
+uRS
+uJx
+dsC
+hcb
+aKu
+aLN
+aMS
+aOt
+aPK
+aPK
+aPK
+aPK
+aPK
+aWA
+aXM
+bfi
+cBi
+bbS
+bcS
+bbt
+bfi
+beD
+gjl
+aZE
+biA
+bmg
+bmH
+bkJ
+aZE
+aZE
+aZE
+aZE
+aZE
+bxu
+byD
+bwU
+byn
+bxu
+ayF
+bxy
+bxy
+bxy
+bJd
+bKm
+bxy
+ayF
+ayF
+bCq
+bPY
+cOw
+bCq
+bCq
+bCq
+bCq
+bCq
+bYy
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bUs
+bLv
+ayF
+bCq
+ckv
+bHE
+bCq
+ayF
+ayF
+ayF
+ayF
+bCq
+bCq
+bCq
+bCq
+bCq
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(85,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+aqQ
+aqR
+aqR
+pjg
+sqg
+inq
+avZ
+xxi
+ayD
+viF
+aMr
+aMr
+aOH
+uRS
+lSa
+oTW
+hcb
+aKu
+aLN
+aMS
+aOi
+lPr
+aPK
+aSl
+aTH
+aPK
+aWz
+aWC
+baS
+baS
+baS
+bcR
+baS
+baS
+baS
+gjl
+bju
+biv
+bmf
+bmt
+boN
+bqo
+brO
+btt
+buE
+bvZ
+bxu
+bxx
+bwT
+bym
+bxu
+bxy
+bxy
+bGj
+bHA
+tIV
+bKl
+bxy
+crk
+crk
+bCq
+bPX
+bRg
+bRg
+bCq
+bHE
+bVG
+bHE
+bHE
+bCq
+tPT
+tRF
+mrR
+dKP
+odx
+rBq
+kQO
+bCq
+bUs
+bLv
+ayF
+bLv
+bJf
+ccd
+bCq
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+gUu
+crn
+bij
+bij
+bij
+bij
+bij
+jkz
+btG
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(86,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+aqQ
+uCo
+gzY
+arP
+arP
+arP
+avZ
+xxi
+ayD
+nez
+ngV
+xPY
+aOH
+hcb
+hcb
+syJ
+hcb
+aKu
+aLN
+aMS
+aOi
+aLE
+aRc
+aSm
+aTJ
+aPK
+aWA
+aWC
+baS
+aZI
+baS
+cCn
+bdS
+bdU
+ckQ
+gjl
+bgz
+biT
+boU
+bmP
+buF
+bbR
+bbR
+btu
+bbR
+bOL
+qje
+byF
+bwW
+bGm
+bCo
+bDk
+bEK
+byE
+byE
+avl
+byE
+bGi
+ayF
+ayF
+bLv
+bQa
+bHE
+bHE
+bCq
+bHE
+bCq
+bCq
+bCq
+sXA
+mPE
+kyF
+sAM
+imH
+evR
+evR
+rMN
+bCq
+bUs
+bLv
+ayF
+cjJ
+cjJ
+cjJ
+cjJ
+cjJ
+cjJ
+cjJ
+kfX
+saU
+saU
+bij
+crn
+bij
+bij
+eCR
+wUg
+bnT
+bph
+bsc
+mQS
+bsc
+tNF
+btG
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(87,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+crk
+crk
+crk
+crk
+crk
+ato
+crk
+crk
+arP
+aqR
+aqR
+arP
+asQ
+aqR
+awb
+axr
+ayE
+ayE
+ayE
+ayE
+ayE
+ayE
+ayE
+ayE
+ayE
+ayE
+aLl
+aMT
+aOi
+aPL
+aPK
+aSm
+aTI
+aPK
+aWB
+cCj
+apd
+apd
+apd
+cCk
+apd
+aZK
+bgB
+bhX
+bgv
+biF
+bkw
+bnE
+bny
+btv
+btv
+bjv
+btv
+buc
+bxz
+eVL
+bwV
+byy
+bBa
+bAb
+bzY
+bBa
+bEQ
+bGM
+bKn
+bGi
+ayF
+ayF
+bLv
+bPZ
+bHE
+bHE
+cTF
+bHE
+bCq
+iiW
+iiW
+iiW
+iiW
+iiW
+dfL
+dKP
+mqZ
+tur
+wfR
+bCq
+bUs
+bLv
+ayF
+cjJ
+ckw
+clC
+cmy
+cnm
+cnL
+cov
+cpj
+cpS
+cjJ
+fjS
+sPT
+btG
+rXl
+xgC
+ugu
+bnV
+bph
+bih
+big
+bii
+bsc
+btG
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(88,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aiU
+hlT
+aiU
+ayF
+aiU
+vxX
+aiU
+ayF
+arP
+lZs
+dPq
+arP
+asP
+cya
+awa
+axu
+ayH
+ayH
+ayH
+ayH
+ayH
+ayH
+aFV
+ayH
+ayH
+aKy
+aLn
+aMU
+aOw
+aPN
+aPK
+aSn
+aTK
+aPK
+uoG
+sOA
+asW
+baW
+bLE
+bLG
+apd
+bfj
+bgC
+bia
+aZK
+bjs
+bkx
+bmQ
+bnA
+bpB
+bpB
+brR
+bsV
+bwc
+bxA
+bvI
+bwX
+byG
+bvI
+bAm
+bBG
+bDo
+xJV
+gzv
+bKp
+bGi
+ayF
+ayF
+bLv
+bHE
+bHE
+bSs
+bCq
+bHE
+bCq
+uvZ
+dKP
+vjm
+bcU
+bcU
+bcU
+dKP
+dKP
+dKP
+dKP
+bCq
+bUs
+bLv
+ayF
+cjJ
+cky
+clE
+cmA
+clE
+cnN
+cox
+cpl
+cpU
+jLn
+xTy
+xTy
+tJK
+xTy
+xTy
+xhS
+mOB
+bph
+big
+bgN
+big
+bsc
+btG
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(89,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aoV
+ayF
+ayF
+ayF
+gWo
+gWo
+gWo
+dYZ
+gWo
+gWo
+ayF
+ayF
+ayF
+aiU
+alp
+aiU
+ayF
+aiU
+alp
+aiU
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+avZ
+axt
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+aLm
+aMS
+aOv
+aPM
+aPQ
+aPQ
+aPQ
+aPQ
+apd
+aYi
+aqW
+aqW
+bbQ
+uFp
+apd
+aZH
+aZK
+bhZ
+aZK
+cNM
+bfQ
+bnG
+bnz
+bpA
+bbR
+sWR
+jlm
+bud
+eyM
+kSb
+bAZ
+bGm
+bzF
+bAc
+bGm
+byE
+cBB
+byE
+bKo
+bxy
+crk
+crk
+bCq
+bHE
+bRh
+bLu
+bCq
+bHE
+bCq
+iiW
+iiW
+dKV
+xgF
+dKV
+dKV
+iiW
+gMl
+gMl
+iiW
+bLv
+bUs
+bLv
+ayF
+cjJ
+ckx
+clD
+cmz
+cnn
+cnM
+cow
+cpk
+cpT
+cjJ
+fjS
+dXq
+btG
+rtl
+oqO
+vFr
+bnV
+bph
+bii
+big
+bih
+bsc
+btG
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(90,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+abc
+abc
+abc
+afu
+abc
+wdr
+itQ
+pgn
+tmO
+gWo
+xUe
+aiU
+aiT
+nEj
+vTP
+aiU
+amK
+aiU
+mkU
+xWq
+arP
+asR
+gzY
+fdQ
+ngU
+kUC
+arP
+awc
+axt
+ayG
+azK
+aBe
+aBe
+aDj
+aER
+aFX
+aHj
+aJa
+aKc
+aLp
+aMV
+aOy
+aLE
+aPQ
+aRV
+aSW
+aVa
+apd
+aWE
+aqW
+aqW
+bcG
+bLG
+apd
+aZH
+bgD
+bfN
+bgE
+cNN
+bkH
+bfm
+boS
+bfm
+bNK
+bkN
+bfm
+bwe
+bwe
+bwd
+bwY
+byJ
+bwe
+bAc
+bBI
+bGn
+bGn
+bGn
+bKq
+bxy
+ayF
+ayF
+bCq
+bOK
+bCq
+bCq
+bCq
+bUt
+bCq
+uaw
+tkU
+iiW
+lnu
+cjn
+iiW
+cxo
+bcU
+bcU
+vzO
+bLv
+bUs
+bLv
+ayF
+cjJ
+cky
+clG
+cmB
+clG
+cnP
+coz
+cpn
+sPY
+sPY
+bgO
+dgO
+bgO
+pPI
+uRd
+ktP
+bnW
+bph
+bsc
+mkv
+bsc
+jFH
+btG
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(91,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+abc
+aea
+aeH
+aft
+abc
+pDe
+dly
+mnC
+mcp
+gWo
+oDm
+ibK
+akb
+ahq
+akI
+ahU
+aiT
+aiD
+akI
+uFZ
+hBw
+vLo
+gzY
+aqR
+gzY
+gzY
+esK
+awb
+axt
+ayG
+azJ
+aBd
+aBX
+aDi
+aEQ
+aFW
+aHh
+aIV
+ayG
+aLN
+aMS
+aOx
+aPc
+aRe
+aRT
+aSt
+aWF
+apd
+aWG
+aZa
+baX
+bcH
+bdE
+apd
+aZH
+bnL
+cNG
+cNJ
+cNM
+cNI
+bnI
+boR
+bqs
+bbR
+bkM
+bbR
+bwd
+bxB
+bvL
+byI
+byH
+bwe
+bAn
+bBH
+bxy
+bxy
+bxy
+bxy
+bxy
+bLv
+bLv
+bCq
+bHE
+bLv
+ayF
+bLv
+uuG
+jJF
+gBo
+sEt
+cxo
+bcU
+bcU
+jqv
+cxo
+bcU
+mpI
+vzO
+bLv
+bUs
+bLv
+ayF
+cjJ
+ckz
+clF
+cmy
+cnp
+cnO
+coy
+cpm
+cjJ
+ayF
+ayF
+ayF
+ayF
+ayF
+iHk
+bgO
+bgO
+bgO
+bgO
+bgO
+bgO
+jBA
+btG
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(92,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+crk
+abc
+abu
+abu
+abu
+abc
+abc
+aec
+aeJ
+afw
+abc
+abc
+dly
+xxp
+mcp
+dYZ
+kMt
+nTG
+rhX
+ahr
+ahD
+ahV
+agr
+fJY
+eXz
+pUy
+arP
+arP
+arP
+arP
+iPX
+nnp
+arP
+awb
+axt
+ayG
+azM
+aBg
+aBZ
+aDx
+aET
+aET
+bCx
+aHJ
+aKd
+aLq
+aMY
+aOA
+aPO
+aRf
+aSc
+aSc
+aUw
+apd
+aXK
+avr
+aZJ
+bbT
+bSy
+apd
+aZH
+beF
+bfl
+bmi
+bjw
+bmk
+bbR
+boT
+bbR
+bbR
+buI
+bbR
+bwd
+bxD
+byL
+byK
+byT
+bwe
+bAx
+bTE
+bCq
+bHD
+bJe
+bCq
+nkP
+bHE
+bHE
+bHE
+bHE
+bLv
+ayF
+bLv
+bUs
+bCq
+iiW
+iiW
+fxa
+bcU
+bcU
+vzO
+iiW
+oKh
+oKh
+iiW
+bLv
+bUs
+bLv
+ayF
+cjJ
+cjJ
+cjJ
+cjJ
+cjJ
+cnR
+coB
+cjJ
+cjJ
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBD
+azl
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(93,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aai
+aai
+aai
+abb
+abt
+aca
+acz
+acX
+adC
+aeb
+aeI
+afv
+agf
+abc
+dly
+xxp
+mcp
+gWo
+gDP
+lAH
+lNH
+akG
+akG
+kHd
+vGn
+gav
+cxP
+pUy
+arP
+aqU
+arg
+arP
+arP
+arP
+arP
+vgJ
+hSl
+ayG
+azL
+aBf
+aBY
+aDw
+aES
+aJh
+aHv
+aJh
+aKA
+aLN
+aMS
+aOz
+exP
+aPQ
+aSa
+aSr
+aSr
+apd
+aYZ
+bLE
+aqW
+aqW
+noy
+apd
+beA
+bqp
+cNG
+cNJ
+bLF
+aZK
+sRH
+bbR
+bqt
+cBq
+bbR
+bbR
+bwd
+bxC
+byK
+cBv
+byO
+bwe
+bAo
+bTE
+bGo
+bHC
+bHE
+bCq
+bCq
+bLv
+bLv
+bHE
+bLv
+bCq
+ayF
+bLv
+bUs
+bCq
+sRT
+usO
+iiW
+oKh
+oKh
+iiW
+iiW
+iiW
+izv
+nfm
+bCq
+bUs
+bCq
+ayF
+ayF
+ayF
+ayF
+ayF
+cjJ
+cnQ
+coA
+cpo
+cjJ
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBD
+aBD
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(94,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aai
+eqd
+kgr
+abe
+abw
+acc
+acB
+acZ
+adE
+aee
+aeL
+afy
+agh
+abc
+kCa
+hnU
+vda
+sXV
+agv
+amM
+aiX
+aiX
+aiX
+aiX
+aiX
+foT
+ibK
+pUy
+arP
+aqR
+arl
+arP
+asS
+sfs
+aqR
+awb
+axt
+ayG
+azN
+aBe
+aBe
+aDy
+aEU
+aGf
+aHL
+aJi
+aKB
+aLT
+aNp
+aOC
+aPQ
+aPQ
+aTL
+aTP
+aWD
+apd
+aYj
+aZL
+baU
+baU
+bcV
+apf
+bfn
+beW
+bfR
+bKF
+bNH
+aZK
+bnJ
+bbR
+bbR
+bbR
+bty
+buJ
+bwe
+bxE
+byM
+bAd
+bBf
+bwe
+bAJ
+bCe
+bCq
+bHE
+bJf
+bCq
+ayF
+ayF
+bLv
+bHE
+bLv
+ayF
+ayF
+bTB
+bUv
+bES
+bES
+bES
+bES
+bGp
+bGp
+bGp
+bGp
+bES
+bES
+bES
+car
+bUs
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+cjJ
+cnS
+coC
+cpp
+cjJ
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(95,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aai
+gbu
+aay
+abd
+abv
+acb
+acA
+acI
+adD
+aed
+aeK
+afx
+agg
+abc
+ovv
+dCV
+idK
+age
+kZS
+agu
+agj
+amL
+apK
+amX
+aiX
+aiE
+aiK
+aiN
+arP
+arc
+arP
+arP
+usE
+aqR
+aqR
+awb
+axt
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+ayG
+aHP
+aNc
+aOB
+aPQ
+aPQ
+aSs
+aSs
+aSs
+apd
+apd
+apd
+baV
+bON
+apd
+apd
+aZK
+beV
+cNI
+bKP
+cNI
+aZK
+bnK
+bnK
+bqu
+bqu
+bnK
+bnK
+bwe
+bwe
+bwe
+bwe
+bwe
+bwe
+bAI
+bCd
+bCq
+bCq
+bCq
+bCq
+bLv
+bLv
+bLv
+bOK
+bLv
+bLv
+bLv
+bTA
+bUu
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+caq
+cbw
+bHE
+ciT
+bCq
+bSs
+ceY
+ccw
+ccw
+cnR
+cgT
+cjJ
+ccw
+ccw
+ccw
+ccw
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(96,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+aai
+acd
+mIZ
+abg
+enB
+aby
+aby
+aby
+aby
+aeg
+aeN
+afA
+afA
+abc
+kuA
+laq
+kdP
+mGw
+akm
+akr
+alZ
+amO
+arQ
+aor
+aiX
+aiF
+aqI
+asv
+aqT
+apS
+arn
+apS
+apS
+apS
+apS
+ajw
+ajy
+ayJ
+ayJ
+aBi
+aqR
+aqR
+aqR
+aqR
+aqR
+aqR
+arP
+aLI
+aNr
+bBo
+aJq
+aRh
+aJq
+aJq
+aJq
+aJq
+aJq
+aLY
+aJq
+aJq
+aRh
+bbV
+bfo
+bkS
+bfo
+bgn
+bfo
+bmn
+bfo
+boW
+bmE
+bmE
+btz
+btz
+bwf
+btz
+btz
+btz
+bBh
+bCr
+bAK
+bCn
+bGq
+bGq
+bGq
+rGq
+bLw
+bGq
+bGq
+bGq
+bLw
+bGq
+rGq
+bTD
+bUx
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bTA
+xgk
+bHE
+bHE
+bHE
+bHE
+bHE
+cmD
+cnr
+cnU
+chD
+cpq
+cpV
+cqw
+cqO
+crp
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(97,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aai
+aai
+abf
+aaK
+jRw
+aaU
+acd
+acC
+ada
+adF
+aef
+aeM
+afz
+oSl
+ail
+lRb
+vIi
+fsj
+sXV
+xnm
+rAR
+uCU
+and
+arS
+anq
+aiX
+aiT
+ass
+aiT
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+ajx
+axw
+ayI
+azO
+aBh
+akL
+aDz
+aEV
+aGg
+aHx
+aqZ
+apg
+aLx
+aNq
+aOD
+aPe
+aJq
+aJq
+aJq
+aJq
+aJq
+aJq
+aLY
+aJq
+aJq
+bHt
+aJq
+aJq
+beX
+aJq
+bgm
+bjx
+bmm
+bnM
+boV
+bnM
+bnM
+bnM
+bnM
+bnM
+bnM
+bnM
+bAe
+bBg
+bCq
+bCq
+bDt
+bGp
+bGp
+bGp
+bES
+bGp
+bGp
+bGp
+bGp
+bGp
+bGp
+bES
+bTC
+bAx
+bVI
+bWB
+bWB
+bYz
+bYz
+cag
+cbl
+bYz
+bWB
+bWB
+bVI
+cax
+cbx
+cdh
+ciU
+cjK
+ckA
+ckA
+cmC
+cmC
+cfJ
+chB
+cpW
+cgR
+cgR
+cqN
+cro
+swf
+ncF
+swf
+ykN
+ykN
+ykN
+ykN
+ykN
+ncF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(98,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aiS
+aai
+aai
+aai
+aai
+aaI
+aat
+aat
+aat
+aat
+ace
+aat
+aat
+adH
+aei
+aeO
+afJ
+sXV
+sXV
+sXV
+sXV
+sXV
+sXV
+oby
+ajX
+agj
+amL
+asp
+nbY
+aiX
+iRj
+anz
+aov
+cCi
+apU
+ajd
+arU
+apU
+apU
+cCi
+awg
+axy
+ayL
+azQ
+aBk
+ayL
+ayL
+ayL
+ayW
+ayW
+ayW
+ayW
+aLW
+aNs
+aJq
+aLX
+aLX
+aLX
+aLX
+aLX
+aJq
+aYl
+aZN
+aYl
+aYl
+aYl
+aYl
+aYl
+bgG
+bid
+aYl
+bBi
+aLY
+bnN
+boY
+bqw
+aJq
+aJq
+aYl
+fAj
+aLX
+aJq
+aJq
+bBi
+aJw
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+bCq
+bTF
+bAx
+bVI
+bWD
+bXA
+bYB
+bYz
+cai
+cSF
+ccg
+cdd
+cea
+bVI
+caz
+cby
+cdj
+cdv
+cem
+cem
+cem
+cfe
+cfD
+cgv
+chE
+ciN
+ciN
+cji
+cDZ
+crr
+utp
+utp
+utp
+swf
+ykN
+ykN
+ykN
+ykN
+dUG
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(99,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aai
+aan
+aaw
+aaB
+qmn
+aaJ
+aat
+abh
+aat
+acd
+abK
+acY
+adG
+aeh
+aeO
+ado
+afq
+afH
+agY
+ahS
+aiI
+afn
+vfX
+akD
+agj
+agj
+agj
+agj
+aiX
+ycY
+anz
+aov
+cCi
+air
+aqY
+arT
+apU
+apU
+cCi
+awg
+axy
+ayK
+azE
+aBj
+aBO
+aDC
+ayL
+aGo
+aHN
+aJj
+ayW
+aLV
+aJq
+aOE
+aJn
+aJn
+aJn
+aJn
+aJs
+aJq
+aYk
+aZM
+aZM
+bbW
+bcX
+bcX
+aZM
+aZM
+aZM
+bjz
+bkT
+bjz
+bjz
+aiV
+bqv
+bqv
+bqv
+bqv
+bwg
+aJw
+aJq
+aJq
+bBi
+aJw
+ayF
+bEU
+bGr
+bGr
+bGr
+bKr
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+bCq
+bTE
+bAx
+bVI
+bWC
+bXz
+bYA
+bZn
+cah
+bWB
+ccf
+cdc
+cdZ
+bVI
+cay
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+cfL
+coH
+cBO
+cgR
+cDB
+cqP
+crq
+utp
+utp
+utp
+jhU
+ykN
+ykN
+ykN
+ykN
+ncF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(100,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aak
+aap
+saX
+aaD
+aau
+aat
+aat
+aat
+abA
+acd
+acd
+acd
+acd
+aek
+acp
+aav
+agO
+afI
+ahb
+ahZ
+aiL
+lZn
+akg
+kuh
+aly
+anP
+gyr
+okK
+xal
+aqC
+anz
+aov
+cCi
+aqX
+arR
+asj
+iUK
+ajr
+atY
+auo
+axy
+ayN
+azE
+aAW
+aCa
+aDB
+aDI
+azW
+azW
+azW
+ayW
+aLX
+aJq
+aOE
+aJn
+ayF
+ayF
+aJn
+aJs
+aJq
+aYn
+aZM
+aZu
+bbY
+bcY
+bdX
+bbX
+bgH
+bie
+bjB
+bkW
+bmp
+bjz
+ajh
+bqy
+cBr
+bqy
+buK
+tZe
+aJw
+aJq
+aJq
+bBi
+aJw
+ayF
+bEW
+bGt
+bHG
+bJh
+bEW
+ayF
+ayF
+ayF
+ayF
+bKv
+bLB
+bES
+bMj
+bAx
+bVI
+bWF
+bXC
+bXC
+bZp
+cak
+bWB
+bWB
+bWB
+cec
+bVI
+kNv
+ccw
+chY
+ciX
+cjM
+ckB
+ckB
+ckB
+ccw
+cnY
+coH
+cgR
+cgR
+cqx
+cgR
+crp
+utp
+utp
+utp
+swf
+ykN
+ykN
+ykN
+ykN
+dUG
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(101,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aaj
+aao
+aax
+aaC
+aaA
+aat
+aat
+aat
+aei
+acd
+acE
+add
+adF
+aej
+aeQ
+adp
+ahv
+afK
+aht
+aid
+aiM
+ajz
+alz
+cZe
+alg
+plS
+dyE
+pQr
+aou
+aqC
+anz
+aov
+ape
+arT
+aqV
+ajf
+apU
+ajt
+cCi
+awg
+axy
+ayM
+azs
+aAR
+aBP
+aDA
+aEW
+aGi
+aHB
+aEZ
+aBt
+aJs
+aJq
+aOE
+aJn
+ayF
+ayF
+aJw
+aVb
+aWH
+aYm
+aZM
+aZq
+bbX
+bbX
+bbX
+bfp
+aZP
+aZP
+bjA
+cAG
+bmo
+bmr
+boZ
+bqx
+brU
+bmr
+bmr
+bmr
+bmr
+byN
+aJq
+bBj
+aJw
+ayF
+bEV
+bGs
+cBC
+bJg
+bKs
+ayF
+ayF
+ayF
+ayF
+bJQ
+bLg
+cem
+cem
+bNg
+bVI
+bWE
+bXB
+bYC
+bZo
+bWB
+bWB
+cch
+cde
+ceb
+bVI
+cay
+ccw
+chY
+ciZ
+ciW
+ckB
+ckB
+ckC
+ccw
+cnX
+coH
+cps
+cpX
+cqz
+cqR
+ccw
+utp
+utp
+utp
+jhU
+ykN
+ykN
+ykN
+ykN
+ncF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(102,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aal
+aar
+uGI
+aaF
+aat
+aat
+aaW
+aat
+abB
+acf
+abM
+acG
+adI
+aem
+omX
+afG
+aim
+afL
+ahu
+aie
+aiO
+afn
+xzv
+agL
+akT
+gNE
+gLz
+rcI
+seP
+aqC
+anz
+aov
+cCi
+tKb
+arT
+arT
+asn
+atK
+auq
+avs
+axz
+ayP
+azU
+aBo
+aCg
+azW
+aEX
+aEZ
+aEZ
+aEZ
+vbD
+aJs
+aJq
+bJx
+aJn
+ayF
+ayF
+aTQ
+aVd
+aWJ
+aYp
+aZM
+aZz
+baI
+bda
+bda
+bca
+bgJ
+aZP
+cNL
+bkY
+bmo
+bnP
+bpc
+bqA
+brW
+btB
+buM
+bwi
+bmr
+aMm
+aJq
+vEi
+bCs
+bCs
+bEY
+bGu
+bHI
+bJi
+bEY
+bCs
+bCs
+bNI
+bNI
+bRn
+cce
+bNI
+bNI
+bUz
+bVI
+bWG
+bXD
+bYz
+cSE
+bWB
+bYz
+bYz
+cdf
+ced
+bVI
+cay
+ccw
+ciZ
+ciZ
+ciZ
+ckC
+ckC
+ckC
+ccw
+coa
+coJ
+clJ
+clJ
+cig
+cig
+ccw
+utp
+utp
+utp
+swf
+ykN
+ykN
+ykN
+ykN
+dUG
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(103,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aaj
+aaq
+dyS
+aaE
+aat
+aaN
+aaV
+rvS
+aat
+acd
+abL
+adb
+acd
+ael
+aeO
+afF
+agj
+agj
+afn
+afn
+agj
+agj
+agM
+sAk
+akp
+akQ
+amB
+amn
+amS
+anz
+anz
+aov
+cCi
+arT
+arT
+asl
+arT
+apU
+cCi
+awg
+axy
+ayv
+azE
+aBn
+aCb
+aDD
+aEY
+aGj
+aHC
+aEZ
+aBt
+aJs
+aJq
+aOE
+aJn
+ayF
+ayF
+aPR
+aVc
+aWI
+aYo
+aZM
+aZy
+bay
+bcZ
+bdY
+bdF
+bgI
+aZP
+bjC
+bkX
+bmo
+bnO
+bpb
+bqz
+bqq
+brS
+bsY
+bue
+bmr
+aMn
+aJq
+bBi
+bCs
+bDv
+bEX
+bFb
+kfv
+bFa
+bKt
+bLx
+bCs
+cCe
+bRl
+apV
+bLC
+cCf
+bNI
+bUz
+bVI
+bWB
+bWB
+bYz
+bZq
+cal
+cbm
+bYz
+bWB
+bWB
+bVI
+cay
+ccw
+ccw
+ciY
+ciY
+ccw
+ccw
+ccw
+ccw
+cnZ
+coH
+cgR
+cgR
+cig
+nEI
+ccw
+utp
+utp
+utp
+jhU
+ykN
+ykN
+ykN
+ykN
+ncF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(104,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aal
+aat
+aat
+aat
+aat
+qXg
+jjC
+xOx
+abD
+acd
+acd
+acd
+acd
+aen
+aeO
+ahE
+afq
+aii
+afM
+aig
+agp
+agj
+lfV
+akl
+akM
+amm
+gyr
+anM
+rJv
+aqC
+anz
+aox
+cCi
+cCi
+cCi
+cCi
+cCi
+cCi
+cCi
+awg
+axy
+ayQ
+azE
+aBq
+aBr
+aDE
+aFc
+azW
+azW
+aJf
+ayW
+aJr
+aJq
+aOE
+aJn
+ayF
+aPR
+aPR
+aPR
+aWL
+aPR
+aZM
+bbX
+bay
+bbM
+bcN
+bdK
+bgL
+aZP
+aZP
+aZP
+bmo
+bnR
+bpe
+bqB
+bqq
+btD
+buO
+bwk
+bmr
+aLY
+cBw
+bBk
+bCs
+bDx
+bFa
+bFa
+bHJ
+bFa
+bFa
+bLz
+bCs
+cCe
+bNJ
+apV
+xhV
+gWd
+bNI
+bUz
+bVJ
+bWI
+bXF
+bXF
+bZs
+cao
+cbo
+bXF
+bXF
+cef
+bVJ
+cay
+ccw
+cig
+cjb
+cjb
+cig
+cig
+cmG
+cnt
+cob
+coL
+wgZ
+cgR
+thz
+mZO
+fpt
+utp
+jhU
+dUG
+swf
+ykN
+ykN
+ykN
+ykN
+dUG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(105,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aaj
+aas
+aat
+aat
+aat
+aat
+uEI
+aat
+abC
+acd
+acH
+adc
+acd
+aeo
+aev
+aeS
+ahw
+ajg
+afM
+akU
+afM
+lBz
+alA
+ene
+alg
+kbm
+dyE
+cKC
+seP
+aqC
+anR
+aow
+apg
+aqZ
+aqZ
+aqZ
+apW
+aqZ
+avh
+awh
+axz
+ayO
+azE
+aBp
+aCc
+aDF
+ayL
+aGq
+aHO
+aJl
+ayW
+ftE
+aJq
+aOE
+aJn
+ayF
+aPR
+aTR
+aVe
+aWK
+aYq
+aZO
+aZC
+baK
+rnt
+bbC
+bdI
+bgK
+bgK
+bjE
+bgK
+bmq
+bnQ
+bpd
+bpd
+bqr
+btC
+buN
+bwj
+bmr
+byP
+aJq
+bBi
+bCs
+bDw
+bEZ
+bGv
+bHH
+bJj
+bKu
+bLy
+bCs
+bNJ
+bNJ
+bKx
+cjL
+gbq
+bNI
+bUz
+bVJ
+bWH
+bXE
+bYD
+bZr
+can
+cbn
+cci
+cdg
+cee
+bVJ
+cay
+ccw
+cia
+cSN
+cSS
+ckD
+cTc
+cTe
+cfG
+cgw
+abY
+fkR
+uvd
+ccw
+ccw
+ccw
+xJY
+gkD
+sYC
+spz
+sYC
+sYC
+fft
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(106,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aam
+aav
+aav
+aav
+aav
+aav
+aav
+aav
+abE
+acg
+acJ
+ade
+adJ
+aep
+aeT
+ahE
+aim
+ajL
+akj
+afM
+afM
+nss
+kQz
+alB
+akT
+gNE
+gLz
+anB
+amR
+aqC
+anz
+aov
+aph
+aph
+aph
+arW
+aso
+auf
+avi
+awi
+axy
+ayS
+azS
+aBs
+aCi
+aDI
+ayL
+ayW
+ayW
+ayW
+ayW
+aJq
+aJq
+aOE
+aJn
+ayF
+aPR
+aTT
+aVg
+aWN
+aYs
+aZQ
+bbi
+bde
+kvL
+bcd
+bcd
+gNC
+bcd
+bcd
+bcd
+bms
+bnS
+ajs
+bqC
+brZ
+btE
+bnS
+bwl
+bxG
+byR
+bnM
+bBl
+bCs
+bFa
+bFa
+bFa
+bHH
+bFa
+bFa
+bFa
+bCs
+bNJ
+bNJ
+apV
+cjL
+nxv
+bNI
+bUz
+bVJ
+bOo
+bOD
+bQb
+bZv
+bSd
+bXG
+bOC
+bWt
+cBK
+bVJ
+cay
+ccw
+cid
+cSO
+cen
+ckG
+clJ
+cmF
+cgR
+cgI
+hsZ
+eon
+bHg
+bHg
+bHg
+lgA
+gDB
+hOI
+qmG
+uqX
+oEe
+tcF
+uSL
+fft
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(107,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aai
+wYc
+wYc
+aaG
+wYc
+aaP
+aaX
+keM
+xib
+acd
+acD
+acY
+adG
+aeq
+aeV
+agj
+agj
+agj
+tHh
+ahG
+ajY
+fxx
+ako
+ene
+amj
+akQ
+amB
+amn
+amS
+anz
+anz
+aov
+aph
+aob
+ara
+arV
+apZ
+aph
+aph
+awg
+axA
+ayR
+azR
+aBr
+azW
+afO
+azW
+agm
+aBt
+ayF
+aJn
+aLY
+aLY
+aOF
+aPR
+aPR
+aPR
+aTS
+aVf
+aWM
+aYr
+aZP
+bbh
+bcc
+bdd
+cVs
+bfr
+bgM
+bif
+aZM
+aZM
+bmr
+bmr
+bmr
+bmr
+bmr
+bmr
+bmr
+bmr
+bmr
+byQ
+aJq
+bBi
+bCs
+bFa
+bFa
+bGw
+bER
+bJk
+bFa
+bLA
+bCs
+cCd
+bQc
+bKA
+rKP
+bSv
+bNI
+bUB
+bVJ
+bOl
+bOC
+bPQ
+bQK
+bYF
+bTI
+bUy
+bWs
+ceg
+bVJ
+cay
+ccw
+cic
+cSP
+cST
+cTa
+ceZ
+clQ
+cgR
+vOF
+hSh
+ssh
+wKZ
+wKZ
+wKZ
+wKZ
+qGd
+wKZ
+wKZ
+kjm
+wKZ
+mdG
+tcF
+vOF
+fAX
+hVs
+iWD
+hVs
+fPM
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(108,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aai
+aai
+aai
+aai
+aai
+aai
+aai
+abj
+abF
+acd
+acd
+acd
+acd
+aeP
+afC
+agk
+cOV
+agP
+ajJ
+agT
+all
+all
+aku
+akl
+amk
+amm
+gyr
+mos
+rJv
+aqC
+anz
+aov
+aph
+aoc
+ata
+arY
+ata
+auh
+aph
+awg
+axA
+ayT
+azR
+azW
+azW
+aBt
+azW
+aio
+aBt
+ayF
+aJn
+aJq
+aJq
+aOE
+aPT
+aRj
+aSv
+aTV
+aVi
+aWP
+aYu
+aYt
+bbk
+bbk
+bfu
+bbk
+bfs
+rTu
+aZM
+aZM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+fxV
+aXf
+aJq
+bBi
+bCs
+bAM
+bFa
+bGy
+bFc
+bJm
+bFa
+bHO
+bCs
+cCd
+cCd
+aYg
+cjL
+cCc
+bNI
+bEP
+bVJ
+bVJ
+bOM
+bQd
+bQP
+bSt
+bUc
+bVb
+bWv
+cei
+bVJ
+cay
+ccw
+cif
+cSQ
+cSU
+cTb
+cTd
+ckF
+ckF
+qiK
+cQU
+wKZ
+uut
+cVt
+cVt
+svN
+vHx
+rjH
+fJs
+nyb
+rBP
+foo
+sZN
+tAR
+oRG
+oRG
+mHl
+hVs
+hVs
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(109,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aai
+abi
+eqA
+ach
+acK
+adf
+acd
+aer
+afB
+agi
+eWL
+afN
+ajK
+aiH
+akF
+aiy
+akv
+uXt
+alg
+pAK
+dyE
+anQ
+seP
+aqC
+anz
+aov
+api
+ata
+arb
+arX
+atc
+aug
+aph
+awg
+axA
+azW
+ayU
+azW
+aCj
+ayW
+ayW
+ayW
+ayW
+aJn
+aJn
+aJq
+aJq
+aOE
+aPS
+aRi
+aSu
+aTU
+cpC
+aWO
+aYt
+aYx
+bbj
+bce
+bdf
+beb
+aYv
+cUx
+fcn
+ayF
+ayF
+ayF
+ayF
+ayF
+fxV
+fxV
+fxV
+fxV
+fxV
+fxV
+aXf
+aJq
+byU
+bCs
+bAL
+bFa
+bGx
+bET
+bJl
+bHh
+bHN
+bCs
+cjo
+cCd
+bSx
+cjL
+cCb
+bNI
+bEP
+bLu
+bVJ
+bVJ
+bVJ
+bVJ
+bVJ
+bVJ
+bUC
+bWu
+bVJ
+bVJ
+cay
+ccw
+cie
+cdT
+cCY
+cnA
+cev
+cfg
+cgU
+osB
+kZE
+wKZ
+tRi
+lHe
+xEC
+vnu
+oNQ
+lBy
+oNQ
+vnu
+oZv
+iVJ
+glC
+jrl
+peI
+kXA
+ciZ
+ciZ
+cMp
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(110,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+aiS
+aai
+aai
+aai
+aai
+aai
+aai
+aai
+aaZ
+aaZ
+aiX
+aiX
+afS
+ahx
+aiX
+aiQ
+xUX
+akx
+uTe
+akT
+amx
+any
+arD
+amR
+aqC
+anz
+aov
+aph
+aqb
+are
+arZ
+ata
+aui
+aph
+awg
+axA
+ayX
+azY
+azW
+azW
+afP
+aFb
+aEZ
+cyg
+aJp
+aKE
+aMa
+aNw
+aOE
+aPU
+aRl
+aSx
+aTX
+aVi
+aWR
+aYv
+aZS
+aZR
+aZR
+bbm
+bec
+bfu
+vBa
+aBa
+aBa
+aBa
+aBa
+aBa
+aBa
+fxV
+bsb
+yhz
+ouQ
+cQT
+nbT
+aXf
+aJq
+bBi
+bCs
+bFa
+bFa
+bFa
+bET
+bJn
+bHi
+bHQ
+bCs
+cjo
+bJu
+bSx
+cmX
+bSz
+bNI
+bUD
+bVM
+bVM
+bVM
+bVM
+bVM
+cat
+bCq
+bVd
+bWK
+bYp
+bCq
+cay
+ccw
+cig
+cSR
+cSV
+cig
+cig
+cTf
+cgR
+ccw
+spl
+sXl
+eHa
+tOn
+xEC
+bkZ
+qBq
+sTo
+vwZ
+bkZ
+cOz
+jXN
+dIt
+uvd
+ciZ
+cxm
+jTJ
+kLz
+ciZ
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(111,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aAu
+ayF
+abx
+aaZ
+aeF
+ack
+agJ
+acT
+adK
+aew
+afT
+ahy
+aij
+aiR
+ajc
+akz
+ene
+als
+akQ
+amB
+amn
+amS
+aqD
+anz
+aov
+aph
+cIv
+ard
+ard
+ard
+aph
+aph
+awj
+axA
+ayW
+ayW
+aBt
+aBt
+ayW
+ayW
+ayW
+ayW
+aJo
+aJq
+aLZ
+aNv
+aOE
+aPS
+aRk
+aSw
+aTW
+aVj
+aWQ
+aYv
+aZR
+aZR
+aZR
+aZR
+aZR
+bft
+psk
+aBa
+aBT
+aDs
+aEN
+aGb
+aBa
+bqD
+bsa
+vCn
+dzQ
+bsa
+nbT
+byS
+aJq
+wTf
+bCs
+bCs
+bCs
+bCs
+bFe
+bCs
+bLD
+bCs
+bCs
+bNI
+bNI
+bKU
+cnB
+bNI
+bNI
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+cas
+bCq
+bVc
+bWJ
+bYn
+bZB
+caC
+ccw
+cSM
+cjd
+cSW
+ckI
+clJ
+cmL
+cBO
+ccw
+hAe
+wKZ
+ePU
+pPv
+bkZ
+kJc
+snF
+snF
+rgx
+bkZ
+dlO
+gAi
+dIt
+ccw
+ePe
+hVs
+hVs
+hVs
+hVs
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(112,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+ayF
+abG
+aaZ
+aeW
+acl
+agJ
+adg
+adL
+adL
+ago
+ahz
+aim
+aiW
+ajc
+akz
+ene
+alg
+alt
+amp
+aot
+apR
+aqE
+anz
+old
+apk
+anw
+anw
+anw
+anw
+aVh
+avj
+awl
+axC
+ayY
+cpF
+azZ
+azZ
+azZ
+azZ
+aGt
+aHQ
+aJr
+aJq
+aMc
+aNy
+aOE
+aPS
+aRn
+aSz
+aTY
+aVl
+aWT
+aYx
+aZR
+bbm
+bbm
+bdh
+bee
+bfv
+xUL
+aBb
+gpD
+aDr
+cJW
+aGa
+aHF
+bqF
+buQ
+buQ
+pzk
+buQ
+bxI
+bwa
+bAg
+bBq
+bCu
+bAO
+bFd
+bFd
+bFj
+bJp
+bHk
+bHR
+bIe
+bFd
+bJz
+bRp
+cav
+bSA
+bTJ
+bSA
+bSA
+bWL
+bSA
+bSA
+bZx
+bSR
+bUl
+bVf
+bXm
+bYE
+bCq
+bHE
+ccw
+cij
+cjf
+cSX
+ckK
+clJ
+cmL
+cgR
+fkR
+sVb
+lIY
+oYj
+taY
+deE
+voa
+vAi
+vAi
+vAi
+bkZ
+hid
+lLa
+gGH
+uvd
+tGG
+hVs
+hVs
+pPs
+hVs
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(113,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aBD
+ayF
+abG
+aaZ
+aeX
+acm
+agK
+aaZ
+aaZ
+aex
+agt
+aaZ
+aaZ
+aaZ
+fsa
+akz
+itD
+alg
+vyK
+amI
+alg
+alv
+aqE
+anS
+aoy
+apj
+anz
+anz
+anz
+anz
+anz
+anz
+awk
+axB
+anz
+anz
+anz
+anz
+anz
+anz
+apj
+aHP
+aJq
+aJq
+aMb
+aNx
+aOE
+aPS
+aRm
+aSy
+aTX
+aVk
+aWS
+aYw
+aZT
+cBj
+bcf
+bdg
+bed
+bfv
+tyX
+pst
+cTT
+alu
+aEM
+aGd
+uOJ
+bqE
+bqE
+bqE
+bqE
+bqE
+knx
+bvW
+bAf
+bBp
+aHP
+bAN
+bQg
+bQg
+bFh
+bGN
+bHj
+bNN
+bNN
+bNN
+bNN
+bNN
+cau
+cBH
+bMG
+bLZ
+bLZ
+bLZ
+bLZ
+bLZ
+bQQ
+bSw
+cbr
+bVe
+bXk
+bYq
+bCq
+ceW
+ccw
+cdk
+cMC
+cSY
+ckI
+clJ
+cmL
+cnv
+uvd
+sCS
+wKZ
+sPm
+rOg
+pBd
+fUP
+pBd
+vEc
+pBd
+vob
+gCd
+wAh
+wAh
+uvd
+uBP
+hVs
+uBP
+iPp
+hVs
+ccw
+ayF
+oDb
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(114,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aAu
+ayF
+abG
+aaZ
+aeY
+acn
+agR
+agW
+ahA
+aeE
+agz
+ahW
+ain
+aiZ
+jyO
+ajC
+akC
+akX
+alw
+amJ
+aoY
+rCl
+aqE
+anz
+aoz
+apm
+aqd
+anA
+asa
+atd
+anA
+avk
+awk
+axE
+ayZ
+pHO
+aBu
+aAa
+aAa
+aAa
+aGu
+aHR
+aJt
+aJq
+aMe
+aNA
+aOE
+aPV
+aRp
+aSB
+aTZ
+aVn
+aWV
+aYz
+aZR
+bbm
+bbm
+bdh
+bef
+bfv
+gTx
+aBc
+xEB
+aDt
+aEO
+aGc
+vOU
+rTD
+dml
+dml
+oNz
+dml
+bxK
+bwh
+bAh
+bBs
+bzG
+bAP
+bCp
+bDp
+bFq
+bGO
+bHl
+bHS
+bLI
+apI
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bYI
+bDG
+bHP
+cbt
+bVh
+bXo
+bYM
+cfb
+cfb
+cfb
+cfb
+cfb
+cfb
+cfb
+ccw
+cmN
+cgR
+fkR
+viD
+lIY
+nRl
+mKq
+fpW
+dSI
+fxZ
+fxZ
+fxZ
+bkZ
+wLY
+gJm
+qzA
+uvd
+hVs
+hVs
+hVs
+vxV
+hVs
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(115,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+ayF
+abG
+aaZ
+aeZ
+aco
+agS
+aho
+ahX
+afb
+agH
+agH
+aip
+aja
+xTe
+akz
+alg
+agn
+agn
+amN
+aoZ
+apT
+anw
+anz
+cXU
+apl
+aqc
+aqc
+aqc
+aqc
+aqc
+aqc
+awm
+axD
+ahn
+ahn
+ahn
+ahn
+ahn
+ahn
+ahn
+ahn
+aJs
+aJq
+aMd
+aNz
+aOE
+aPS
+aRo
+aSA
+aTX
+aVm
+aWU
+aYy
+aZR
+aZR
+aZR
+aZR
+aZR
+bfw
+wZI
+aBa
+aBW
+bjy
+aEP
+nYe
+aBa
+bqG
+bsa
+eih
+pQN
+bsa
+nbT
+bwb
+aJq
+bBr
+bCv
+bCv
+bCv
+bCv
+bCv
+bJq
+bKw
+bLH
+bQf
+bNO
+bQg
+bQf
+bQt
+bTK
+bTK
+bVU
+bUE
+bWM
+bXJ
+bMK
+bMK
+bYH
+bYH
+bVg
+bXn
+bYG
+cfb
+cfF
+cfb
+cik
+cjg
+cjU
+cfb
+clM
+cfz
+cgR
+ccw
+owT
+wKZ
+rEB
+bkZ
+oXJ
+roP
+oYS
+oYS
+fxS
+bkZ
+dlO
+gAi
+dIt
+ccw
+ePe
+hVs
+hVs
+hVs
+hVs
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(116,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBD
+ayF
+abG
+aaZ
+afc
+aco
+agU
+ahp
+ahY
+afd
+afd
+ahB
+aiq
+ajb
+mml
+ajF
+akN
+akY
+alE
+amU
+apH
+apX
+aqC
+anz
+gfC
+aod
+aqf
+ahT
+ahT
+ahT
+ahT
+ahT
+awn
+axF
+anF
+anF
+anF
+anF
+anF
+anF
+anF
+aoa
+aJu
+aKF
+aMf
+aNB
+aOE
+aPW
+aRr
+aSD
+ceh
+aVp
+aWX
+aYB
+aZU
+aZR
+aZR
+bbm
+beh
+bfx
+qcm
+aBa
+aBa
+aBa
+aBa
+aBa
+aBa
+wql
+bsg
+yhz
+ouQ
+fTC
+nbT
+aJq
+aJq
+bBu
+bCv
+bAT
+bDL
+bDq
+bCv
+bJs
+bKy
+bLK
+bLK
+bML
+bOT
+bQi
+bRs
+bSC
+bUO
+bUG
+bVO
+bWO
+bXK
+bLK
+bZz
+caw
+bYH
+bVo
+bXq
+bZe
+cfb
+cfH
+cSL
+cim
+cim
+ceo
+cfb
+cfa
+cje
+cgR
+ccw
+owT
+fJZ
+fPU
+lHk
+uzi
+bkZ
+qeF
+naN
+xrc
+bkZ
+lpA
+xuz
+dIt
+uvd
+ciZ
+wbd
+kVO
+hLJ
+ciZ
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(117,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+adR
+abo
+adR
+adR
+adR
+abI
+acM
+adh
+adM
+afe
+agI
+ahQ
+ait
+aje
+eFx
+alj
+afM
+akZ
+alM
+amV
+apc
+aqr
+aqC
+anT
+aoA
+apn
+aqe
+arf
+arf
+arf
+arf
+arf
+arf
+arf
+arf
+arf
+dgz
+dgz
+dgz
+dgz
+dgz
+dgz
+aJn
+aJn
+aJq
+aJq
+aOE
+aPS
+aRq
+aSC
+aUa
+aVo
+aWW
+aYA
+aYz
+bbn
+bcg
+aZU
+beg
+aYB
+qOB
+qBi
+ayF
+ayF
+ayF
+ayF
+ayF
+fxV
+fxV
+fxV
+fxV
+fxV
+fxV
+aJq
+aJq
+bBt
+bCv
+bDH
+bFf
+bGB
+bCv
+bJs
+bKy
+bLJ
+agd
+bNP
+bOS
+bQh
+bRr
+bSB
+bTL
+bUF
+bVN
+bWN
+bXM
+bYJ
+bRi
+bZy
+cbu
+bVm
+bXp
+bYO
+cfc
+cgO
+ccj
+cBM
+cdU
+cSZ
+ckL
+cmF
+cje
+cgR
+uvd
+oxl
+gAi
+fPU
+lHk
+uzi
+vnu
+mDB
+pRx
+mDB
+vnu
+gIy
+gAi
+izw
+jrl
+peI
+gBa
+ciZ
+ciZ
+cMp
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(118,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+adR
+aaY
+abJ
+abR
+adR
+acq
+ahX
+adi
+adP
+ahK
+ahK
+ahR
+aiv
+adg
+xSW
+ajI
+alC
+ala
+alN
+amW
+apv
+aqt
+aqF
+anz
+aoB
+aod
+aqe
+arf
+aqa
+atf
+arf
+aqa
+atf
+arf
+aqa
+atf
+dgz
+tqg
+ujF
+ujF
+ujF
+dgz
+ayF
+aJn
+aJq
+aJq
+aOE
+aPX
+aRs
+aSE
+aUc
+aVm
+aWY
+aYC
+aYA
+bbp
+bbp
+bfx
+bbp
+bfz
+sqp
+aZV
+aZV
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+fxV
+aJq
+aJq
+aXf
+bCv
+bDK
+bFi
+bGE
+bCv
+bJs
+bKy
+bLM
+alk
+bNQ
+bOV
+bQk
+bRt
+bSD
+bTM
+bUH
+bVQ
+bVZ
+bXM
+bLK
+cew
+bTh
+cdt
+bVq
+bXI
+bZg
+bZD
+cbq
+ccl
+cdm
+cio
+cjY
+ceq
+clQ
+cje
+cgR
+uvd
+oxl
+gAi
+daY
+rGC
+rGC
+kOV
+xol
+etE
+dDc
+pSn
+uml
+uRx
+sra
+uvd
+hVs
+sTI
+iaZ
+hVs
+hVs
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(119,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+abo
+abk
+abk
+abk
+adR
+agq
+agV
+aaZ
+aaZ
+agX
+aih
+aaZ
+aaZ
+aaZ
+xGQ
+ajN
+amc
+alo
+alY
+ans
+ary
+agn
+anA
+anz
+gfC
+aod
+aqe
+arf
+apY
+ate
+arf
+apY
+ath
+arf
+apY
+ath
+dgz
+fvY
+dvc
+dzi
+vsM
+dgz
+ayF
+aJn
+aLY
+aLY
+aOG
+aPR
+aPR
+aPR
+aUb
+aVq
+aWM
+aYr
+aZV
+bbo
+bch
+bdi
+bbw
+bfy
+bgS
+bik
+aZV
+aZV
+bmx
+bmx
+bmx
+bqH
+bsh
+bsh
+bsh
+bsh
+bqH
+aJq
+aJq
+gnf
+bCv
+bDJ
+bCt
+bGD
+bCv
+bJs
+bKy
+bLL
+bOd
+bNQ
+bOU
+bTO
+bRr
+bSE
+bTN
+gfJ
+bVP
+bWP
+bXL
+bLK
+bRj
+bTg
+bUm
+bVp
+bXH
+bUm
+bZC
+cbp
+cck
+cin
+cjj
+cjX
+ckO
+ckH
+cja
+cny
+ccw
+jqS
+lfB
+hNw
+wKZ
+wKZ
+wKZ
+vUs
+wKZ
+wKZ
+uge
+wKZ
+mqh
+tQY
+ccw
+dSF
+vLM
+sAQ
+hVs
+gAE
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(120,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+adR
+abO
+wlI
+abO
+abV
+ags
+ags
+adj
+afQ
+afr
+akc
+aik
+akh
+adR
+esL
+aiG
+amf
+anr
+aqN
+arC
+asq
+agn
+anA
+anz
+aoD
+aod
+aqe
+arf
+aqn
+ath
+arf
+auw
+ath
+arf
+ayV
+ath
+dgz
+aCd
+qIw
+gfD
+woR
+dgz
+aJw
+aJw
+aMh
+aJq
+aOE
+aJn
+ayF
+aPR
+aUe
+aVs
+aXa
+aYD
+aZX
+baf
+bdk
+mRQ
+bek
+bfB
+bgU
+bdk
+bjF
+blc
+bmz
+bnY
+bpk
+bqJ
+bsj
+btI
+btd
+bwr
+bqH
+aMm
+aJq
+bBv
+cBy
+bDM
+bCw
+bDr
+bCy
+bGP
+bHn
+bLN
+alX
+bNS
+bOX
+bQm
+bRv
+cGG
+glY
+bTP
+bVX
+bWQ
+bWQ
+bWQ
+bRm
+bTj
+caA
+cer
+ccs
+bZu
+cfb
+cfb
+cgS
+ciq
+cfb
+cfb
+cfb
+clR
+cgR
+cgR
+uvd
+fqD
+jsT
+xfY
+xaS
+fHs
+dhT
+gcj
+fHs
+fHs
+gcj
+wun
+rvC
+jfm
+tPe
+tPe
+okG
+ccw
+ccw
+ccw
+ccw
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(121,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+abo
+abO
+abO
+abO
+abO
+abO
+abO
+adk
+abo
+afD
+afU
+aju
+aki
+akk
+akq
+lwN
+amq
+agn
+amb
+ant
+agn
+agn
+anA
+anz
+aoC
+aod
+aqe
+arf
+asd
+atg
+arf
+asd
+awo
+arf
+asd
+aAb
+dgz
+iVU
+aDK
+vHj
+eVC
+dgz
+aJv
+khV
+aMg
+bHt
+aOE
+aJn
+ayF
+aPR
+aUd
+aVr
+aWZ
+aYq
+aZW
+aZG
+bej
+bdj
+bej
+bfA
+bgT
+bil
+bej
+blb
+bmy
+bnX
+bpj
+bqI
+bsi
+btH
+btc
+bwq
+bqH
+aJq
+aJq
+aXf
+bCv
+bAU
+cAL
+bFg
+bFs
+bJt
+bKy
+bLK
+bMK
+bNR
+bOW
+bQl
+bRu
+iYC
+rca
+bUI
+bVR
+bWQ
+bOO
+bQe
+bRk
+bTi
+caA
+bVr
+bXN
+bZt
+bZE
+cbs
+cCT
+cdn
+cej
+cep
+ces
+clN
+ccm
+ckF
+ckF
+tlu
+wlf
+rUG
+ccw
+ccw
+ccw
+lzX
+hVs
+hVs
+kNt
+wIY
+wjz
+iGX
+iJM
+kbT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(122,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+adR
+abl
+abN
+abN
+abN
+abN
+acO
+adl
+aet
+agy
+aha
+aah
+afo
+adR
+agD
+agF
+gyr
+alq
+amd
+anu
+asb
+agn
+aqH
+anz
+aoF
+apo
+aqh
+arh
+asg
+atj
+aul
+auR
+atj
+mps
+tKk
+atj
+aAX
+azc
+atj
+aFe
+aul
+aHT
+aJy
+aJy
+aMj
+aJq
+aOE
+aJn
+ayF
+aPR
+aPR
+aPR
+aXc
+aPR
+aZV
+baq
+baQ
+wcB
+bcQ
+bfC
+bgV
+bim
+bjG
+aZV
+bmB
+bnZ
+bpl
+bqH
+bsl
+btK
+buW
+bwt
+bqH
+aLY
+aLY
+bBx
+bCv
+apG
+bFk
+bDs
+bCv
+bJs
+bHo
+bLK
+bMK
+bMK
+bOY
+bQn
+bRx
+bMK
+bUP
+bUJ
+bVS
+bWQ
+bXP
+cBI
+bRS
+bTH
+caA
+bWh
+cdt
+bZA
+cfh
+cfM
+cco
+cdp
+cel
+cyM
+ckT
+cgU
+cco
+cgU
+cgU
+cis
+cjN
+wAN
+cgR
+uvd
+hVs
+ulB
+cXi
+cXi
+rEJ
+hVs
+hhc
+ccw
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(123,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+abo
+abm
+abP
+abS
+abS
+abS
+acP
+adm
+afR
+agx
+agZ
+ahI
+aiw
+adR
+vIo
+ake
+ame
+aaQ
+amg
+anv
+apQ
+agn
+anA
+anz
+aoE
+aod
+aqg
+aun
+asf
+ati
+auk
+aux
+avt
+axL
+bbl
+azT
+nZE
+ker
+aDG
+aFd
+auk
+aHH
+aJg
+aKo
+aLO
+aJq
+aOE
+aJn
+ayF
+ayF
+aPR
+aVt
+aXb
+aYo
+aZV
+bao
+baP
+asD
+bcP
+cBo
+bgS
+bbw
+bbw
+aZV
+bmA
+bmx
+bmx
+bqH
+bsk
+btJ
+buV
+bws
+bqH
+aJq
+aJq
+byW
+bCv
+bAV
+bCv
+bCv
+bCv
+bJs
+bKz
+bLK
+bQr
+bNT
+bOV
+bQo
+bRw
+bSF
+daI
+bTP
+bRA
+bWQ
+bXO
+bQq
+bRo
+bTG
+caA
+bVK
+bYb
+bZw
+cap
+ctR
+ccn
+cdo
+cek
+ccw
+cet
+cfd
+cfB
+cfI
+cgQ
+cjS
+cjN
+wAN
+cgR
+twn
+sAQ
+jIb
+qXZ
+dVX
+dVX
+hVs
+hVs
+ccw
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(124,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+adR
+abn
+abH
+abn
+abn
+abn
+adR
+adR
+adR
+agA
+afU
+ahF
+aiz
+adR
+akf
+akJ
+yhx
+agn
+agn
+agn
+agn
+agn
+anC
+anU
+anC
+cSA
+aqe
+arf
+arf
+arf
+arf
+arf
+ltK
+xAv
+awr
+awr
+ruo
+aAh
+aAh
+aAh
+aAh
+aAh
+aAh
+aAh
+aLR
+aJq
+aOE
+aJn
+ayF
+ayF
+aTQ
+aVd
+aXe
+aYp
+aZV
+bbv
+bcm
+bcm
+bem
+bfD
+bgW
+bfD
+bjI
+aZV
+bmC
+boa
+bpm
+bqH
+bsn
+btL
+buY
+buY
+bqH
+ftE
+aJq
+aXf
+bCv
+bDP
+bCv
+bAw
+bHV
+bJw
+bKC
+bLK
+bMN
+bNV
+bOV
+bQo
+bRw
+bSF
+daI
+bVW
+bVY
+bWQ
+bWQ
+bWQ
+bWQ
+caD
+bWQ
+ccw
+ccw
+cey
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+ccw
+cDl
+cjN
+hGf
+iXc
+ccw
+ccw
+ccw
+ccw
+ccw
+uvd
+uvd
+uvd
+ccw
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(125,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+abq
+abq
+abq
+abT
+abW
+abq
+abq
+aff
+aeU
+ajA
+akd
+adB
+agl
+uHp
+agQ
+agN
+akw
+alb
+alG
+amr
+amY
+amY
+ajp
+ajp
+aoG
+cSA
+aqe
+arf
+aqo
+atm
+fPL
+arf
+avv
+awu
+awr
+aAd
+tkq
+aAh
+aDL
+aAh
+aGk
+aAh
+aJz
+aAh
+aLQ
+aJq
+aOE
+aJn
+ayF
+ayF
+aJw
+aVu
+aXd
+aYE
+aZV
+bbu
+bbw
+bbw
+bbw
+bbw
+bbw
+bbw
+bjH
+aZV
+bmx
+bmx
+bmx
+bqH
+bsm
+btL
+buX
+buX
+bqH
+aJq
+aJq
+bBy
+bzs
+bDO
+bFl
+bGH
+bHU
+bJv
+bKB
+bLK
+bMM
+bNV
+bOQ
+bQj
+bRy
+cfN
+bUQ
+bUK
+bVT
+bWR
+bXQ
+cfN
+bZF
+bXT
+bYK
+ccv
+cdw
+cex
+caG
+cfN
+cbF
+bLQ
+cdx
+bOh
+bOh
+bOh
+bOh
+bOh
+ccw
+cDm
+cjP
+ckF
+cDJ
+ckF
+cpE
+cjR
+crW
+csg
+crk
+crk
+crk
+ayF
+ayF
+ayF
+ayF
+azl
+azl
+azl
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(126,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+abq
+adN
+aeu
+aez
+aci
+acs
+acR
+afh
+afV
+agB
+ahd
+ahI
+akO
+abp
+ajj
+ajP
+aky
+alc
+alI
+ams
+amZ
+amZ
+cqQ
+anW
+aoH
+cSA
+aqe
+arf
+asm
+atm
+blU
+avg
+awp
+axN
+awr
+awr
+haM
+aAh
+aDQ
+aAh
+aGl
+aAh
+aBy
+aAh
+rqf
+aJq
+aOE
+aJn
+ayF
+ayF
+aJn
+aVv
+aXg
+aYF
+aZV
+nZL
+bcn
+tgH
+ben
+bfE
+bgX
+bbw
+bjJ
+bld
+bmD
+cTD
+bmD
+bqK
+bso
+btN
+buZ
+buZ
+bqH
+byN
+aJq
+bBA
+bCz
+bDQ
+bFn
+bGJ
+bHX
+bJy
+bKE
+bLP
+bMP
+bIG
+bJB
+bKV
+bRB
+bSI
+bUS
+bUM
+bVV
+bVV
+bVV
+bWT
+bZG
+caE
+cbA
+ccy
+bZH
+bZI
+bQu
+bOd
+cgW
+cit
+axs
+ckb
+ckV
+clU
+clU
+bOh
+ccw
+coZ
+cgU
+cgU
+cDK
+crw
+cjO
+ccw
+crX
+cfK
+ayF
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+aAu
+aAu
+aAu
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(127,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aaL
+adO
+acr
+acQ
+adn
+agw
+abq
+afg
+afU
+afU
+ahc
+ahH
+akR
+abp
+aji
+ajO
+akw
+ajn
+alH
+amr
+amY
+amY
+ajp
+anV
+ajo
+cSA
+aqe
+arf
+ari
+asu
+mPk
+aun
+avR
+xAv
+ofU
+awr
+sFW
+aAh
+aDM
+aGx
+aDM
+aDM
+aDM
+aAh
+aMm
+aJq
+aOE
+aJn
+aJn
+aJn
+aJn
+aJs
+aXf
+aYk
+aZV
+aZV
+aZV
+aZV
+aZV
+aZV
+aZV
+aZV
+aZV
+aZV
+bmx
+bmx
+bmx
+bqH
+bqH
+btM
+bqH
+bqH
+bqH
+aJq
+bHt
+bBz
+bzs
+bzs
+bFm
+bGI
+bHW
+cBD
+bKD
+bLO
+bMO
+bIF
+bOZ
+bQp
+bRA
+bTP
+bOd
+bOd
+bOd
+bOd
+bOd
+bXS
+bOd
+bXU
+cbA
+ccy
+bZH
+bZI
+cfi
+bOd
+cgV
+bMQ
+crk
+bQA
+ckU
+clT
+cmU
+bOh
+ccw
+cpa
+cjc
+cqo
+cDL
+cjk
+cjm
+ccw
+ccw
+cig
+ayF
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(128,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aaM
+abr
+abQ
+abU
+acj
+acv
+dJL
+afj
+afX
+agC
+ahf
+aks
+akS
+abp
+ajl
+ajR
+akw
+ald
+alJ
+amt
+ajp
+ajp
+ajp
+anY
+ajo
+apq
+aqe
+arf
+arf
+arf
+arf
+arf
+ltK
+axP
+azb
+aAi
+uIO
+aCn
+xBk
+dtx
+aGm
+aHV
+aDM
+hIM
+aJq
+aJq
+aJq
+aJr
+aJr
+aJr
+aJr
+aJr
+aXh
+aYG
+aZY
+aYG
+aYG
+bdn
+bep
+aYG
+aYG
+aYG
+aYG
+ble
+bmE
+bmE
+bpn
+bqL
+bsp
+btO
+bva
+bwu
+bwu
+bwu
+kPj
+bBB
+eBX
+bzs
+bFp
+bGJ
+bHX
+bJA
+bKG
+bLK
+bMR
+bIH
+bJF
+bRy
+bTQ
+ecE
+bOd
+bOd
+bOd
+bOd
+bOd
+bXS
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+cfQ
+cgY
+ciu
+aAg
+ckb
+ckW
+clU
+clU
+bOh
+ccw
+ccw
+cpI
+ccw
+cDL
+cjl
+cjQ
+cjV
+cig
+ayF
+ayF
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(129,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aaO
+adQ
+act
+acu
+acu
+acF
+abq
+afi
+afW
+afW
+ahe
+ahJ
+ais
+abp
+ajk
+ajQ
+akw
+ajn
+alH
+amr
+amY
+amY
+ajp
+anX
+ajo
+app
+aqi
+arf
+ask
+atm
+fPL
+arf
+awq
+axO
+aza
+kmw
+xrN
+aAh
+aAh
+aAh
+aAh
+aAh
+aDN
+aAh
+aMo
+aNC
+aJq
+aJq
+aJq
+aJq
+aJq
+aJq
+aJq
+aJq
+aLY
+aJq
+bco
+aJq
+beo
+aJq
+aJq
+aJq
+aJq
+aJq
+aJq
+aJq
+aJq
+aLY
+aJq
+bAk
+aJq
+aJq
+aJq
+aJq
+bAj
+aJq
+aKG
+bzs
+bFo
+bDu
+bFt
+bGQ
+bHp
+bLK
+bMQ
+bNY
+bPa
+bYN
+bRC
+bSK
+bOd
+bOd
+bOd
+bOd
+bOd
+bXS
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+apa
+cgX
+apF
+crk
+bOh
+bOh
+bOh
+bOh
+bOh
+cig
+cpb
+ciZ
+cqp
+cDN
+cjT
+cgR
+crP
+cig
+ayF
+ayF
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(130,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+abq
+aes
+aey
+aeD
+afs
+acL
+acS
+afk
+afZ
+agE
+ahh
+ahM
+aiC
+abp
+aiY
+ajE
+ajH
+akn
+ale
+alD
+ana
+ana
+fMp
+amu
+ajo
+aps
+aqk
+arf
+aqo
+atm
+aHw
+avn
+awv
+axX
+aze
+awr
+flE
+aAh
+aDU
+aBz
+aBz
+aAh
+dTI
+ujv
+aJq
+aJq
+aJq
+aJq
+aRt
+aJq
+aJq
+aJq
+aJq
+aJq
+aLY
+aJq
+bcp
+aJq
+beq
+aJq
+bgY
+aJq
+aJq
+aJq
+bAi
+bmS
+bmS
+bpC
+bqN
+aNr
+aJq
+aJq
+bxL
+byX
+aXh
+bmE
+bCA
+bzs
+bCC
+bDA
+bFx
+bGW
+bKI
+bLQ
+bMT
+bOb
+bPd
+cBF
+bRD
+bSK
+bOd
+bOd
+bOd
+bOd
+bOd
+bXS
+bOd
+bOd
+bOd
+cBJ
+bOd
+bOd
+bOd
+bOd
+cha
+civ
+axs
+ckb
+ckY
+clW
+clW
+bOh
+cig
+cig
+czg
+cig
+cDN
+crh
+crA
+crR
+crY
+azj
+crk
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(131,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+abq
+abq
+abq
+abq
+abq
+abq
+abq
+afg
+afY
+afY
+ahg
+ahL
+aiu
+abp
+ajm
+ajS
+ajn
+ajT
+akA
+amr
+amY
+amY
+ajp
+anV
+ajo
+apr
+aqj
+arf
+ark
+asu
+xPk
+aun
+awt
+awr
+awr
+azX
+aAZ
+aCe
+aDT
+cPn
+cPn
+mkO
+uQS
+aAh
+aJC
+aJC
+aJC
+aQg
+bYP
+aJC
+aQg
+aJC
+aJC
+aQg
+aJC
+aJC
+aHP
+aHP
+aHP
+bfF
+bfF
+bfF
+bfF
+bfF
+bfF
+bfF
+bfF
+bfF
+bqM
+brV
+bof
+bwv
+bvj
+bvj
+bvj
+bvj
+bvj
+bvj
+bCB
+bCP
+bvj
+bvd
+bKH
+bLK
+bMS
+cfQ
+bPc
+bQs
+bTR
+bSJ
+bOd
+bOd
+bOd
+bOd
+bOd
+bXR
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+cgZ
+bSK
+crk
+bQA
+ckX
+clV
+cmV
+bOh
+cig
+crk
+nVR
+crk
+cDN
+cqY
+cqY
+cqY
+cig
+crk
+azn
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+dIH
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(132,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+abo
+aeB
+afm
+agb
+agG
+ahi
+ahN
+aix
+abp
+ajp
+ajU
+ajn
+trb
+ajn
+amr
+ajp
+ajp
+ajp
+ajp
+ajo
+apt
+aqm
+arf
+arf
+arf
+arf
+arf
+awz
+awr
+awr
+avG
+aBA
+aAh
+aDP
+aBx
+aBx
+aAh
+qqs
+sYR
+aMq
+adq
+aQb
+aPZ
+aRu
+kAH
+aKR
+tCa
+aXi
+hgO
+baa
+aJC
+bcq
+bcq
+bcq
+bfF
+bha
+bio
+bgF
+blf
+bmF
+bob
+bnB
+bfF
+bqR
+brX
+bof
+bwx
+bvj
+bwB
+bxa
+byZ
+bzI
+bAX
+bCF
+bDB
+bFB
+bvd
+bKJ
+bLR
+bMV
+bTP
+bOR
+bQv
+bRF
+bSM
+bTS
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+cbD
+chb
+wzX
+aAg
+ckb
+ckZ
+clW
+clW
+bOh
+cig
+ayF
+ayF
+ayF
+cDN
+ayF
+ayF
+ayF
+ayF
+ayF
+azP
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(133,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+abo
+aeA
+afl
+aga
+abp
+ahj
+abp
+xJW
+abp
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+aoa
+ajo
+apt
+aql
+pRW
+pRW
+pRW
+pRW
+avw
+awy
+nfw
+nfw
+vaW
+wqF
+aAh
+aAh
+aAh
+aAh
+aAh
+aAh
+aAh
+aKR
+aKR
+fxe
+aPY
+kAO
+aRx
+aKR
+iTU
+pqe
+aPY
+aZZ
+aQg
+aYV
+aYV
+aYV
+bfF
+bgZ
+bin
+bin
+bjK
+bkK
+bkK
+bkK
+bpD
+bqO
+bLX
+btf
+bui
+bvi
+bww
+bwZ
+byY
+bzH
+bAW
+bCE
+bFv
+bFz
+bvd
+bKH
+bLK
+bMU
+bOc
+bPe
+bTP
+bRE
+bUL
+cfT
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+cfP
+ccz
+bSJ
+crk
+bOh
+bOh
+bOh
+bOh
+bOh
+ccw
+ayF
+ayF
+ayF
+cDL
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(134,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+asX
+abp
+abp
+adR
+abp
+lJC
+agj
+adR
+ahl
+uHp
+aic
+ahT
+ahT
+ahT
+ahT
+ahT
+ahT
+ahT
+alL
+ahT
+anb
+ahT
+ydM
+anZ
+apu
+arf
+arf
+arf
+arf
+arf
+awA
+axT
+axW
+aAl
+cHf
+aJC
+aDR
+aFl
+kqI
+aHZ
+aJC
+aKJ
+hIL
+aKR
+wxT
+moD
+aQd
+aQa
+aKR
+elh
+wxT
+uBa
+bac
+aJC
+aYV
+aYV
+aYV
+bfF
+bhc
+bip
+bgP
+bjL
+bkL
+bmT
+bnD
+bpM
+bqT
+bFD
+bJG
+bJG
+bvl
+bwE
+bxc
+bzb
+bzK
+bBb
+cpG
+bDC
+bId
+bvd
+bKH
+bLK
+bMX
+bTP
+bPg
+bQx
+bRF
+bSM
+bTU
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bMZ
+bTS
+caH
+cbE
+chd
+bQy
+axv
+ckc
+clb
+clY
+clZ
+bOh
+ayF
+ayF
+ayF
+ayF
+awX
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(135,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+acU
+adr
+sXy
+aeC
+anF
+agc
+abp
+ahk
+aoJ
+aib
+aif
+aif
+aif
+aif
+aif
+fpz
+bkV
+jKP
+alK
+aif
+anc
+anc
+anD
+aoI
+arf
+eSe
+asN
+aur
+avy
+nSt
+axS
+azk
+aAk
+tvi
+aJC
+aDY
+aDY
+kqI
+aKR
+aJk
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+bab
+aJC
+ucq
+aYV
+ber
+bfF
+bhb
+bip
+bjO
+bip
+bmG
+bip
+bnC
+bpF
+bqS
+brY
+bwz
+bwy
+bvj
+bza
+bxb
+bvh
+bCD
+bAY
+bCH
+bDR
+bIc
+bvd
+bKH
+bLK
+bMW
+bOe
+bPf
+bQw
+bRG
+bSN
+bPg
+bTS
+bTS
+cCE
+bWa
+bTS
+bTS
+bTS
+bYL
+bTS
+cdB
+caF
+cbB
+cfT
+chc
+bMQ
+crk
+bQA
+cla
+cBP
+cmW
+bOh
+ayF
+ayF
+axR
+ayF
+awX
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(136,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+crk
+abp
+abp
+abp
+abp
+mxn
+abp
+abp
+ahn
+ahn
+ahn
+uhm
+ahn
+aiA
+ahn
+grc
+anE
+aod
+ahn
+apx
+ahn
+ahn
+ahn
+ahn
+ahn
+arf
+oAB
+eQb
+aut
+arf
+aXF
+awr
+awr
+aAn
+rqk
+aJC
+aEc
+aFk
+aGw
+aKR
+aJC
+aKr
+aKR
+aKR
+sLj
+sLj
+vcN
+aKR
+aKR
+aKR
+sLj
+aKR
+aKR
+bbx
+aYV
+aYV
+tkB
+bfF
+bhd
+bis
+bjR
+bis
+bmI
+bod
+bpt
+bfF
+bqV
+bEe
+bBL
+bwA
+bvj
+bAl
+bAl
+bvh
+bzS
+bBc
+bCJ
+gZG
+cCp
+bvd
+bKH
+bLK
+bMZ
+bOg
+bPi
+bQz
+bRJ
+bUN
+bTV
+bUT
+bWc
+bWU
+bXV
+bYT
+bZK
+cfT
+cbG
+ccA
+cdC
+ceB
+cbC
+cez
+chf
+cix
+axv
+ckd
+clc
+clZ
+clZ
+bOh
+ayF
+ayF
+ayF
+ayF
+awX
+ayF
+ayF
+ayF
+ayF
+ayF
+azP
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(137,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+abp
+crk
+nVR
+crk
+abp
+aBM
+ayF
+ahn
+nQi
+ahn
+uei
+ahn
+grc
+anE
+aod
+aoK
+oyX
+aqp
+ahn
+tzQ
+pgf
+gzf
+eQb
+eQb
+eQb
+lUS
+aun
+avz
+awr
+awr
+aAn
+jGW
+aJC
+aJC
+plC
+oAb
+aJC
+aJC
+aKq
+aKR
+aNF
+hOv
+oax
+oxm
+aSH
+aKR
+rmN
+eJa
+hSZ
+aKR
+aQg
+aYV
+aYV
+bes
+bfF
+bfF
+bir
+bjQ
+blh
+bfF
+bfF
+bfF
+bfF
+bqU
+bsq
+bvj
+bvj
+bvj
+bvj
+bvj
+bvj
+bvj
+bvd
+bFu
+jex
+bvj
+bvd
+bKH
+bLK
+bMY
+bOf
+bPh
+bQy
+bRI
+ceA
+bPh
+bQy
+bRI
+cCF
+bPh
+bQy
+bRI
+bQy
+bPh
+bQy
+bRI
+ceA
+bVO
+bLK
+che
+bLK
+crk
+bOh
+bOh
+bOh
+bOh
+bOh
+ayF
+ayF
+ayF
+ayF
+awX
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(138,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+bBR
+ayF
+ayF
+ayF
+adR
+aBM
+ayF
+ahn
+ahn
+ahn
+tAH
+ahn
+eMs
+anG
+aoe
+aoL
+apy
+aqq
+ahn
+qLR
+oIW
+arf
+kmS
+ast
+eQb
+auv
+arf
+avA
+axW
+azo
+aAp
+uxY
+aBC
+aCt
+aEA
+aGz
+aIb
+aJC
+aKN
+aKR
+aKR
+aOJ
+oIJ
+unA
+aKR
+akH
+aUg
+bFC
+hSZ
+aKR
+bbx
+aYV
+aYV
+bet
+bfH
+aiP
+wbE
+bhh
+wbE
+bmJ
+bof
+bpu
+bqP
+bsy
+bEe
+bvh
+ajv
+bxN
+bze
+bAp
+bvh
+bCG
+bBd
+bFw
+bDD
+bFJ
+bvd
+bKH
+bzs
+avm
+ayF
+avm
+ayF
+avB
+ayF
+avm
+ayF
+avB
+awd
+awe
+awN
+aws
+awN
+awe
+awN
+aws
+awN
+awN
+ksp
+chg
+ksp
+mbP
+mbP
+mbP
+mbP
+mbP
+mbP
+mbP
+mbP
+mbP
+mbP
+tMj
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(139,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+crk
+crk
+ahn
+ahn
+khB
+ahn
+ahn
+ahn
+ahn
+ahn
+arf
+arf
+arf
+asd
+arf
+arf
+arf
+arf
+hlV
+oHB
+azf
+aAo
+vyp
+aBB
+aBB
+aBB
+aGy
+aIa
+cNE
+aKM
+aMu
+aMu
+feG
+tif
+aMu
+aMu
+aMu
+jgA
+aSq
+aKR
+bad
+bby
+aYV
+aYV
+bet
+bfG
+bhe
+bit
+bjS
+tCd
+bli
+boe
+bli
+bpN
+bqX
+bEe
+btg
+bDR
+bDR
+bDR
+bDR
+bzc
+bDR
+bDZ
+bCK
+bFy
+bFF
+bvd
+bKH
+bzs
+avm
+bOh
+bPj
+bQA
+bPj
+bOh
+bPj
+bQA
+bPj
+bOh
+bPj
+bQA
+bPj
+bOh
+bPj
+bQA
+bPj
+bOh
+ayF
+bMK
+cyG
+bMK
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAu
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(140,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+dFX
+wWW
+dqb
+lCo
+ohq
+wXl
+iou
+pkF
+xZL
+wig
+str
+rrM
+clO
+ahC
+ahP
+oZl
+awB
+att
+azh
+fHG
+fHG
+kxf
+ufD
+alP
+aGI
+aId
+aJD
+aKP
+aMx
+aMx
+aQe
+aOL
+aMx
+aMx
+aMx
+aMx
+rqE
+aKR
+aZb
+aJC
+aYV
+aYV
+bet
+bfG
+bhe
+bhh
+bjU
+blk
+blk
+boh
+biu
+bpO
+bqY
+bss
+btg
+buk
+bvm
+bDT
+buk
+bvh
+bzU
+bBe
+bCS
+bDE
+bFK
+bvd
+bKH
+bzs
+avm
+bOh
+bPl
+bQB
+bRL
+bOh
+bTX
+bUV
+bWd
+bOh
+bXX
+bYV
+bZL
+bOh
+cbI
+ccC
+cdD
+bOh
+ayF
+bMQ
+cyG
+bMK
+bMK
+bMK
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+azP
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(141,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+asY
+ayF
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+ulM
+wcR
+uzs
+uzs
+uzs
+uzs
+uzs
+ecg
+jLT
+veS
+arm
+fHG
+aya
+fHG
+fHG
+auB
+atZ
+azg
+azp
+fHG
+aCu
+qOc
+alP
+aGH
+aIc
+aJC
+aKO
+aMw
+aNI
+aKR
+aKR
+acN
+acN
+acN
+acN
+acN
+aKR
+aKR
+aJC
+bcr
+aYV
+bet
+bfG
+bhe
+bhh
+bjV
+blj
+bmK
+bog
+bog
+bhh
+bsx
+bsr
+bvh
+bwD
+bDR
+bDR
+bAq
+bvj
+bCQ
+bDW
+bCP
+bvj
+bvj
+bJC
+bKH
+bzs
+avm
+bOh
+bPk
+bPm
+bPm
+bOh
+bTW
+bUU
+bTW
+bOh
+bXW
+bYU
+bXW
+bOh
+cbH
+ccB
+cbH
+bOh
+ayF
+bMQ
+cyG
+cKT
+cyG
+fNu
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+crk
+azV
+crk
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aAM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(142,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+azm
+gvX
+qWV
+con
+oVo
+con
+con
+eVJ
+ujS
+aqs
+coh
+fHG
+fHG
+fHG
+fHG
+pPi
+fHG
+ayb
+hWd
+fHG
+aCv
+mbU
+alP
+aGJ
+aIe
+aJC
+aJC
+aJC
+aJC
+aJC
+aJC
+aXj
+aVy
+aSY
+aVy
+xqG
+acN
+bah
+aJC
+aYV
+bdo
+beu
+bvk
+biu
+biu
+bjT
+blm
+bmL
+boi
+bpw
+ium
+bsx
+btX
+bvj
+bwG
+bxR
+bxR
+bvj
+bvj
+bzW
+bDZ
+bCT
+bGR
+bIj
+bJC
+bKH
+bzs
+avm
+bOh
+bPm
+bQC
+bPm
+bOh
+bTW
+bUW
+bTW
+bOh
+bXY
+bYW
+bXW
+bOh
+cbH
+ccD
+cbH
+bOh
+ayF
+bMQ
+cyG
+bMK
+bMK
+bMK
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBD
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(143,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+stF
+gvX
+con
+con
+con
+con
+con
+eVJ
+dqb
+qeA
+ahm
+fHG
+fHG
+fHG
+fHG
+pPi
+fHG
+ayb
+hWd
+fHG
+sci
+sEi
+alP
+aGJ
+aIe
+aka
+aLU
+aKQ
+aNu
+aJC
+aaz
+egt
+aQc
+aSZ
+aQc
+qaY
+acN
+bag
+aJC
+aYV
+aYV
+bet
+bfJ
+bhh
+bhh
+bgQ
+bll
+bhh
+bhh
+bpv
+bhh
+bsx
+btV
+bvh
+bwF
+bxQ
+bxQ
+bAr
+bvj
+bzV
+bDZ
+bzf
+bDR
+bIi
+bJC
+bKH
+bzs
+avm
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+ayF
+bMK
+axm
+sUh
+aAg
+aAg
+aAg
+aAg
+msM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+ayF
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ctZ
+ctZ
+ctZ
+ctZ
+ctZ
+ayF
+ayF
+ayF
+aBS
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aCm
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(144,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+dFX
+lnk
+gvX
+wQg
+con
+con
+con
+fyS
+eVJ
+dqb
+veS
+ahs
+sJI
+ahO
+fHG
+eAJ
+rvr
+nLu
+hcA
+ryr
+fHG
+aCu
+puh
+alP
+aGA
+aHS
+aJx
+aJx
+aMi
+aNE
+aOO
+aQi
+aRz
+aSF
+aQc
+aQc
+aXl
+aKR
+bai
+aJC
+aYV
+aYV
+bet
+bfH
+qTV
+bhh
+bhg
+bln
+bmM
+boj
+bof
+bhh
+bsx
+btV
+bvj
+bwI
+bxT
+bxQ
+bAt
+bvj
+bCM
+bDZ
+bDR
+bDR
+bIl
+bJC
+bKH
+bzs
+avu
+avx
+avx
+avx
+avx
+avx
+avx
+avx
+avx
+avx
+avx
+avx
+avx
+aww
+ayF
+ayF
+ayF
+ayF
+ayF
+cfj
+cfU
+cfj
+cfj
+ckf
+cfj
+cfj
+aAm
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+aAf
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+aAg
+msM
+ctZ
+ctZ
+cuo
+cuA
+cuM
+ctZ
+cvk
+cvk
+cvk
+cvk
+ayF
+ayF
+ayF
+ayF
+cvk
+cvk
+cvk
+cvk
+cvk
+cvk
+cvk
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(145,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+dqb
+gvX
+con
+con
+con
+con
+con
+eVJ
+iBv
+lZK
+fZm
+jmV
+epD
+ghD
+hBA
+xbn
+fHG
+reA
+lsk
+xXi
+jAN
+jEc
+alP
+aGL
+aHM
+aJm
+aKz
+mjr
+akt
+aJC
+aab
+aRg
+aQc
+aac
+aQc
+aXk
+aKR
+aKR
+aJC
+aYV
+aYV
+bev
+bfK
+bhi
+bhi
+bhi
+bfK
+bfK
+bfK
+bof
+bhh
+bsx
+btV
+bvh
+bwH
+bxS
+bzh
+bAs
+bvj
+bCL
+bxO
+bDR
+bDR
+bIk
+bJC
+bKH
+bzs
+bzs
+bzs
+bPn
+bPn
+bPn
+bzs
+bzs
+bPn
+bzs
+eWV
+bzs
+bzs
+bPn
+caI
+bPn
+bzs
+bzs
+bzs
+cfj
+cfj
+cjp
+chh
+ciy
+cke
+clg
+cfj
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+crk
+crk
+crk
+ayF
+ayF
+ayF
+ayF
+aAm
+ctY
+cuh
+cun
+cuz
+cuL
+cuY
+cvj
+cvs
+cvD
+cvk
+cvk
+cvk
+cvk
+cvk
+cvk
+cvX
+cvX
+cvX
+cvX
+cwq
+cwq
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(146,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+dqb
+kdO
+con
+con
+uSC
+con
+con
+akE
+wHk
+ewu
+pQp
+pQp
+oqj
+jBi
+fpl
+fpl
+jBi
+oDN
+sEM
+sEM
+pRs
+arj
+alP
+aGL
+aIe
+aJC
+aKS
+aMC
+aJC
+aJC
+aJI
+aJI
+aSI
+aJI
+aVA
+aJI
+aYK
+aJI
+aJI
+bcs
+aYV
+aYV
+bfK
+bhk
+bix
+bjX
+blp
+bmO
+bhi
+bpy
+bwz
+brg
+btZ
+bvj
+bwI
+bxV
+bzj
+bAv
+bvj
+bCO
+bDR
+bDR
+bDR
+bIn
+bJC
+bKL
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bUY
+pRg
+bWe
+pRg
+bWe
+bWe
+cdE
+bAw
+bzs
+bAw
+caK
+cfj
+ciB
+ckh
+chj
+ciA
+cjr
+clh
+cfj
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+csD
+cta
+csD
+cua
+ayF
+ayF
+ayF
+ayF
+ctZ
+cui
+cuq
+cuC
+cuO
+cuz
+cvm
+cvt
+cvt
+cvt
+cvL
+cvQ
+cvX
+cvX
+cvX
+cvX
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cvx
+cva
+cva
+cva
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(147,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+dqb
+gvX
+con
+con
+con
+con
+con
+eVJ
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+ayF
+alP
+aGL
+aIg
+aJH
+aKR
+aMB
+aJC
+aOP
+aJI
+aRA
+aVz
+aVz
+aVz
+aVz
+aYJ
+aJI
+mNW
+aYV
+aYV
+aYV
+bfK
+bhj
+biw
+bhs
+bjM
+bmN
+bok
+bpx
+bpP
+brf
+bhh
+bvh
+bwJ
+bxU
+bzi
+bAu
+bvj
+bCN
+bEa
+pHl
+bFA
+bIm
+bJD
+bKK
+bLS
+bNc
+bOj
+bNc
+bNc
+bNc
+bNc
+bTY
+bKH
+bzs
+bWV
+bzs
+bAw
+bZM
+cbJ
+ceC
+ceC
+cfW
+cfX
+chk
+chl
+ciz
+chi
+ciz
+cjq
+ckg
+cmb
+cpO
+cpQ
+cpQ
+cpQ
+cpQ
+czJ
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+azV
+csD
+csX
+ctg
+cua
+cua
+cua
+cua
+cua
+ctZ
+ctZ
+cup
+cuB
+cuN
+cuZ
+cvj
+cvj
+cvj
+cvj
+cvj
+cvP
+cvj
+cvj
+cvj
+cvj
+cva
+cva
+cva
+cva
+cvp
+cwv
+cvr
+cvp
+cvl
+cvr
+cwv
+cvp
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(148,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+dFX
+jMW
+gvX
+wQg
+con
+con
+con
+fyS
+eVJ
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+ayF
+alP
+aGL
+aIe
+aJI
+aJI
+aJI
+aJI
+aJI
+aJI
+aRC
+aSK
+aVz
+aVz
+aVz
+aYL
+aJI
+bbz
+aYV
+bdq
+aYV
+bfK
+bhl
+biy
+bjY
+bjN
+bkO
+bmU
+bnH
+bqQ
+bsx
+bhh
+bvj
+bvj
+bxR
+bxR
+bvj
+bvj
+bCQ
+bEd
+bof
+bof
+bof
+bJE
+bJE
+bJE
+bNd
+bIJ
+bPo
+bQE
+bRM
+bOr
+bTZ
+bKH
+bAw
+bAw
+bAw
+bAw
+bzs
+bzs
+bzs
+ccF
+cdG
+ceE
+cfl
+cfZ
+cki
+cld
+eHI
+cjt
+csq
+xEu
+wHz
+cmd
+cmd
+cmd
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+csD
+csO
+csD
+czk
+cti
+cua
+cua
+ctw
+ctH
+ctQ
+cuc
+cuj
+cuj
+cuE
+cuQ
+cuj
+cvk
+cvw
+cvw
+cvG
+cvM
+cvS
+cvZ
+cvG
+cvw
+cvw
+cvf
+cwh
+cwm
+cwr
+cvp
+cwx
+cwj
+cwu
+cAV
+cAZ
+cvl
+cvl
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(149,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+sth
+gvX
+con
+con
+con
+con
+con
+eVJ
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+ayF
+alP
+aGN
+aIh
+aJI
+aKT
+aMD
+aNM
+aOI
+aJI
+aRy
+aSJ
+aTM
+aVB
+aVz
+aVz
+baj
+bbz
+aYV
+bdp
+mvt
+bfK
+bfK
+bfK
+bfK
+bfK
+bfK
+bfK
+bnF
+bqQ
+bsx
+bhh
+bfJ
+bhh
+bhh
+bhh
+bhh
+bhh
+bzX
+bBm
+bof
+bGT
+bIo
+bof
+tRe
+bLU
+bNd
+bII
+bOr
+bQD
+bLY
+bMa
+bTZ
+bKH
+bzs
+bAw
+bXZ
+bAw
+bZN
+caK
+bzs
+ccE
+cdF
+ceD
+cfk
+cfY
+rfW
+ckj
+cjs
+cle
+cli
+uPT
+cmY
+cme
+cop
+cmd
+cmd
+cqs
+ayF
+ayF
+ayF
+ayF
+ayF
+csD
+csN
+csV
+ctb
+cth
+cua
+ctr
+ctu
+ctG
+ctP
+cub
+cuj
+cur
+cuD
+cuP
+cvc
+cvk
+cvu
+cvu
+cvu
+cvu
+cvR
+cvY
+cwb
+cvu
+cvu
+cva
+cwg
+cwl
+cwr
+cvl
+cww
+cwD
+cvv
+cvv
+cAY
+cBb
+cBd
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(150,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+wag
+gvX
+con
+con
+voW
+con
+con
+eVJ
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+ayF
+alP
+aGB
+aIf
+aJA
+aKC
+aKC
+aKC
+aON
+aQk
+aRD
+aSM
+aVD
+aVE
+aXm
+aVz
+juG
+bbz
+aYV
+bdp
+aYV
+bfL
+bhn
+biz
+biz
+biz
+bmR
+bfL
+bol
+bqQ
+bsx
+bst
+bfJ
+bhh
+ajB
+bwK
+bhh
+bhh
+bhh
+btV
+bof
+bGV
+bIp
+bof
+bKM
+bLW
+bNd
+bOn
+bOr
+bOr
+bRO
+bSQ
+bTZ
+bUZ
+bLT
+bLT
+bLT
+bLT
+bLT
+caM
+cbL
+cbL
+cdI
+ceG
+cfj
+cgb
+chn
+ciE
+cjv
+clj
+ckk
+cmf
+cna
+cnC
+cor
+ciM
+cpN
+cqt
+ayF
+ayF
+ayF
+ayF
+ayF
+csD
+csU
+csW
+ctc
+ctc
+cto
+ctt
+cty
+ctJ
+ctT
+cue
+cul
+cuu
+cuG
+cuS
+cve
+cvo
+cvz
+cvz
+cvI
+cvz
+cvT
+cBS
+cwc
+cvz
+cwd
+cwf
+cwj
+cwo
+cwt
+cwu
+cwA
+cAR
+cAS
+cvv
+cBa
+cBc
+cBe
+cva
+cva
+cva
+aCq
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(151,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+oDb
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+uEx
+tAC
+uAH
+unR
+unR
+dCr
+unR
+unR
+hzK
+iYE
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+ayF
+alP
+aGL
+aHY
+aQj
+iNn
+aMk
+aNK
+aOM
+aQj
+aRB
+aSL
+aTN
+cCq
+aVz
+cAg
+bak
+bbz
+aYV
+bdp
+cBm
+bfL
+bhm
+bhm
+bhm
+bhm
+bkP
+bmV
+boc
+bqW
+brh
+bua
+bua
+bua
+bua
+bua
+bua
+bhh
+bhh
+btV
+bof
+bGU
+bqQ
+bof
+fTg
+bLV
+bNd
+bOm
+bPp
+bQF
+bRN
+bSS
+bUa
+bNc
+bNc
+bOj
+bNc
+bNc
+bZO
+caL
+cbK
+ccG
+cdH
+ceF
+cfj
+cga
+chm
+ciD
+cju
+clf
+csr
+cme
+cmZ
+cme
+coq
+cmd
+cmd
+cqs
+ayF
+ayF
+ayF
+ayF
+ayF
+csD
+ctb
+csV
+ctb
+ctj
+ctk
+cts
+ctx
+ctI
+ctS
+cud
+cuk
+cus
+cuF
+cuR
+cvd
+cvn
+cvy
+cvy
+cvH
+cvy
+cvy
+cvy
+cvy
+cvy
+cvy
+cwe
+cwi
+cwn
+cws
+cwn
+cwz
+cwE
+cvv
+cvv
+cvv
+cvp
+cvl
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(152,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+dFX
+xaB
+mgF
+mgF
+mgF
+vAl
+meb
+meb
+meb
+iMv
+vmQ
+pQp
+pQp
+pQp
+grA
+fpl
+fpl
+gbh
+sEM
+sEM
+sEM
+aCy
+arj
+alP
+aGL
+avI
+aJK
+aKV
+tMl
+aMl
+aMF
+aJI
+aRG
+aSO
+aTO
+cCq
+aVz
+aVz
+qus
+bbz
+aYV
+bdp
+bdc
+bfL
+beY
+bhm
+bhm
+bhm
+bkR
+bfL
+boo
+bqQ
+bhg
+bua
+bvn
+bwL
+bxX
+bsL
+bua
+bBJ
+bhh
+bBn
+bof
+bDF
+bIr
+bof
+bKN
+bHT
+bNd
+bNd
+bNd
+bNd
+bNd
+bSU
+bUb
+bVa
+bWf
+bWX
+bOP
+bNd
+bTZ
+bKH
+bzs
+bzs
+bzs
+bzs
+cfj
+cfj
+cfj
+cfj
+cjx
+cfl
+cfl
+dqu
+tXL
+cmd
+cos
+cmd
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+csD
+csD
+csD
+csD
+cti
+ctq
+cua
+ctA
+cuy
+ctV
+cug
+cuj
+cuj
+cuE
+cuU
+cuj
+cvk
+cvw
+cvw
+cvJ
+cvw
+cvV
+cwa
+cvJ
+cvw
+cvw
+cvb
+cwk
+cwp
+cwr
+cvp
+cwC
+cwn
+cAT
+cAW
+cvl
+cvl
+cvl
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(153,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayF
+dFX
+dFX
+uEx
+uEx
+uEx
+dFX
+uEx
+uEx
+uEx
+dFX
+dFX
+ayF
+ayF
+arj
+fCx
+avD
+awC
+ayb
+eCr
+jvd
+cEo
+xZD
+vpY
+alP
+aGJ
+avI
+aJI
+aJI
+aJI
+aNO
+aOT
+aJI
+aRF
+aSN
+aVF
+aVF
+aVF
+aYM
+aJI
+bbA
+aYV
+bdr
+bdb
+bdN
+blr
+bho
+bho
+bho
+bkQ
+bmW
+bom
+bIq
+bri
+bsu
+bsL
+bsL
+bvo
+bzl
+bua
+bzd
+bhh
+btT
+bCU
+bCR
+bqQ
+bGX
+bCR
+edA
+bRN
+bIK
+bPq
+bLd
+bNd
+bST
+bOr
+bOr
+bOr
+bWW
+bYa
+bYX
+bTZ
+caN
+cbM
+cbM
+cdJ
+bzs
+cfm
+cgc
+bAw
+ciF
+cjw
+ckl
+clk
+clk
+bAw
+bzs
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ctp
+cua
+ctz
+ctK
+ctU
+cuf
+cuf
+cuv
+cuH
+cuT
+cvg
+cvj
+cvj
+cvj
+cvj
+cvj
+cvU
+cvj
+cvj
+cvj
+cvj
+cva
+cva
+cva
+cva
+cvp
+cwB
+cvr
+cvp
+cvl
+cvr
+cwB
+cvp
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(154,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+arj
+auz
+avC
+vHz
+aya
+fHG
+fHG
+xkd
+fHG
+fHG
+gOZ
+aGJ
+avI
+aJL
+aKX
+aJI
+aJI
+aJI
+aJI
+aRH
+aVz
+aVz
+aVH
+aXn
+aYN
+aJI
+bbz
+aYV
+aYV
+bey
+bfL
+bhm
+biz
+biz
+biz
+bla
+bmY
+boq
+boq
+brj
+bpE
+btk
+bum
+bvq
+bzn
+bua
+bBL
+bhh
+bBC
+bCV
+bDN
+bFM
+btR
+bDN
+bIa
+bIf
+bIL
+bOq
+bLf
+bRP
+bSW
+bMH
+bNi
+bOr
+bWZ
+bYd
+bYY
+bZP
+caO
+cbN
+ccI
+cdL
+ceI
+cfo
+bAw
+bAw
+bAw
+cjz
+ceJ
+clm
+cmg
+cnc
+cnD
+bzs
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+cua
+ctF
+ctM
+ctX
+cuf
+cum
+cuw
+cuJ
+cuW
+cvi
+cvq
+cvC
+cvC
+cvC
+cvN
+cvW
+cvX
+cvX
+cvX
+cvX
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cvA
+cva
+cva
+cva
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(155,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+adS
+aeG
+ayF
+ads
+adS
+aeG
+ayF
+ads
+adS
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alO
+arj
+arj
+arj
+pBp
+gOZ
+cVb
+cVb
+cVb
+cVb
+cVb
+cVb
+aGQ
+aIk
+aIp
+aKW
+aMG
+aIp
+aIp
+aJI
+aJI
+aSP
+aUh
+aJI
+aJI
+aJI
+aJI
+aJI
+bcq
+bcq
+bcq
+bfL
+bhp
+biB
+biB
+cTL
+bkU
+bmX
+bpE
+bpE
+bpE
+bpE
+bti
+bul
+bvp
+bzm
+bua
+bBK
+bwz
+bBw
+bJG
+bDI
+bFL
+bli
+bKO
+bHY
+bNf
+bOp
+bPr
+bQH
+bNd
+bSV
+bSQ
+bNh
+bWg
+bWY
+bYc
+bNd
+bNd
+bzs
+bzs
+bMb
+cdK
+ceH
+cfn
+cgd
+ceJ
+ccM
+cjy
+ceJ
+cll
+ccM
+cnb
+bHd
+ceI
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+cua
+ctE
+ctL
+ctW
+cuf
+cum
+cuw
+cuI
+cuV
+cvh
+cvj
+cvB
+cvE
+cvk
+cvk
+cvk
+cvk
+cvk
+cvk
+cvX
+cvX
+cvX
+cvX
+cwq
+cwq
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(156,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+alO
+arp
+alO
+anf
+anf
+anf
+anf
+anf
+cVb
+jbf
+wrp
+fnC
+kPd
+xiw
+aGS
+aIm
+aIp
+aKH
+aMI
+aIp
+aOV
+aOX
+aOX
+aSR
+aUi
+aVJ
+aOX
+aiJ
+bal
+bam
+aYV
+aYV
+aYV
+bfL
+bhq
+bhm
+bkb
+cTM
+bla
+bmZ
+bpH
+bra
+bsK
+bpE
+bpE
+buq
+bvt
+bye
+bon
+bBN
+bEi
+bEi
+bEi
+bDU
+bFO
+bBN
+bKR
+bMc
+bNd
+bNd
+bNd
+bNd
+bNd
+bSX
+bMI
+bNk
+bNU
+bXb
+bWi
+bYZ
+bZR
+caQ
+bzs
+ccK
+ccM
+ceJ
+ceJ
+cgf
+ceJ
+ccM
+ccM
+ceJ
+clo
+cmi
+cbQ
+cnF
+cot
+csc
+csm
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+cua
+cua
+cua
+cua
+cuf
+cuf
+cux
+cuK
+cuX
+cuf
+cvk
+cvk
+cvk
+cvk
+ayF
+ayF
+ayF
+ayF
+cvk
+cvk
+cvk
+cvk
+cvk
+cvk
+cvk
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(157,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+cxW
+anf
+aqv
+ayf
+dce
+uua
+awE
+tRB
+cVb
+vCb
+wUY
+khb
+sxs
+tal
+aCI
+aIj
+aJB
+aKD
+aMs
+aNL
+aOQ
+aQf
+aRE
+aSQ
+aVI
+aVI
+aVI
+aYO
+aRJ
+bbB
+aYV
+aYV
+aYV
+bfL
+bfL
+bfL
+bfL
+bfL
+blg
+bmZ
+bpG
+bqZ
+brk
+bsv
+bsv
+bun
+bvr
+bzo
+bon
+aFa
+bCY
+bEh
+bCW
+bDS
+bFN
+bBN
+bKQ
+bMb
+bNd
+bOr
+bOt
+bOr
+bRQ
+bOr
+bSQ
+bNj
+bNs
+bXa
+bYa
+bNd
+bZQ
+caP
+cbO
+ccJ
+bLS
+bLS
+cfp
+cge
+cbK
+ciG
+bLS
+ckm
+cln
+cmh
+cnd
+cnE
+bPn
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cuf
+cuf
+cuf
+cuf
+cuf
+ayF
+ayF
+ayF
+aCf
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aCo
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(158,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+crk
+alO
+anf
+alO
+mAH
+jaF
+alP
+anf
+aCG
+cVb
+cVb
+cVb
+cVb
+cVb
+wBd
+aGC
+aIl
+aIq
+aia
+aMy
+aIp
+nGf
+aQm
+fzd
+fFA
+fFA
+aVK
+aRJ
+aRJ
+aRJ
+bbB
+aYV
+aYV
+aYV
+bfO
+bfS
+biD
+bkd
+bfS
+cTO
+bmZ
+bpJ
+brc
+bsL
+bug
+btl
+but
+bvw
+bzq
+bon
+bBP
+bCZ
+bEk
+bFG
+bCY
+bFP
+bBN
+bKQ
+bMb
+bNd
+bOt
+bOr
+bOr
+bRQ
+bOr
+bSQ
+bWj
+bOm
+bXc
+bYe
+bNd
+bZS
+caR
+bzs
+ccL
+ccM
+ceL
+ceJ
+cgh
+ceJ
+ceJ
+ccM
+ceJ
+cAe
+cmj
+cne
+bHd
+bPn
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(159,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayB
+ayB
+ayF
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ads
+adT
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+amw
+aof
+aof
+aof
+aof
+alP
+alP
+alP
+alP
+alP
+awF
+aCG
+alP
+nhY
+aBE
+aCz
+vEp
+aCJ
+aGT
+aIn
+aIp
+aKI
+aMt
+aIp
+aOW
+aQm
+coI
+aSS
+aUj
+sJx
+aRJ
+aYQ
+cBg
+bam
+aYV
+aYV
+aYV
+aYV
+bhr
+biC
+bkc
+bfS
+blo
+bmZ
+bpI
+brb
+bsL
+buf
+bvs
+bur
+bvp
+bzp
+bon
+bBO
+bCY
+bEj
+bCY
+bGZ
+bFE
+bBN
+bKS
+bMd
+bNd
+bOs
+bOt
+bQJ
+bRR
+bOr
+bSQ
+bWj
+bWj
+bWj
+bWj
+bNd
+bzs
+bzs
+bzs
+bMb
+bFr
+ceK
+ceJ
+cgg
+ccM
+ccM
+cjA
+ceJ
+ccM
+cdN
+bFr
+cnG
+bzs
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(160,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+ayF
+ayF
+amw
+amw
+amw
+aoh
+aoN
+apA
+aof
+arq
+itK
+atv
+auD
+alP
+aoQ
+cqM
+ayg
+ayg
+ayg
+aCA
+aFn
+aFp
+aGW
+anf
+aIp
+fGf
+aMA
+aIp
+aOX
+aQm
+coI
+aST
+aUk
+sJx
+aRJ
+aYQ
+bam
+ssB
+aYV
+aYV
+aYV
+beE
+bfS
+biE
+bkf
+bfS
+cTO
+bmZ
+bpL
+bre
+bsN
+bre
+bvv
+bur
+bvp
+bzr
+bon
+bBQ
+bDa
+bEl
+bFH
+bHb
+bIw
+bBN
+bKT
+bMb
+bNd
+bOt
+bPu
+bOr
+bRQ
+bOr
+bSQ
+bWj
+bOm
+bXc
+bYe
+bNd
+bZU
+caS
+cbN
+ccN
+bHd
+bzs
+bzs
+bKT
+bAw
+bAw
+bFr
+ceJ
+ccM
+ccM
+cng
+bzs
+bzs
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(161,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+abX
+jIs
+jIs
+vZA
+crk
+uDO
+jIs
+vZA
+crk
+uDO
+jIs
+vZA
+crk
+uDO
+jIs
+jIs
+jIs
+jIs
+amv
+ane
+cxN
+aog
+aoM
+apz
+aqw
+arr
+asw
+asw
+auE
+alP
+awG
+auF
+alP
+alP
+alP
+alP
+alP
+aFo
+aGV
+aIp
+aIp
+aKL
+aMz
+aNQ
+aOX
+aQm
+lva
+nUV
+nUV
+gbd
+aRJ
+aYR
+ban
+ikm
+aYV
+aYV
+bez
+bfP
+bfS
+bfS
+bfS
+bfS
+cTO
+bmZ
+bpK
+brd
+bpK
+bpK
+bvu
+bux
+bvy
+bon
+bon
+bBN
+bBN
+bBN
+bBN
+bHa
+bBN
+bBN
+bKB
+bMb
+bNd
+bOr
+bPt
+bOr
+bRQ
+bSY
+bMJ
+bNl
+bNW
+bXd
+bPu
+bNd
+bZT
+bMb
+bFr
+ccM
+cdN
+bzs
+cfq
+bKT
+bAw
+ciH
+bHd
+bzs
+bAw
+cmk
+cnf
+bzs
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(162,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+ayF
+ayF
+amw
+amw
+amw
+aoi
+aoO
+apB
+aqx
+art
+anf
+anf
+auF
+alP
+awH
+auF
+alP
+aAr
+aBF
+alP
+ayF
+aus
+auu
+aIp
+sHx
+aKU
+aME
+aNN
+aOR
+aQh
+aRI
+aSU
+aXo
+aXo
+aXo
+iLJ
+bap
+ikm
+aYV
+bci
+beB
+bfS
+bfS
+kQk
+ipA
+gbT
+cTO
+bmZ
+bon
+bon
+bon
+bon
+bon
+buG
+bvA
+bon
+bAw
+bzg
+bLS
+bLS
+bLS
+cbQ
+bLS
+bLS
+bKE
+caU
+bNc
+bOj
+bPw
+bNc
+bNc
+bNc
+bNc
+bNc
+bNc
+bNc
+bPw
+bNc
+bLS
+caU
+cbQ
+cNY
+cNY
+cNY
+cNY
+cgj
+cNY
+cNY
+chp
+bzs
+clp
+bzs
+bzs
+bzs
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(163,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayB
+anO
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+amw
+aof
+aof
+aof
+aof
+vCy
+aoP
+atw
+auF
+alP
+aoP
+auF
+azr
+jez
+atw
+alP
+alP
+aFo
+aGV
+aIp
+aJO
+aLd
+aMN
+aNQ
+aOZ
+aOX
+aOX
+rdG
+aUz
+aVM
+aOX
+aYT
+bam
+iuR
+baR
+bcb
+bdl
+cTJ
+cHD
+bgo
+cTK
+cTK
+blq
+cTS
+cTK
+bpQ
+cTK
+slk
+btm
+buy
+bvz
+bdO
+bLT
+bna
+bLT
+bLT
+bLT
+bDV
+bLT
+bLT
+bHq
+bMe
+bIg
+bIM
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+caT
+cbP
+ccO
+cdO
+cdO
+cdO
+cnH
+czH
+czT
+czY
+cNW
+bAw
+bAw
+clp
+kyT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(164,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+apC
+aqy
+anf
+anf
+aty
+auF
+alP
+aAt
+jZT
+alP
+alP
+alP
+alP
+ayf
+aFm
+aGF
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aXS
+aIq
+aIq
+baZ
+bck
+bdm
+bdP
+cHE
+bdP
+bdP
+bdP
+bdP
+bnc
+boC
+bpV
+boC
+boC
+bto
+buL
+bvB
+cbK
+bxg
+bzk
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bIs
+bIN
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+cNW
+cNW
+cQB
+czY
+cNW
+bPn
+bPn
+bPn
+crk
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(165,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+apC
+anf
+jez
+alP
+atx
+auF
+alP
+auD
+auF
+apE
+aAs
+vbi
+alP
+aCG
+aFr
+aGE
+aIo
+aIo
+aIo
+aIo
+aIo
+aIo
+aIo
+aRK
+aIo
+aIo
+aUx
+aVL
+aXR
+aZc
+aZc
+baT
+bcj
+beC
+bfT
+cHF
+biG
+blw
+blu
+bnb
+bfT
+bor
+bpS
+bsO
+bfV
+btn
+buH
+byf
+byf
+byf
+byf
+bDb
+bEm
+bEm
+bEm
+bDb
+bJH
+bKW
+bMg
+bIh
+bOx
+bPx
+bJN
+bRT
+aad
+bEm
+bJN
+bRT
+aad
+bEm
+bJN
+bRT
+aad
+bEm
+bDb
+cfr
+cho
+bDb
+ayF
+cNW
+cQB
+czY
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(166,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ads
+adW
+aeG
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+apC
+anf
+alP
+alP
+apE
+auG
+alP
+iWx
+auF
+apE
+anf
+anf
+noF
+aCG
+aDZ
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aVO
+bdp
+aYV
+aYV
+bba
+aXq
+bfU
+bhu
+cHG
+biI
+bkh
+biI
+cHQ
+bfT
+boE
+bpY
+bsQ
+box
+btx
+buU
+byf
+bzu
+bAz
+bzu
+bDb
+bEm
+bEm
+bEm
+bIx
+bJJ
+bKY
+bMi
+bNo
+bIP
+bPA
+bJN
+bRU
+aml
+bEm
+bJN
+bRU
+aop
+bEm
+bJN
+bRU
+aml
+bEm
+bDb
+cgi
+chq
+ccQ
+ayF
+cOT
+cQB
+czY
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(167,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ads
+crG
+aeG
+ayF
+ads
+crG
+aeG
+ayF
+ads
+crG
+aeG
+ayF
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+apC
+arA
+anf
+asx
+anf
+auF
+alP
+alP
+auF
+alP
+alP
+alP
+aCB
+aEB
+aFs
+bbE
+aIr
+bav
+aLf
+aNV
+qfD
+aRO
+aQp
+aRN
+aIt
+aUB
+aFu
+aVN
+bdp
+bar
+bar
+aYV
+aXq
+bfU
+bhu
+cHH
+biH
+cHN
+blv
+bls
+bfT
+boD
+bpY
+bsP
+box
+btw
+buT
+byf
+bzt
+bAy
+bBS
+bDb
+bEm
+bEm
+cBz
+bEm
+bJI
+bKX
+bMh
+bIt
+bOx
+bPz
+bJN
+bRU
+amo
+bEm
+bJN
+bRU
+amo
+bEm
+bJN
+bRU
+amo
+cBz
+bDb
+cgi
+chq
+ccQ
+ayF
+cOT
+cQB
+czY
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(168,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+atl
+ayF
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+apC
+alP
+alP
+alP
+dbU
+auH
+avF
+awI
+ayc
+gcF
+asw
+asw
+aCD
+aEa
+aFv
+aGG
+aIu
+aJQ
+aIt
+aIt
+qfD
+aRO
+aIt
+aRN
+aIt
+aUB
+aFu
+aVZ
+aXT
+aFu
+aFu
+bcv
+aXq
+bfU
+bhu
+cHI
+biJ
+bhM
+biJ
+blx
+bfT
+boL
+bpY
+bsR
+box
+buo
+bxd
+byf
+bzw
+bAB
+bBV
+bDb
+bEn
+akK
+akP
+akP
+akV
+akW
+alf
+alm
+aln
+alr
+bJN
+bRW
+amG
+bUe
+bJN
+bWl
+aoq
+bYg
+bJN
+bZV
+apw
+cbS
+bDb
+cgl
+chs
+bDb
+ayF
+cNW
+cQB
+czY
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(169,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+aAM
+ayB
+ayB
+oDb
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alO
+aqz
+aru
+alP
+anf
+anf
+avE
+anf
+anf
+awD
+anf
+aty
+aCC
+aDZ
+anf
+aFu
+aIs
+aJP
+vZR
+aIt
+hGH
+aYW
+aYW
+aYW
+aYW
+aYW
+aYW
+aVY
+aYY
+bas
+aFu
+aYV
+cBk
+aYV
+bht
+cHJ
+cHL
+blw
+bjP
+blt
+bfT
+boG
+bqa
+cIe
+box
+buo
+bvb
+byh
+bzv
+bAA
+bBU
+bDb
+bEm
+bEm
+bEm
+bIy
+bJK
+bKZ
+bMi
+bIu
+bIO
+alx
+bLe
+bRV
+amH
+bUd
+bVi
+bRV
+amH
+bYf
+bVi
+bRV
+amH
+cbR
+bDb
+cgk
+chr
+bDb
+ayF
+cNW
+cBN
+czY
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(170,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alO
+anf
+anf
+asy
+anf
+anf
+alP
+alP
+anf
+alP
+alP
+alP
+aCE
+aDZ
+aFu
+aFu
+aIw
+aJS
+pJR
+aNP
+esZ
+aOS
+aOS
+aOS
+aOS
+aOS
+aOS
+aWb
+aXU
+bau
+aFu
+aYV
+aXq
+aYV
+bfV
+cHK
+blA
+blA
+blA
+blD
+box
+cHU
+cHZ
+cIf
+box
+btA
+bxd
+byf
+bzy
+bAD
+bBX
+bDb
+bEm
+bEm
+bEm
+bIx
+bJM
+bLc
+bMi
+bNo
+bOx
+alV
+bQM
+bMi
+bOx
+bRZ
+bVj
+bMi
+bOx
+bRZ
+bZa
+bMi
+bOx
+bRZ
+cTY
+cTZ
+chu
+ccQ
+ayF
+cOT
+cQB
+cAa
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(171,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+alO
+aqA
+arz
+alP
+anf
+anf
+alP
+awJ
+anf
+alP
+aAv
+tJS
+aCE
+aDZ
+aFu
+aHb
+aIv
+aJR
+aIt
+aIt
+qfD
+aRO
+aIt
+aPd
+aIt
+aPb
+aIt
+aXu
+aYW
+bat
+bbD
+aYV
+aXq
+beE
+bfV
+bhv
+biK
+bkk
+blz
+bly
+bos
+bpR
+bqc
+bsS
+box
+buo
+bxd
+byf
+bzx
+bAC
+bBW
+bDb
+bEm
+bEm
+bEm
+bDb
+cTX
+bLb
+bMk
+bNn
+bIQ
+alW
+amh
+ami
+amP
+anp
+anx
+anN
+amP
+anp
+anx
+anN
+amP
+aqG
+aqS
+aqS
+ars
+asr
+asC
+czQ
+czU
+czZ
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(172,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+alP
+alP
+alP
+alP
+alP
+anf
+anf
+alP
+anf
+anf
+apE
+anf
+anf
+aCE
+aDZ
+aFu
+aHd
+aIx
+aJF
+aQq
+aNS
+qfD
+aRO
+aIt
+aPd
+aIt
+aPb
+aIt
+aXu
+aYW
+aVQ
+aFu
+aYV
+aXq
+bds
+bfV
+bhx
+biL
+bkm
+cHO
+blG
+biL
+cHV
+cIa
+biL
+box
+buo
+bvc
+byf
+byf
+byf
+byf
+bDb
+bDb
+bDb
+bDb
+bDb
+bJN
+bJN
+bMm
+bNp
+bOx
+bMi
+bQN
+bRZ
+bOx
+bMi
+bVk
+bRZ
+bOx
+bMi
+bZb
+bRZ
+bOx
+bMi
+cfy
+cgn
+cjB
+ccQ
+ayF
+cOT
+cgm
+czY
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(173,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+alP
+apD
+aEl
+anf
+arx
+anf
+anf
+alP
+alP
+atB
+alP
+alP
+alP
+aCF
+aDZ
+alP
+aFw
+aFw
+aFw
+aFw
+aFw
+aFu
+aPf
+aQq
+aRP
+pem
+aIt
+aIt
+aWd
+aXV
+vsT
+bbD
+aYV
+aXq
+aYV
+bfV
+bhw
+cHM
+wWT
+blB
+blF
+cHS
+cHW
+cIb
+bsT
+box
+btP
+bxd
+byi
+bzz
+bAE
+bBY
+bDc
+bEo
+bFI
+bHe
+bIz
+bIz
+bJN
+bMl
+bIv
+bIR
+bPE
+bLe
+bRY
+amQ
+bUg
+bVi
+bWm
+amQ
+bUg
+bVi
+bZW
+amQ
+bUg
+bDb
+bDb
+bDb
+bDb
+ayF
+cNW
+cgm
+czY
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(174,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+alO
+anf
+anf
+arw
+nuw
+uve
+anf
+alP
+awL
+anf
+anf
+apE
+aBF
+aCH
+aED
+aFy
+aGO
+aIB
+aJJ
+aKZ
+aFw
+aFu
+aFu
+aFu
+aFu
+aTc
+aUD
+aVS
+aYW
+aYW
+bax
+aFu
+aYV
+aXq
+aYV
+bfV
+bfV
+biO
+biL
+cHP
+cHR
+bou
+bpT
+bqd
+biL
+box
+btS
+bxd
+byi
+bwN
+bAG
+bCa
+bDc
+bEo
+bIC
+bEc
+bIB
+bIB
+bJN
+bMo
+bNp
+bOx
+bPH
+bJN
+bSa
+amT
+bUh
+bJN
+bWn
+aos
+bYh
+bJN
+bZX
+aqB
+cbU
+bDb
+ayF
+ayF
+ayF
+ayF
+cNW
+cgm
+czY
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(175,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+alO
+aoQ
+anf
+arv
+asz
+atA
+anf
+alP
+awK
+anf
+awD
+apE
+anf
+aCk
+aEC
+aFx
+aGM
+aIy
+aJG
+cAz
+aFw
+gRZ
+aPg
+aQr
+aFu
+aTb
+aIt
+aLg
+aYW
+aYW
+aUD
+bbD
+aYV
+aXq
+aYV
+bfW
+bhy
+biN
+biL
+bni
+blM
+bou
+cHX
+cIc
+biL
+buj
+btQ
+bve
+byj
+bwM
+bAF
+bBZ
+bDc
+bEp
+bCX
+bEc
+bIA
+bIA
+bJN
+bMn
+bNp
+bOz
+bPG
+bJN
+bEm
+amo
+bRU
+bJN
+bEm
+amo
+bRU
+bJN
+bEm
+amo
+bRU
+bDb
+ayF
+ayF
+ayF
+ayF
+cOT
+cgm
+czY
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(176,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+alP
+jkx
+ayf
+xAk
+mHU
+aFn
+aFn
+aBB
+awM
+ayg
+ayg
+ayg
+ayg
+aCl
+aEe
+aFw
+aFw
+aFw
+aLo
+aLb
+aFw
+xEE
+aYW
+aYW
+aRQ
+aIt
+aUF
+aLg
+aYW
+aYW
+aVQ
+aFu
+aYV
+aXq
+aYV
+bfX
+bhz
+biQ
+biL
+blC
+bou
+cHT
+bou
+cId
+biL
+bsw
+btU
+bxe
+bvC
+bzD
+bxv
+bCc
+bDc
+bEo
+bDj
+bDY
+bIA
+bIA
+bJN
+bMq
+bNp
+bOx
+bPJ
+bJN
+bEm
+ano
+bRU
+bJN
+bEm
+apb
+bRU
+bJN
+bEm
+ano
+bRU
+bDb
+ayF
+ayF
+ayF
+ayF
+cOT
+cgm
+czY
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(177,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+nsA
+nsA
+nsA
+nsA
+qVP
+nsA
+nsA
+atB
+alP
+alP
+awx
+aye
+ayd
+aAc
+ayd
+aCI
+aEd
+aFw
+aHf
+aIz
+aJM
+aLa
+aFw
+hsb
+aYW
+aQs
+aFu
+aTd
+aUE
+aVT
+aYW
+aYW
+aZd
+aFu
+aYV
+aXq
+aYV
+bfX
+bhy
+biP
+bko
+blE
+bnj
+bov
+bpU
+brq
+bsW
+buj
+bvE
+bxd
+byk
+bzC
+bAH
+bCb
+bDc
+bEo
+bDf
+bEb
+bGY
+bGY
+bJN
+bMp
+bNp
+bOx
+bPI
+bJN
+bEm
+abz
+bUi
+bJN
+bEm
+abz
+bUi
+bJN
+bEm
+abz
+bUi
+bDb
+ayF
+ayF
+ayF
+ayF
+cOT
+cgm
+czY
+cOT
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(178,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+nsA
+cQF
+ndq
+rIA
+fBy
+hRI
+jaH
+hHQ
+feE
+hHQ
+kGJ
+wHT
+asA
+apE
+dPk
+aCG
+aEf
+aFw
+aGU
+aIC
+aJU
+aLe
+aFw
+aCR
+aCR
+aCR
+aCR
+aCR
+aCR
+aCR
+aWe
+aWe
+aCR
+aCR
+bcs
+aXq
+aYV
+bfX
+bfV
+bfV
+bfV
+bfV
+bfV
+box
+bpW
+brs
+box
+box
+buo
+bxd
+byk
+byk
+byk
+byk
+bDc
+bDc
+bJR
+bEg
+bDc
+bDc
+bLe
+bMr
+bNr
+bIT
+bJN
+bJN
+bJN
+bJN
+bJN
+bJN
+bJN
+bJN
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+cNW
+cNW
+cNW
+cNW
+cNW
+czX
+cAc
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cOT
+cOT
+crk
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(179,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+wKe
+ndq
+ndq
+ndq
+ndq
+oLl
+asB
+asB
+asB
+avo
+awx
+avH
+asB
+asB
+asB
+aCK
+aEf
+aFw
+aHg
+cBZ
+aJT
+aLc
+aFw
+aFz
+aFz
+aFz
+aRR
+aTe
+aUG
+aFz
+aRS
+aXW
+baz
+aCR
+bcx
+aXq
+aYV
+bfY
+bhA
+biR
+bkq
+bjZ
+bvx
+boz
+boM
+bzE
+bsX
+bsz
+btW
+bxf
+bzE
+bzE
+bzE
+bzE
+bDd
+bEq
+bDl
+bEf
+bFQ
+bHc
+bHK
+bIb
+bID
+bOA
+bPK
+bQO
+bSb
+bOu
+bUj
+bVl
+bWo
+bXh
+bQZ
+bTl
+bZY
+caX
+bTl
+bQZ
+cdQ
+cOe
+cNW
+czG
+czR
+czW
+cAb
+cko
+clq
+cmq
+ciI
+cnJ
+cri
+cOe
+cOe
+cBT
+crk
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(180,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+wKe
+ndq
+ndq
+ndq
+ndq
+qeb
+asB
+atD
+auJ
+asB
+awQ
+avK
+azt
+aAy
+asB
+aCN
+aEf
+aFw
+aGY
+aII
+aJW
+aMX
+aNW
+aFz
+aPl
+aQv
+aPl
+aTg
+aUI
+aTg
+aRS
+aZf
+aFz
+bbF
+aYV
+aXq
+aYV
+bfX
+bhB
+bgp
+bhU
+bhU
+blX
+bow
+boO
+bhU
+bsZ
+cdX
+ceX
+bvg
+bvD
+bvD
+cBx
+bzB
+bAa
+bBE
+bDm
+bEr
+bFR
+bHf
+bHM
+bFR
+bIE
+bJr
+bJO
+bWr
+bWr
+bWr
+bUk
+bVn
+bWq
+bXj
+bYj
+bZc
+bTl
+bTl
+bTl
+bQZ
+bNB
+ceM
+ccU
+cgo
+czS
+cOb
+cAd
+cNW
+cOx
+cBL
+cOe
+cvO
+cNW
+cNW
+cOT
+cOT
+crk
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(181,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+nsA
+ndq
+ndq
+ndq
+ndq
+ndq
+asB
+atC
+auI
+auI
+awP
+avJ
+awO
+awO
+asB
+aCM
+aEg
+aFw
+aHi
+aHi
+aJV
+aFw
+aFw
+aFz
+aPk
+aQu
+aPk
+aTf
+aUH
+aTf
+aRS
+aZf
+baA
+bbF
+aYV
+aXq
+aYV
+bfZ
+bhA
+biS
+bkr
+blH
+bnm
+boy
+bpX
+brt
+brm
+bsA
+bvH
+bvf
+brt
+bwO
+bxF
+bzA
+bzZ
+bBD
+bBD
+bBD
+bBD
+bBD
+bHL
+bBD
+bBD
+bJo
+bPK
+bWr
+bWr
+bWr
+bWr
+bWr
+bWp
+bXi
+bYi
+bTl
+bTl
+caY
+cbV
+bQZ
+blQ
+cPA
+cfs
+cgm
+cQw
+cNW
+cNW
+cNW
+cNW
+cNW
+cOe
+fup
+csy
+cko
+axY
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(182,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+wKe
+ndq
+ndq
+ndq
+ndq
+ndq
+asB
+atE
+auI
+auI
+awT
+avM
+azv
+aAA
+asB
+aCE
+aEi
+aFw
+aHl
+aID
+aID
+aFw
+aMM
+aFz
+aFz
+aQw
+aRS
+aRS
+aRS
+aRS
+aRS
+aZf
+aRS
+bbF
+aYV
+aXq
+aYV
+bga
+bgc
+bgc
+bgc
+bgc
+bgc
+boB
+boB
+boB
+btb
+buo
+bvJ
+bvJ
+bvJ
+bwQ
+bxW
+bvK
+bvK
+bEt
+bDn
+bEz
+bFS
+bJT
+bLh
+bMs
+bMs
+bMs
+bPN
+bQS
+bSf
+bWr
+bWr
+bWr
+bWr
+bXl
+caZ
+cba
+bTl
+cbc
+bTl
+bQZ
+cdR
+ceO
+cNW
+cgm
+chw
+ciK
+cjC
+ckp
+cls
+cmr
+cOe
+cOe
+cou
+cNW
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(183,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+wKe
+ndq
+ndq
+ndq
+ndq
+ndq
+asB
+asB
+asB
+avL
+awR
+hiV
+azu
+aAz
+asB
+aCO
+aEh
+aFz
+aHk
+aFz
+aFz
+aTe
+aML
+aFz
+aFz
+aQw
+cdl
+aRS
+aRS
+aRS
+aRS
+aZf
+aRS
+bbF
+aYV
+aXq
+aYV
+bfX
+bhC
+biU
+bks
+blI
+bnn
+boA
+bpZ
+boB
+bta
+buo
+bvJ
+bCk
+byo
+aDH
+bxP
+bCf
+bvK
+bEs
+bGc
+bHm
+bGc
+bEs
+bEs
+wWu
+wWu
+wWu
+bPN
+bQR
+bSe
+bMf
+bNe
+bNm
+bNX
+bTf
+bQZ
+bTl
+bTl
+cbb
+bTl
+bQZ
+cdR
+ceN
+cNW
+cgp
+chv
+ciJ
+cbf
+diq
+clr
+bnt
+cOe
+cOe
+bMB
+cOT
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(184,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+nsA
+lGV
+ndq
+pou
+ndq
+srG
+asB
+atG
+auL
+avN
+axa
+auI
+azw
+aAA
+asB
+aCQ
+aEk
+aFB
+aHn
+aFB
+csT
+aFB
+aLr
+aFB
+aPn
+aQy
+aPn
+aTi
+aUK
+aVU
+aWg
+aZf
+baA
+bbF
+aYV
+aXq
+aYV
+bfX
+bhD
+biV
+biW
+blK
+bnp
+bng
+boQ
+brx
+bro
+buo
+bvJ
+bxj
+byq
+bwR
+bxY
+bCh
+bvK
+bEv
+bFU
+bFU
+bFU
+bJV
+bEC
+bMu
+bMu
+bMu
+bEC
+bQU
+bQU
+bTl
+bQU
+bXr
+bWr
+bOw
+bQZ
+bQZ
+bQZ
+cka
+bQZ
+bQZ
+bQZ
+bQZ
+bQZ
+cgr
+chx
+cNW
+cNW
+cNW
+clt
+cQw
+cOe
+cOe
+bNA
+cOT
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(185,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+nsA
+nsA
+nsA
+nsA
+nsA
+nsA
+asB
+atF
+auK
+auJ
+awS
+auI
+awO
+awO
+asB
+aCP
+aEj
+aFA
+aHm
+aEj
+aEj
+aEj
+aEj
+aEj
+aPm
+aQx
+aPm
+aTh
+aUJ
+aTh
+aXz
+aZg
+aFz
+bbF
+aYV
+bdv
+aYV
+bgb
+bhC
+biU
+biW
+blJ
+bno
+bnf
+boP
+bqf
+brn
+bsC
+bvK
+bxi
+byp
+bzJ
+bxY
+bCg
+bvK
+bEu
+bFU
+bFU
+bFU
+bJU
+bEC
+bMt
+bNt
+bNt
+bEC
+bQT
+bSg
+bTk
+bSh
+bXr
+bWr
+bOv
+bYk
+bYk
+bZZ
+cjW
+bZZ
+ccR
+cdS
+ceP
+bQZ
+cgq
+chx
+cNW
+ayF
+cNW
+clt
+cQw
+cNW
+mJo
+cNW
+cNW
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(186,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+asB
+atH
+auM
+avO
+awU
+ayj
+azx
+aAB
+asB
+aCR
+aEm
+aCR
+aPl
+aQv
+aPl
+aQv
+aCR
+aNY
+aCR
+aQA
+aCR
+aTj
+aFz
+aVV
+aXB
+aZh
+baB
+aCR
+kYk
+bdx
+vHT
+bgc
+bgc
+biX
+bhV
+bka
+blZ
+bnk
+bpo
+bqk
+brp
+bsD
+bvK
+bxl
+bys
+bzM
+bya
+bCj
+bvK
+bEx
+bFU
+bFU
+bGl
+bJX
+bEC
+bMw
+cBE
+bOE
+bEC
+bQV
+coT
+bTm
+bUn
+bXr
+bWr
+bOv
+bYm
+bYm
+bZZ
+ckN
+bZZ
+ccR
+cdS
+ceP
+bQZ
+cgt
+chx
+cOT
+ayF
+cOT
+clt
+cQw
+oEZ
+cOe
+cOe
+cNW
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(187,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+asB
+asB
+asB
+asB
+asB
+asB
+asB
+asB
+asB
+aCR
+bfb
+aCR
+aHo
+aIE
+aKe
+aIE
+aCR
+aNX
+aPo
+aQz
+aCR
+aCR
+aCR
+aCR
+aXy
+aZe
+aCR
+aCR
+bcy
+bdw
+beG
+bgc
+bhE
+biW
+bkv
+blL
+biW
+bnh
+biW
+brx
+bte
+bup
+bvK
+cBu
+byr
+bzL
+bxZ
+bCi
+bvK
+bEw
+bFU
+bEL
+bGk
+bJW
+bEC
+bMv
+bNu
+bMv
+bEC
+bQT
+bSi
+bUn
+bTl
+bXr
+bNZ
+bOy
+bZd
+bYl
+caa
+ckM
+cbW
+ceQ
+ceQ
+ceQ
+cft
+cgs
+chy
+cOT
+ayF
+cOT
+clt
+cQw
+ttL
+cOe
+cOe
+cNW
+oDb
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayF
+ayB
+ayB
+ayB
+ayB
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(188,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+atz
+ayF
+aBM
+aBM
+atz
+wWu
+wWu
+wWu
+atz
+aCR
+aEn
+aCR
+aHq
+aHq
+aHq
+aHq
+aCR
+aCR
+aCR
+aCR
+aCR
+aTl
+aUL
+aVW
+aXD
+aZj
+baD
+bbG
+aTk
+bdy
+beI
+bgc
+bhF
+biW
+bib
+bki
+bma
+bnl
+bpq
+boB
+bth
+bus
+bvK
+bxm
+byu
+bzN
+byb
+aGs
+bvK
+bBF
+bFU
+oce
+bGz
+bJZ
+kzT
+bMx
+bNw
+bOF
+fcG
+bQW
+bSj
+bTn
+bUo
+bNq
+bOk
+bOB
+bPs
+bYo
+bSc
+bSc
+cbd
+ccT
+bSc
+bSc
+cfu
+cgu
+chA
+cNW
+ayF
+cNW
+clt
+cQw
+ajM
+cOe
+cOe
+cNW
+ayF
+ayB
+ayF
+ayF
+ayF
+anO
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(189,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+atz
+aBM
+aBM
+aBM
+atz
+wWu
+wWu
+wWu
+atz
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aMZ
+aNZ
+aPp
+aQB
+aNa
+aTk
+aPq
+aPq
+aXC
+aZi
+baC
+aPq
+aPq
+bdy
+beH
+bgc
+bgc
+bgc
+bgc
+bgc
+bgc
+bgc
+bpp
+bgc
+brr
+bsE
+bvK
+bvK
+byt
+byt
+byt
+byt
+byt
+bEy
+bFU
+bFT
+bFU
+bJY
+bEC
+bMv
+bNv
+bMv
+rcD
+wkN
+wkN
+wkN
+wkN
+wkN
+lAB
+lQG
+bPb
+bQG
+lAB
+wkN
+wkN
+bSl
+bQZ
+bQZ
+bQZ
+cNW
+chz
+cNW
+cNW
+cNW
+clt
+cQw
+cCt
+cOe
+cOe
+cNW
+ayF
+ayB
+ayF
+cMQ
+crB
+cNa
+ayF
+cMQ
+crB
+cNa
+ayF
+cMQ
+adS
+cNa
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(190,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+atz
+aBM
+aBM
+aBM
+crk
+wWu
+wWu
+wWu
+atz
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aMZ
+aOb
+aPr
+aQC
+aRU
+aQC
+aQC
+aQC
+czO
+aZl
+baE
+bbH
+bcA
+bdz
+beJ
+bge
+bhH
+biY
+biY
+biY
+bmd
+bnr
+bpr
+bgc
+btj
+buu
+bvM
+bxo
+bqe
+bzO
+bzO
+bzO
+bqe
+bEB
+bFW
+bFT
+tOq
+bFU
+bLi
+bMz
+bNy
+bOH
+dvO
+bQY
+vzp
+hRa
+bUp
+mNi
+mRe
+olr
+bPL
+cVK
+bTo
+eaI
+cbZ
+bSl
+cmo
+cNW
+lZl
+cNW
+chC
+ciL
+cOe
+cOe
+clv
+cQw
+cNW
+cNW
+cNW
+cNW
+ayF
+ayF
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+adu
+cNa
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(191,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+atz
+aBM
+aBM
+aBM
+crk
+wWu
+wWu
+wWu
+atz
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aMZ
+aOa
+aVX
+aTm
+aRL
+aTm
+aTm
+aTm
+aWh
+aZk
+aTm
+aTm
+bcz
+aTm
+aTm
+bgd
+bhG
+bhG
+bhG
+blO
+bmc
+bnq
+bgc
+bgc
+bru
+bsF
+btY
+bxn
+bqe
+bzO
+bzO
+bzO
+bqe
+bEA
+bFV
+bFT
+bGA
+bFU
+bFU
+bMy
+bNx
+bOG
+wkN
+uoB
+bSk
+bXs
+bXs
+lMg
+qeQ
+qeQ
+bPF
+bQI
+bXs
+sSW
+cbY
+bSl
+cOe
+cNW
+cNW
+cNW
+ccp
+cbf
+cbf
+cbf
+clu
+cmt
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+adu
+cNa
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(192,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+crk
+aBM
+aBM
+aBM
+atz
+wWu
+wWu
+wWu
+atz
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aNa
+aOd
+aOU
+aPq
+aNa
+aPq
+aPq
+aPq
+aOU
+aPq
+aPq
+aPq
+bcC
+cBl
+aPq
+bgg
+aNa
+ayF
+bky
+bqh
+bme
+bnx
+bqe
+brA
+brw
+buw
+bvO
+bxq
+byv
+bzO
+bAR
+bzO
+bqe
+bED
+bFX
+bFT
+bGF
+bKa
+bFU
+bMA
+bNz
+bOI
+wkN
+bRa
+cbe
+bTp
+vCt
+bVs
+fKl
+bXt
+bPM
+bZh
+itG
+cbe
+wvX
+bSl
+cOe
+ceS
+cae
+cNW
+ccq
+cdq
+cjE
+ckr
+clw
+cmu
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+adu
+cNa
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(193,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+atz
+aBM
+aBM
+aBM
+atz
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aNa
+aOc
+aPs
+aPq
+aNa
+aPq
+aPs
+aPs
+aXG
+aZm
+aPs
+aPq
+bcB
+aPq
+aPs
+bgf
+aNa
+ayF
+bky
+blP
+bns
+boF
+bqe
+brz
+brv
+cBt
+bvN
+bxp
+byv
+bzO
+bAQ
+bCl
+bqe
+bEC
+bEC
+bEM
+bGC
+bEC
+bEC
+bEC
+bEC
+bEC
+bSl
+dMZ
+bXs
+bXs
+bXs
+gwd
+ycu
+oHU
+uNu
+bXs
+bXs
+bXs
+bXs
+bSl
+cOe
+ceR
+cbf
+cbv
+uVS
+cQw
+cjD
+cjD
+cjD
+cjD
+cnj
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+crC
+cNa
+ayF
+cMQ
+adu
+cNa
+ayF
+ayF
+ayB
+ayB
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(194,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+atz
+aBM
+aBM
+aBM
+atz
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aNa
+aNa
+aNa
+aQF
+aNa
+aTn
+aNa
+aNa
+aNa
+aNa
+aNa
+cyp
+aNa
+bdA
+aNa
+aNa
+aNa
+ayF
+bky
+blR
+bns
+boF
+bqe
+brC
+brv
+buv
+bvO
+bxr
+byv
+bzO
+bzO
+bzO
+bqe
+bEF
+bky
+bEO
+bGK
+bKc
+cNW
+bMB
+bNA
+cOe
+bSl
+bUq
+flc
+vPE
+bXs
+bVt
+dfh
+jSO
+jgm
+oUh
+vPE
+jrE
+saK
+bSl
+cOx
+sLv
+ckS
+cNW
+jVl
+cds
+cjD
+ckt
+cly
+cmw
+cnj
+cnj
+cnj
+ayF
+ayF
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+csZ
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(195,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+atz
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aBM
+aBM
+aNa
+aQE
+aNa
+aQE
+aNa
+ayF
+ayF
+ayF
+aNa
+aQE
+aNa
+aQE
+aNa
+ayF
+ayF
+ayF
+bky
+cyC
+bns
+boF
+bqe
+brB
+brv
+bsG
+bvP
+bxn
+bqe
+bzO
+bzO
+bzO
+bqe
+bEE
+bFY
+bEN
+bGG
+bKb
+cNX
+cNZ
+cNZ
+jCq
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+bSl
+cNW
+cgr
+cNW
+cNW
+ccr
+cdr
+cjF
+cks
+clx
+cmv
+cnk
+cnK
+cyU
+jIs
+jIs
+jIs
+jIs
+vZA
+crk
+crk
+crk
+crk
+crk
+uDO
+jIs
+vZA
+crk
+uDO
+jIs
+jIs
+ctB
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(196,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+aNa
+aQE
+aNa
+aQE
+aNa
+ayF
+ayF
+ayF
+aNa
+aQE
+aNa
+aQE
+aNa
+ayF
+ayF
+ayF
+crk
+crk
+bns
+boF
+bqe
+brD
+brP
+bsI
+bvO
+bxs
+byw
+bzO
+bzO
+bzO
+bqe
+bEG
+bGa
+bHs
+bGL
+bKd
+cNY
+bMC
+cOb
+jHt
+bPO
+kob
+bSm
+bTr
+bTr
+bTr
+bTr
+bTr
+bTr
+bTr
+bTr
+cbg
+bTr
+bTr
+bTr
+nGt
+cbg
+bTr
+cct
+cdu
+cjG
+cku
+clz
+cmx
+cnj
+cnj
+cnj
+ayF
+ayF
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+vPs
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(197,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+wWu
+wWu
+wWu
+aBM
+aBM
+aBM
+wWu
+wWu
+aBM
+aBM
+aBM
+aBM
+aNa
+aeR
+aNa
+aQE
+aNa
+ayF
+ayF
+ayF
+aNa
+aQE
+aNa
+afE
+aNa
+ayF
+ayF
+ayF
+ayF
+ayF
+bns
+boF
+bqe
+bqe
+bry
+bsH
+bqe
+bqe
+bqe
+bqe
+bqe
+bqe
+bqe
+bEG
+bFZ
+bHr
+bIS
+bEs
+bEs
+bEs
+cNW
+sOs
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+clt
+cNW
+cNW
+cNW
+cNW
+cjD
+cjD
+cjD
+cjD
+cnj
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+adW
+cNa
+ayF
+ayF
+ayB
+ayB
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(198,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aNa
+aQE
+aNa
+aQE
+aNa
+ayF
+ayF
+ayF
+aNa
+aQE
+aNa
+aQE
+aNa
+ayF
+ayF
+ayF
+ayF
+aBM
+bns
+boH
+biY
+brF
+brQ
+bsM
+buz
+buz
+buz
+buz
+buz
+cNU
+buz
+bEI
+bFZ
+bHu
+bIV
+bKf
+bLk
+bEs
+bNC
+nRG
+cbf
+cbf
+cbf
+cbf
+cbf
+cbf
+cbf
+bYr
+cbf
+clr
+cad
+cbi
+cNW
+ccW
+cdV
+clt
+cNW
+cgy
+ccV
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+adW
+cNa
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(199,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aaf
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aNa
+cyh
+aRW
+aTo
+aNa
+ayF
+ayF
+ayF
+aNa
+aTo
+aRW
+cyr
+aNa
+aBM
+ayF
+ayF
+ayF
+aBM
+bnu
+bhG
+bhG
+bhG
+bhG
+bsJ
+brE
+bhG
+bhG
+bhG
+bhG
+cNV
+bhG
+bEH
+bGb
+cBA
+bIU
+bKe
+bLj
+bEs
+bNB
+cac
+bPP
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+cNW
+kAJ
+clt
+cac
+cbh
+cNW
+ccV
+cOe
+clt
+cfv
+cBL
+cOe
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+adW
+cNa
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(200,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+crk
+crk
+crk
+auN
+crk
+ayF
+ayF
+ayF
+crk
+crk
+crk
+crk
+crk
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+bky
+btp
+brH
+bvQ
+bxt
+cNT
+bCm
+bDh
+bEs
+ydD
+bHv
+bIW
+bKe
+vHY
+bEs
+rmX
+xIa
+vxh
+cNW
+aBM
+aBM
+ayF
+aBM
+aBM
+cNW
+bYs
+nRG
+ciJ
+cbf
+cbf
+cbf
+cbf
+ceT
+cNW
+dBm
+chH
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+crE
+cNa
+ayF
+cMQ
+adW
+cNa
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(201,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+bZi
+bqg
+brG
+brG
+cNR
+brG
+brG
+bDg
+bEs
+bGd
+poc
+rNc
+bEs
+bLm
+bEs
+cOT
+cOT
+cOT
+cNW
+aBM
+aBM
+ayF
+aBM
+aBM
+cNW
+cNW
+cOT
+cOT
+cOT
+cNW
+cNW
+cNW
+cPH
+cNW
+cNW
+cNW
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+cMQ
+crG
+cNa
+ayF
+cMQ
+crG
+cNa
+ayF
+cMQ
+crG
+cNa
+ayF
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(202,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+ayF
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+bZi
+btq
+brI
+bvR
+cNS
+byx
+brI
+bky
+bky
+bEs
+bGc
+bGc
+bEs
+bLl
+bEs
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+ayF
+cNW
+ceU
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+oDb
+ayF
+ayF
+ayF
+ayF
+ayB
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(203,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+oDb
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+bky
+bky
+bky
+bky
+bky
+bky
+bky
+bky
+ayF
+aBM
+aBM
+aBM
+crk
+crk
+crk
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+aBM
+aBM
+ayF
+oDb
+ayF
+aBM
+aBM
+ayF
+ayF
+cNW
+cPI
+cNW
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+ayB
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(204,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+ayF
+ayF
+aBM
+ayF
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+crk
+crk
+crk
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(205,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+ayF
+ayF
+aBM
+ayF
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(206,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+ayF
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+ayF
+ayF
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(207,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(208,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+oDb
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(209,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(210,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(211,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(212,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(213,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(214,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(215,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(216,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(217,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(218,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(219,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(220,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(221,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(222,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(223,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(224,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(225,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bGf
+bLo
+bGf
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(226,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bIX
+bGf
+bLn
+bGf
+bIX
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(227,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bGf
+bGf
+bKh
+bLo
+bMD
+bGf
+bGf
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(228,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bGe
+bGe
+bIY
+bKg
+bKg
+bKg
+bND
+bGe
+bGe
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(229,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+bGf
+bHw
+bJa
+bKg
+bLp
+bKg
+bNF
+bOJ
+bGf
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(230,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bGe
+bGe
+bIZ
+bKg
+bKg
+bKg
+bNE
+bGe
+bGe
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(231,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bGf
+bGf
+bKi
+bLr
+bME
+bNG
+bNG
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(232,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bIX
+bGf
+bLq
+bGf
+bIX
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(233,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+bGf
+bGe
+bGf
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(234,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(235,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+ayF
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(236,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(237,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+ayF
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(238,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(239,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aBM
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(240,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(241,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(242,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(243,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(244,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(245,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(246,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(247,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(248,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(249,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(250,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(251,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(252,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(253,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(254,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
+(255,1,1) = {"
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+aCx
+"}
diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm
new file mode 100644
index 0000000000..c3866d387c
--- /dev/null
+++ b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm
@@ -0,0 +1,69846 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 2;
+ height = 5;
+ id = "laborcamp_away";
+ name = "labor camp";
+ width = 9
+ },
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"ah" = (
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"ak" = (
+/turf/closed/mineral/random/high_chance/snow,
+/area/icemoon/underground/unexplored/rivers)
+"ao" = (
+/obj/machinery/computer/shuttle/labor/one_way{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"ap" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"aq" = (
+/turf/closed/wall,
+/area/mine/laborcamp)
+"au" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"az" = (
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"aC" = (
+/obj/structure/sign/poster/official/safety_report{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Central";
+ dir = 4;
+ network = list("labor")
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"aF" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "labor";
+ name = "labor camp blast door"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"aG" = (
+/obj/structure/table,
+/obj/item/trash/plate,
+/obj/item/kitchen/fork,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"aJ" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/book/manual/chef_recipes{
+ pixel_x = 2;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"aM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/mine/eva)
+"aN" = (
+/obj/machinery/status_display/evac{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"aS" = (
+/obj/structure/sign/warning/docking{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"aV" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"aY" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Shuttle Security Airlock";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"bd" = (
+/obj/machinery/mineral/processing_unit_console,
+/turf/closed/wall,
+/area/mine/laborcamp)
+"bf" = (
+/turf/closed/wall,
+/area/mine/eva)
+"bg" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/mine/eva)
+"bh" = (
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"bi" = (
+/obj/structure/gulag_beacon,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"bn" = (
+/obj/structure/table,
+/obj/item/pickaxe,
+/obj/item/gps/mining,
+/obj/item/gps/mining,
+/obj/item/gps/mining,
+/obj/item/gps/mining,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bo" = (
+/obj/machinery/suit_storage_unit/mining,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bp" = (
+/obj/machinery/suit_storage_unit/mining,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bq" = (
+/turf/closed/wall,
+/area/mine/production)
+"br" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/mine/production)
+"bs" = (
+/obj/machinery/camera{
+ c_tag = "EVA";
+ dir = 4;
+ network = list("mine")
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bt" = (
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bu" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"bx" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Shuttle Prisoner Airlock"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"by" = (
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "Labor Camp APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"bB" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"bD" = (
+/obj/structure/closet/crate,
+/obj/item/dice/d4,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"bE" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"bF" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/mine/eva)
+"bG" = (
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bH" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bI" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bJ" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bK" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/door/airlock/highsecurity{
+ name = "Labor Camp Monitoring";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"bM" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"bN" = (
+/obj/structure/sign/warning/docking,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/mine/production)
+"bO" = (
+/obj/item/beacon,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"bP" = (
+/turf/open/floor/plasteel,
+/area/mine/production)
+"bQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"bR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"bS" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Mining Station EVA";
+ req_access_txt = "54"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bW" = (
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bX" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Mining External Airlock";
+ opacity = 0;
+ req_access_txt = "54"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"bY" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"ca" = (
+/turf/closed/wall,
+/area/mine/laborcamp/security)
+"cb" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"cc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/mob/living/simple_animal/bot/secbot/beepsky{
+ desc = "Powered by the tears and sweat of laborers.";
+ name = "Prison Ofitser"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"ch" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"cj" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Mining Shuttle Airlock";
+ opacity = 0
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"ck" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cn" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"co" = (
+/obj/machinery/power/apc{
+ name = "Mining EVA APC";
+ pixel_x = 1;
+ pixel_y = -23
+ },
+/obj/machinery/recharge_station,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"cp" = (
+/obj/machinery/mech_bay_recharge_port,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/mine/eva)
+"cq" = (
+/turf/open/floor/mech_bay_recharge_floor,
+/area/mine/eva)
+"cs" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"cy" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"cB" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"cC" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"cD" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cF" = (
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cG" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/freezer/gulag_fridge,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"cH" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cI" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cJ" = (
+/obj/machinery/door/airlock{
+ name = "Closet"
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"cK" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"cL" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/mine/production)
+"cM" = (
+/turf/closed/wall,
+/area/mine/living_quarters)
+"cO" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cP" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cQ" = (
+/turf/closed/wall/r_wall,
+/area/mine/maintenance)
+"cR" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"cS" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"cT" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/closet/crate/secure/loot,
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"cU" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"cV" = (
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"cW" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"cX" = (
+/obj/machinery/power/apc{
+ dir = 8;
+ name = "Mining Station Starboard Wing APC";
+ pixel_x = -25;
+ pixel_y = 2
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"cZ" = (
+/obj/machinery/mineral/equipment_vendor,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"db" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dc" = (
+/obj/structure/closet/crate,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dd" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/structure/table,
+/obj/item/paper/fluff/stations/lavaland/orm_notice,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"de" = (
+/obj/structure/ore_box,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"df" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dg" = (
+/turf/open/floor/circuit,
+/area/mine/maintenance)
+"dh" = (
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "Mining Communications APC";
+ pixel_x = 1;
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/mine/maintenance)
+"di" = (
+/obj/machinery/telecomms/relay/preset/mining,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/mine/maintenance)
+"dj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/mine/maintenance)
+"dk" = (
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/circuit,
+/area/mine/maintenance)
+"dl" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/iv_drip,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"dm" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"dn" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"do" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/machinery/meter,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dq" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dr" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"ds" = (
+/obj/machinery/mineral/equipment_vendor,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"du" = (
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dv" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dw" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit,
+/area/mine/maintenance)
+"dy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 10
+ },
+/obj/machinery/bluespace_beacon,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/mine/maintenance)
+"dz" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/circuit,
+/area/mine/maintenance)
+"dA" = (
+/obj/machinery/camera{
+ c_tag = "Communications Relay";
+ dir = 8;
+ network = list("mine")
+ },
+/turf/open/floor/circuit,
+/area/mine/maintenance)
+"dB" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/item/reagent_containers/blood/AMinus,
+/obj/item/reagent_containers/blood/BMinus{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/blood/BPlus{
+ pixel_x = 1;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/blood/OMinus,
+/obj/item/reagent_containers/blood/OPlus{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/obj/machinery/camera{
+ c_tag = "Sleeper Room";
+ dir = 1;
+ network = list("mine")
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"dC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"dD" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"dE" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/regular,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"dF" = (
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dH" = (
+/obj/machinery/atmospherics/components/binary/pump/on,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dJ" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dK" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Shuttle Docking Foyer";
+ dir = 8;
+ network = list("mine")
+ },
+/obj/machinery/newscaster{
+ pixel_x = 30;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dL" = (
+/obj/structure/closet/crate{
+ icon_state = "crateopen"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dM" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dN" = (
+/obj/machinery/camera{
+ c_tag = "Processing Area Room";
+ dir = 8;
+ network = list("mine")
+ },
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dO" = (
+/obj/machinery/mineral/unloading_machine{
+ dir = 1;
+ icon_state = "unloader-corner";
+ input_dir = 1;
+ output_dir = 2
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"dP" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Mining Station Communications";
+ req_access_txt = "48"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/maintenance)
+"dQ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dR" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Infirmary"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"dS" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Mining Station Maintenance";
+ req_access_txt = "48"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"dT" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dU" = (
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dV" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/mine/production)
+"dW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dX" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "mining_internal";
+ name = "mining conveyor"
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"dY" = (
+/obj/machinery/conveyor{
+ id = "mining_internal"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"dZ" = (
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ea" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ec" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ee" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ef" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eg" = (
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "Mining Station Port Wing APC";
+ pixel_x = 1;
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eh" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ei" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ej" = (
+/obj/machinery/camera{
+ c_tag = "Crew Area Hallway East";
+ network = list("mine")
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ek" = (
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"em" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"en" = (
+/obj/machinery/mineral/processing_unit_console,
+/turf/closed/wall,
+/area/mine/production)
+"eo" = (
+/obj/machinery/mineral/processing_unit{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"eq" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"er" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"es" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"et" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eu" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ew" = (
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ex" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/door/airlock/glass{
+ name = "Mining Station Bridge"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ey" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ez" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/door/airlock/glass{
+ name = "Mining Station Bridge"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eB" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eC" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eJ" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eL" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eM" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eO" = (
+/obj/machinery/light/small,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/door/airlock/glass,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eR" = (
+/obj/machinery/door/airlock/glass{
+ name = "Break Room"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"eS" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/mineral/equipment_vendor,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eT" = (
+/obj/structure/closet/crate{
+ icon_state = "crateopen"
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eU" = (
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eW" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"eX" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "mining_internal"
+ },
+/obj/structure/plasticflaps,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"eY" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "mining_internal"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"eZ" = (
+/obj/machinery/conveyor{
+ dir = 10;
+ id = "mining_internal"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"fa" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/structure/chair,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fb" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/chair,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fc" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fd" = (
+/obj/machinery/camera{
+ c_tag = "Public Shuttle Lobby";
+ network = list("mine")
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/gps/mining,
+/obj/item/gps/mining,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fe" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/carpet,
+/area/mine/living_quarters)
+"ff" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 6
+ },
+/turf/open/floor/carpet,
+/area/mine/living_quarters)
+"fg" = (
+/obj/machinery/door/airlock{
+ id_tag = "miningdorm1";
+ name = "Room 1"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fi" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fj" = (
+/obj/machinery/vending/snack,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fk" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fm" = (
+/obj/machinery/vending/cigarette,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fn" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fp" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fq" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fr" = (
+/obj/structure/table,
+/turf/open/floor/carpet,
+/area/mine/living_quarters)
+"fs" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "miningdorm1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/mine/living_quarters)
+"ft" = (
+/obj/machinery/camera{
+ c_tag = "Dormitories";
+ dir = 4;
+ network = list("mine")
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fu" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fv" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fy" = (
+/obj/structure/table,
+/obj/item/clothing/glasses/meson,
+/obj/item/storage/bag/ore,
+/obj/item/pickaxe,
+/obj/item/mining_scanner,
+/obj/item/flashlight,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fB" = (
+/obj/structure/displaycase,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fC" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fD" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = 7;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = -1;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = -8
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fE" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fF" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fG" = (
+/obj/structure/table,
+/obj/item/storage/box/donkpockets,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fH" = (
+/obj/machinery/door/airlock{
+ id_tag = "miningdorm2";
+ name = "Room 2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fI" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fJ" = (
+/obj/machinery/camera{
+ c_tag = "Crew Area";
+ dir = 1;
+ network = list("mine")
+ },
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fK" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fM" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "miningdorm2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/mine/living_quarters)
+"fN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fO" = (
+/obj/machinery/door/airlock{
+ id_tag = "miningdorm3";
+ name = "Room 3"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"fP" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "miningdorm3";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/mine/living_quarters)
+"ga" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"gd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"gn" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"gp" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/regular,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"gS" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Shuttle Security Airlock";
+ req_access_txt = "2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"gW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"hv" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "gulag";
+ name = "labor camp conveyor"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"hz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"hY" = (
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "gulag3";
+ name = "Cell 3"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"ia" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"ie" = (
+/obj/machinery/vending/sustenance,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"ip" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ix" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Operations";
+ dir = 8;
+ network = list("labor")
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"iG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"iM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"iZ" = (
+/obj/machinery/camera{
+ c_tag = "Labor Camp External South";
+ dir = 4;
+ network = list("labor")
+ },
+/turf/closed/mineral/random/snow,
+/area/mine/laborcamp)
+"je" = (
+/obj/structure/bed,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"jk" = (
+/obj/machinery/computer/prisoner,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"jo" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"jr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"ju" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"jy" = (
+/obj/structure/table,
+/obj/item/toy/cards/deck,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"jL" = (
+/turf/closed/wall/r_wall,
+/area/icemoon/underground/unexplored/rivers)
+"jU" = (
+/obj/structure/ore_box,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"jV" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"kb" = (
+/obj/machinery/conveyor{
+ dir = 10;
+ id = "gulag"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"ks" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"ku" = (
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/structure/displaycase,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"kv" = (
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"kI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Processing Area";
+ req_access_txt = "48"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"kL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"kO" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"lO" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"mi" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/ore_box,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"mL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/twohanded/required/kirbyplants/random,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"mS" = (
+/obj/structure/sink/kitchen{
+ desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
+ dir = 8;
+ name = "old sink";
+ pixel_x = 12
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"nd" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ brightness = 3;
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"nm" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 11
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"nq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"nE" = (
+/obj/structure/sign/poster/official/do_not_question{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"nI" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"nL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"nN" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"nV" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"op" = (
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Mining External Airlock";
+ opacity = 0;
+ req_access_txt = "54"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"oB" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"oL" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Lavaland Shuttle Airlock"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"oO" = (
+/obj/structure/table,
+/obj/item/gps/mining,
+/obj/item/gps/mining,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"oQ" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"oU" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"oW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"pf" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/seeds/carrot,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"pi" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Cellblock";
+ dir = 4;
+ network = list("labor")
+ },
+/obj/item/twohanded/required/kirbyplants/random,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"pu" = (
+/obj/structure/sign/poster/official/obey{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"pJ" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"pV" = (
+/obj/machinery/door/airlock{
+ name = "Restroom"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"qa" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"qb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"qt" = (
+/obj/structure/table,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"qN" = (
+/obj/structure/chair/stool,
+/obj/machinery/flasher{
+ id = "GulagCell 3";
+ pixel_x = -28
+ },
+/obj/structure/sign/poster/official/obey{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"rj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/mine/eva)
+"rv" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"ry" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"rz" = (
+/obj/structure/chair/stool,
+/obj/machinery/flasher{
+ id = "GulagCell 2";
+ pixel_x = -28
+ },
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"sa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"sj" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"so" = (
+/obj/structure/ladder,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"sp" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sink/kitchen{
+ desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
+ dir = 1;
+ name = "old sink";
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"ss" = (
+/obj/machinery/button/door{
+ id = "miningbathroom";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"st" = (
+/obj/machinery/biogenerator,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"su" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"sA" = (
+/obj/structure/table,
+/obj/item/paper,
+/obj/item/pen,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Cell 1";
+ dir = 4;
+ network = list("labor")
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"sH" = (
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Mining External Airlock";
+ opacity = 0
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"sM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"sY" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/structure/sign/mining,
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"tn" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"tI" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"tL" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"uG" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"uJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/mine/living_quarters)
+"vb" = (
+/obj/machinery/door/window/southleft,
+/obj/machinery/shower{
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"vq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"vw" = (
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Labor Camp External Airlock";
+ opacity = 0
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"vG" = (
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"vH" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "Labor Camp Security APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"vW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"we" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/box/donkpockets,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"wj" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"wq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"wN" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"wX" = (
+/obj/machinery/door/airlock{
+ name = "Labor Camp Library"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"wZ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"xi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/closed/wall,
+/area/mine/living_quarters)
+"xU" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/seeds/onion,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"yf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"yk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"yq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"yr" = (
+/turf/closed/wall/r_wall,
+/area/mine/laborcamp)
+"yy" = (
+/obj/structure/rack,
+/obj/item/storage/bag/ore,
+/obj/item/pickaxe,
+/obj/item/flashlight,
+/obj/item/clothing/glasses/meson,
+/obj/item/mining_scanner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"yD" = (
+/obj/machinery/mineral/unloading_machine{
+ dir = 1;
+ icon_state = "unloader-corner";
+ input_dir = 1;
+ output_dir = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"yX" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"zk" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/ore_box,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"zn" = (
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Mining External Airlock";
+ opacity = 0
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"zQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"zU" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/mine/laborcamp)
+"zX" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/closet/secure_closet/labor_camp_security,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"Ac" = (
+/obj/structure/chair/stool,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Al" = (
+/obj/structure/ore_box,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"Aw" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"AB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"AW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"Bd" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"Be" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"Bl" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Bz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"BL" = (
+/obj/machinery/light/small,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Showers";
+ dir = 1;
+ network = list("labor")
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"Cd" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Cf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "cellblock1";
+ name = "Labor Camp Cellblock"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Cr" = (
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "gulag1";
+ name = "Cell 1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"CK" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Dh" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"Dn" = (
+/obj/structure/rack,
+/obj/item/storage/bag/ore,
+/obj/item/flashlight,
+/obj/item/pickaxe,
+/obj/item/clothing/glasses/meson,
+/obj/item/mining_scanner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Du" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"DB" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"DR" = (
+/obj/structure/chair/stool,
+/obj/structure/sign/poster/official/report_crimes{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Ee" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"El" = (
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"Es" = (
+/obj/machinery/door/window/southright,
+/obj/machinery/shower{
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"Ez" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"EB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate,
+/obj/item/seeds/wheat,
+/obj/item/seeds/wheat,
+/obj/item/seeds/tomato,
+/obj/item/seeds/onion,
+/obj/item/seeds/garlic,
+/obj/item/seeds/carrot,
+/obj/item/seeds/ambrosia,
+/obj/item/seeds/apple,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"EG" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"EL" = (
+/obj/machinery/shower{
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"ET" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Fd" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Labor Camp Security Office";
+ dir = 1;
+ network = list("labor")
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"Fy" = (
+/obj/structure/chair/stool,
+/obj/machinery/flasher{
+ id = "GulagCell 1";
+ pixel_x = -28
+ },
+/obj/structure/sign/poster/official/obey{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"FB" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"FF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"FQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"FU" = (
+/obj/machinery/seed_extractor,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"Gn" = (
+/obj/item/clothing/under/color/jumpskirt/random,
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"Gp" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Gv" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Gw" = (
+/obj/machinery/camera{
+ c_tag = "Labor Camp External West";
+ dir = 4;
+ network = list("labor")
+ },
+/turf/closed/mineral/random/snow,
+/area/mine/laborcamp)
+"GI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"GN" = (
+/obj/structure/table,
+/obj/item/tank/internals/emergency_oxygen{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/obj/item/tank/internals/emergency_oxygen,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"GY" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Hd" = (
+/turf/closed/wall/r_wall,
+/area/mine/laborcamp/security)
+"Ho" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/living_quarters)
+"Hx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"HF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"HM" = (
+/obj/machinery/camera{
+ c_tag = "Labor Camp External North";
+ dir = 1;
+ network = list("labor")
+ },
+/turf/closed/mineral/random/snow,
+/area/mine/laborcamp)
+"HO" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"HW" = (
+/obj/structure/table,
+/obj/item/paper,
+/obj/item/pen,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Cell 3";
+ dir = 4;
+ network = list("labor")
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"HX" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restroom"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"HY" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
+ dir = 4;
+ piping_layer = 3
+ },
+/obj/structure/lattice/catwalk,
+/turf/closed/mineral/random/snow,
+/area/mine/living_quarters)
+"Iq" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Monitoring";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"Iv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"IB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"IF" = (
+/obj/machinery/mineral/mint,
+/turf/open/floor/plasteel,
+/area/mine/production)
+"IK" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"IM" = (
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_y = 24;
+ prison_radio = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Jo" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"JM" = (
+/obj/structure/closet/crate/internals,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"JU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Kb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"Kk" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"KE" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"KJ" = (
+/obj/structure/closet/crate,
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"Lg" = (
+/obj/item/clothing/under/color/jumpskirt/random,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"Lu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"LE" = (
+/obj/machinery/camera{
+ c_tag = "Crew Area Hallway";
+ network = list("mine")
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"LI" = (
+/obj/structure/sink/kitchen{
+ desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
+ name = "old sink";
+ pixel_y = 28
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"LL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"LU" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/computer/libraryconsole/bookmanagement,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Mt" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/seeds/redbeet,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"MG" = (
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"MH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"Nj" = (
+/obj/machinery/door/airlock{
+ name = "Restroom"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"Nt" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"Ny" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Labor Camp Infirmary";
+ dir = 8;
+ network = list("labor")
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"NI" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"NK" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "labor";
+ name = "Labor Camp Lockdown";
+ pixel_y = 28;
+ req_access_txt = "2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"NP" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"NY" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "gulag"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/plasticflaps,
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"Of" = (
+/obj/machinery/light/small,
+/turf/closed/mineral/random/snow,
+/area/mine/laborcamp)
+"Ol" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "cellblock1";
+ name = "Labor Camp Operations"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Ou" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"Ow" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"Pa" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/recharger,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"Pl" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"Pp" = (
+/obj/machinery/mineral/processing_unit{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"Ps" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Pt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"PE" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"PL" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"PY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/mine/laborcamp)
+"Qx" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/plant_analyzer,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"QN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"QQ" = (
+/obj/structure/table,
+/obj/item/storage/fancy/donut_box,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"QW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"QX" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Library";
+ dir = 8;
+ network = list("labor")
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Rb" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Rf" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"Rx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"RE" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"RO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"SE" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/twelve_gauge{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"SJ" = (
+/obj/structure/statue{
+ desc = "A lifelike statue of a horrifying monster.";
+ dir = 8;
+ icon = 'icons/mob/lavaland/lavaland_monsters.dmi';
+ icon_state = "goliath";
+ name = "goliath"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"SV" = (
+/obj/machinery/computer/security/labor,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"SX" = (
+/obj/machinery/conveyor{
+ id = "gulag"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/mine/laborcamp)
+"Ti" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Tk" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/item/seeds/soya,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"Tn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"To" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/mine/production)
+"Tv" = (
+/obj/machinery/camera{
+ c_tag = "Crew Area Hallway West";
+ dir = 1;
+ network = list("mine")
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"TA" = (
+/obj/structure/sign/departments/medbay/alt{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"TC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"TP" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"TT" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/mine/laborcamp)
+"Uh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"Ur" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"UE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"UH" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"UJ" = (
+/obj/machinery/vending/security{
+ onstation_override = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp/security)
+"UM" = (
+/obj/structure/table,
+/obj/item/paper,
+/obj/item/pen,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Labor Camp Cell 2";
+ dir = 4;
+ network = list("labor")
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"UP" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = -12
+ },
+/obj/structure/mirror{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"UQ" = (
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"US" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Lavaland Shuttle Airlock"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"UW" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"Vo" = (
+/obj/item/bikehorn{
+ color = "#000";
+ desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks.";
+ name = "charred bike horn"
+ },
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"VC" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"VP" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"VX" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Infirmary"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/mine/laborcamp)
+"Wi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/mine/laborcamp/security)
+"WA" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/cultivator,
+/obj/item/seeds/potato,
+/turf/open/floor/plasteel/dark,
+/area/mine/laborcamp)
+"WD" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Mining External Airlock";
+ opacity = 0;
+ req_access_txt = "54"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/eva)
+"WE" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ glass = 1;
+ name = "Mining Shuttle Airlock";
+ opacity = 0
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
+"WM" = (
+/obj/machinery/shower{
+ pixel_y = 22
+ },
+/obj/item/soap/nanotrasen,
+/obj/item/bikehorn/rubberducky,
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"WO" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/sign/warning/xeno_mining{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Xf" = (
+/obj/structure/ore_box,
+/turf/closed/mineral/random/snow,
+/area/icemoon/underground/unexplored/rivers)
+"Xl" = (
+/obj/structure/bookcase,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Xx" = (
+/obj/structure/sign/poster/official/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"XU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Ym" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"Yv" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Yy" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/machinery/mineral/labor_points_checker{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"YA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
+"YB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/lattice/catwalk,
+/turf/closed/mineral/random/snow,
+/area/mine/living_quarters)
+"YP" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Showers"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/laborcamp)
+"YW" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/ore_box,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Zd" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Shuttle Prisoner Airlock"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Zf" = (
+/obj/machinery/door/airlock{
+ id_tag = "miningbathroom";
+ name = "Restroom"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/mine/living_quarters)
+"Zk" = (
+/obj/machinery/door/airlock/public/glass{
+ id_tag = "gulag2";
+ name = "Cell 2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/mine/laborcamp)
+"Zm" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/mine/laborcamp)
+
+(1,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(2,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(3,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(4,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(5,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(6,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(7,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(8,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(9,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(10,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(11,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(12,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(13,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(14,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(15,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(16,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(17,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(18,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(19,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(20,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(21,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(22,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(23,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(24,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(25,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(26,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(27,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(28,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(29,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+aa
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(30,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ak
+ak
+ak
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+yr
+ap
+ap
+ap
+ap
+yr
+aY
+yr
+yr
+yr
+bx
+yr
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(31,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+yr
+Ee
+Ac
+Ac
+Ee
+aq
+NK
+aq
+ao
+aq
+nN
+yr
+ah
+ah
+ah
+ah
+Vo
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(32,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+yr
+pu
+NI
+au
+Yv
+aq
+gS
+aq
+bi
+aq
+Zd
+yr
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(33,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+ap
+ap
+yr
+Ee
+jy
+aG
+Ee
+aq
+aF
+aq
+aN
+aS
+Ee
+yr
+Hd
+Hd
+Hd
+ry
+Hd
+cR
+cR
+cR
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(34,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+El
+BL
+aq
+Ee
+Ee
+NP
+Ee
+aC
+az
+Ee
+su
+Ee
+Yv
+yr
+cb
+UJ
+cG
+QQ
+Hd
+qt
+dZ
+Gn
+cM
+HY
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(35,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+HM
+yr
+EL
+El
+YP
+Ee
+Ee
+FQ
+Jo
+Jo
+Jo
+ks
+JU
+Iv
+jr
+bL
+cc
+bw
+Hx
+oU
+Hd
+Ym
+dZ
+eM
+cM
+YB
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(36,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+KJ
+yr
+WM
+mS
+aq
+ie
+Ee
+wq
+Ee
+Bl
+we
+aJ
+mL
+CK
+CK
+yr
+SE
+bh
+GI
+Fd
+Hd
+Xx
+dZ
+dZ
+cM
+uJ
+nI
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(37,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+ap
+ap
+yr
+aq
+aq
+aq
+aq
+vG
+zQ
+Ee
+FU
+pf
+WA
+Qx
+yr
+yr
+yr
+vH
+bh
+QN
+oW
+sM
+eL
+gn
+ec
+dZ
+gW
+ju
+cM
+ah
+ah
+ah
+ah
+cR
+US
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(38,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+gp
+nV
+aq
+LU
+DR
+nd
+aq
+IM
+wq
+Ee
+PE
+wZ
+Ow
+sp
+yr
+by
+pV
+UH
+ch
+iM
+sa
+Iq
+QW
+vW
+QW
+QW
+RO
+Tv
+cM
+ah
+ah
+ah
+ah
+cR
+dZ
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(39,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+tL
+oB
+aq
+Gv
+Bz
+KE
+wX
+Iv
+HF
+EB
+st
+Tk
+Mt
+xU
+yr
+bB
+ca
+MG
+bh
+AW
+bM
+yf
+dZ
+dZ
+Dh
+Nt
+YA
+dZ
+cM
+cM
+cM
+xi
+cM
+cR
+oL
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(40,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+Bd
+Ny
+aq
+Xl
+QX
+aq
+aq
+aq
+Cf
+aq
+aq
+aq
+aq
+aq
+yr
+yr
+Hd
+SV
+cB
+bh
+uG
+cQ
+cQ
+cQ
+cQ
+ip
+YA
+dZ
+cM
+Lg
+kO
+dZ
+kO
+eL
+Pl
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(41,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+yr
+Du
+aq
+aq
+aq
+aq
+aq
+oQ
+aq
+ET
+pi
+aq
+Fy
+sA
+ap
+iZ
+ah
+yk
+jk
+cC
+Pa
+zX
+cQ
+dg
+dg
+cQ
+dZ
+YA
+dZ
+cM
+fa
+dZ
+dZ
+dZ
+dZ
+dZ
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(42,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+Xf
+yr
+Du
+aq
+yy
+yy
+yy
+aq
+LI
+HX
+kL
+Jo
+Cr
+Cd
+je
+ap
+ah
+ah
+TC
+Wi
+Wi
+Wi
+FF
+cQ
+dh
+dx
+cQ
+ea
+YA
+ek
+cM
+fb
+dZ
+fy
+fy
+dZ
+SJ
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(43,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+Xf
+yr
+VX
+aq
+Dn
+Ee
+Ee
+aq
+aq
+aq
+Rb
+IB
+aq
+aq
+aq
+yr
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cQ
+di
+dy
+dP
+eb
+eq
+eK
+eQ
+ef
+Aw
+fy
+fy
+dZ
+dZ
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(44,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+Of
+yr
+yr
+yr
+wN
+TA
+qb
+Ee
+Ee
+Ee
+JM
+aq
+nE
+Ee
+aq
+rz
+UM
+ap
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cQ
+dj
+dz
+cQ
+ec
+er
+eL
+cM
+fc
+gW
+dZ
+dZ
+dZ
+eM
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(45,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+vw
+Ou
+vw
+UE
+Ti
+tn
+pJ
+mi
+Ee
+Ee
+aq
+ga
+Jo
+Zk
+iG
+je
+ap
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cQ
+dk
+dA
+cQ
+LE
+Kb
+eM
+cM
+fd
+fq
+oO
+GN
+fB
+ku
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(46,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+Of
+yr
+yr
+yr
+WO
+YW
+zk
+FB
+Gp
+Jo
+Jo
+Ol
+HF
+Ee
+aq
+aq
+aq
+yr
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cQ
+cQ
+cQ
+cQ
+ee
+er
+dZ
+cM
+cM
+cM
+cM
+cM
+cM
+cM
+cM
+cM
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(47,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+KJ
+ap
+GY
+Ee
+az
+Ee
+qa
+Ee
+Ee
+Ee
+aq
+Yy
+Ez
+aq
+qN
+HW
+ap
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+dl
+dB
+cM
+dZ
+EG
+fp
+cM
+fe
+fr
+cM
+fe
+fr
+cM
+fe
+fr
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(48,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+Ee
+Ee
+ix
+Ee
+hv
+VC
+az
+nq
+aq
+XU
+Jo
+hY
+Cd
+je
+ap
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+dm
+dC
+dQ
+ea
+er
+dZ
+cM
+ff
+fs
+cM
+ff
+fM
+cM
+ff
+fP
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(49,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+jU
+Ps
+aq
+aq
+bd
+aq
+aq
+NY
+yr
+PY
+Zm
+yr
+yr
+yr
+yr
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+Ho
+dD
+dR
+ef
+es
+dZ
+cM
+fg
+cM
+cM
+fH
+cM
+cM
+fO
+cM
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(50,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+jU
+jo
+yD
+SX
+Pp
+SX
+SX
+kb
+yr
+zU
+TT
+ap
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+dn
+dE
+dQ
+ec
+er
+dZ
+eL
+fh
+ft
+eL
+fh
+VP
+eL
+fh
+ec
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(51,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ap
+ap
+ap
+yr
+yr
+yr
+yr
+yr
+yr
+yr
+ap
+ap
+ap
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+cM
+cM
+cM
+cM
+eg
+et
+eN
+eN
+fi
+eN
+eN
+fi
+fN
+eN
+HO
+fp
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(52,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+Gw
+ah
+ah
+UW
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+cS
+do
+dF
+cM
+eh
+EG
+fp
+cM
+cM
+dQ
+dQ
+cM
+cM
+cM
+Nj
+cM
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(53,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+sY
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+cT
+cV
+cV
+cM
+ea
+er
+eM
+cM
+fj
+fk
+Pt
+fI
+cM
+vb
+hz
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(54,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+UW
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+cU
+dp
+dH
+dS
+ei
+eu
+ek
+dQ
+fk
+fk
+fC
+fk
+cM
+Es
+Tn
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(55,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+UW
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+cV
+dq
+dI
+cM
+ej
+rv
+kv
+eR
+TP
+fu
+fD
+fJ
+cM
+cM
+Zf
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(56,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+jL
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+cW
+dr
+dr
+cM
+vq
+Kb
+eL
+dQ
+fk
+fk
+fE
+fK
+cM
+UP
+ss
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(57,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cM
+cM
+cM
+cM
+cM
+dZ
+er
+dZ
+cM
+fm
+fk
+fF
+fk
+cM
+IK
+tI
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(58,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+dZ
+er
+dZ
+cM
+fn
+fv
+fG
+nm
+cM
+cM
+cM
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(59,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+ek
+ew
+eO
+cM
+cR
+cR
+cR
+cR
+cM
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(60,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+cR
+ex
+cR
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(61,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+ey
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(62,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+er
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(63,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+er
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(64,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+cR
+er
+cR
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(65,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+br
+ez
+br
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(66,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+br
+ez
+br
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(67,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bN
+cj
+br
+ah
+ah
+ah
+ah
+ah
+ah
+br
+ez
+br
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(68,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+br
+bP
+br
+ah
+ah
+ah
+ah
+ah
+ah
+br
+UQ
+br
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(69,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+br
+br
+WE
+br
+br
+ah
+ah
+ah
+ah
+MH
+br
+eA
+br
+br
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(70,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bq
+br
+bO
+ck
+cD
+br
+bq
+bq
+bq
+bq
+cy
+cH
+eB
+cD
+br
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(71,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bq
+DB
+Lu
+bP
+cl
+cH
+cO
+cX
+ck
+dJ
+cy
+cn
+ez
+bP
+eS
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(72,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+br
+bD
+bQ
+cm
+cE
+Uh
+Uh
+yq
+nL
+Uh
+kI
+Be
+eC
+eP
+eT
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(73,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+br
+bE
+bR
+cn
+cF
+cI
+cP
+cn
+Rx
+bP
+To
+gd
+eD
+bP
+eU
+bq
+bq
+bq
+bq
+yX
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(74,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bf
+bf
+bf
+bF
+bS
+bF
+bf
+cJ
+bq
+cZ
+ds
+dK
+To
+bP
+eE
+bP
+dU
+br
+wj
+dU
+br
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(75,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bf
+bn
+bs
+bG
+bT
+co
+bf
+cK
+bq
+bq
+ia
+bq
+ia
+bP
+eE
+bP
+sj
+sH
+lO
+sj
+zn
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(76,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bg
+bo
+PL
+LL
+bU
+cp
+bf
+cL
+bq
+IF
+du
+dL
+cH
+dT
+eE
+bP
+cH
+br
+jV
+RE
+br
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(77,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bg
+bo
+bt
+bH
+bV
+cq
+bf
+bq
+bq
+db
+bP
+bP
+bP
+bP
+eH
+cF
+eW
+bq
+bq
+bq
+bq
+yX
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(78,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bf
+bp
+bu
+bI
+bW
+aV
+bf
+so
+bq
+dc
+bP
+dM
+dW
+AB
+eI
+bq
+eX
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(79,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bf
+bf
+bf
+rj
+bX
+aM
+bf
+op
+bq
+dd
+bP
+dN
+dX
+em
+eJ
+dV
+eY
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(80,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bf
+bJ
+bY
+cs
+bt
+Rf
+bq
+de
+dv
+bq
+dV
+en
+dV
+dV
+eY
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(81,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bf
+bK
+bW
+bt
+Ur
+Al
+bq
+df
+dw
+dO
+dY
+eo
+dY
+dY
+eZ
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(82,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+bf
+rj
+WD
+aM
+bf
+bf
+bq
+bq
+bq
+bq
+bq
+bq
+bq
+bq
+bq
+bq
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(83,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+Kk
+ah
+ah
+ah
+Kk
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(84,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(85,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(86,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(87,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(88,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(89,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(90,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(91,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(92,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(93,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(94,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(95,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(96,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(97,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(98,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(99,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(100,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(101,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(102,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(103,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(104,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(105,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(106,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(107,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(108,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(109,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(110,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(111,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(112,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(113,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(114,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(115,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(116,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(117,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(118,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(119,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(120,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(121,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(122,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(123,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(124,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(125,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(126,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(127,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(128,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(129,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(130,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(131,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(132,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(133,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(134,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(135,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(136,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(137,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(138,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(139,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(140,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(141,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(142,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(143,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(144,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(145,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(146,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(147,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(148,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(149,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(150,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(151,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(152,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(153,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(154,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(155,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(156,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(157,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(158,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(159,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(160,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(161,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(162,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(163,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(164,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(165,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(166,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(167,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(168,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(169,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(170,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(171,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(172,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(173,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(174,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(175,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(176,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(177,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(178,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(179,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(180,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(181,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(182,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(183,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(184,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(185,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(186,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(187,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(188,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(189,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(190,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(191,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(192,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(193,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(194,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(195,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(196,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(197,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(198,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(199,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(200,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(201,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(202,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(203,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(204,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(205,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(206,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(207,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(208,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(209,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(210,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(211,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(212,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(213,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(214,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(215,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(216,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(217,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(218,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(219,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(220,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(221,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(222,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(223,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(224,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ak
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(225,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(226,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(227,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(228,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(229,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(230,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(231,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(232,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(233,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(234,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(235,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(236,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(237,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(238,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(239,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(240,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(241,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(242,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(243,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(244,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(245,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(246,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(247,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(248,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(249,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(250,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(251,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(252,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(253,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(254,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
+(255,1,1) = {"
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+ah
+"}
diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm b/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm
new file mode 100644
index 0000000000..d4b416cd89
--- /dev/null
+++ b/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm
@@ -0,0 +1,65567 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/mineral/random/snow/underground,
+/area/icemoon/underground/unexplored/rivers)
+"b" = (
+/turf/closed/mineral/random/high_chance/snow,
+/area/icemoon/underground/unexplored/rivers)
+"d" = (
+/obj/structure/ladder,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"e" = (
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"h" = (
+/turf/closed/wall,
+/area/icemoon/underground/explored)
+"N" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"O" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+"T" = (
+/obj/item/flashlight/lantern{
+ on = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(21,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(22,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(23,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(24,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(25,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(26,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(27,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(28,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(29,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(30,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(31,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(32,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(33,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(34,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(35,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(36,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(37,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(38,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(39,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(41,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(42,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(43,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(44,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(45,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(46,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(47,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(48,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(49,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(50,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(51,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(52,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(53,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(54,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(55,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(56,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(57,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(58,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(59,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(60,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(61,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(62,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(63,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(64,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(65,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+"}
+(66,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(67,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(68,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(69,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(70,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(71,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(72,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(73,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(74,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(75,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(76,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+h
+e
+O
+e
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(77,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+e
+O
+O
+O
+e
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(78,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+O
+O
+d
+O
+O
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(79,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+e
+T
+O
+O
+e
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(80,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+h
+N
+O
+e
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(81,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(82,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(83,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(84,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(85,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(86,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(87,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(88,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(89,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(90,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(91,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(92,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(93,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(94,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(95,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(96,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(97,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(98,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(99,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(100,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(101,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(102,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(103,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(104,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(105,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(106,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(107,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(108,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(109,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(110,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(111,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(112,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(113,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(114,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(115,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(116,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(117,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(118,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(119,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(120,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(121,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(122,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(123,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(124,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(125,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(126,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(127,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(128,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(129,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(130,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(131,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(132,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(133,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+"}
+(134,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(135,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(136,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(137,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(138,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(139,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(140,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(141,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(142,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(143,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(144,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(145,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(146,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(147,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(148,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(149,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(150,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(151,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(152,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(153,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(154,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(155,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(156,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(157,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(158,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(159,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(160,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(161,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(162,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(163,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(164,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(165,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(166,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(167,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(168,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(169,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(170,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(171,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(172,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(173,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(174,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(175,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(176,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(177,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(178,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(179,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(180,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(181,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(182,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(183,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(184,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(185,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(186,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(187,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(188,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(189,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(190,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(191,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(192,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(193,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(194,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(195,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(196,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(197,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(198,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(199,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(200,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(201,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(202,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(203,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(204,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(205,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(206,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(207,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(208,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(209,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(210,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(211,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(212,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(213,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(214,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(215,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(216,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(217,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(218,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(219,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(220,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(221,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(222,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(223,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(224,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(225,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(226,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(227,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(228,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(229,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(230,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+"}
+(231,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(232,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(233,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(234,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(235,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(236,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(237,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(238,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(239,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(240,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(241,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(242,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(243,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(244,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(245,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(246,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(247,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(248,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(249,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(250,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(251,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(252,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(253,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(254,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(255,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 7efcc66850..7706764fbd 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -39,10 +39,6 @@
/obj/structure/table,
/obj/item/paper_bin,
/obj/item/pen,
-/obj/item/mmi/posibrain{
- pixel_x = 5;
- pixel_y = 8
- },
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
"aae" = (
@@ -57,7 +53,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
@@ -165,6 +160,10 @@
/obj/structure/cable{
icon_state = "0-8"
},
+/mob/living/simple_animal/bot/cleanbot{
+ auto_patrol = 1;
+ name = "Sir Cleansworth"
+ },
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
"aau" = (
@@ -263,17 +262,6 @@
/area/ai_monitored/turret_protected/ai)
"aaE" = (
/obj/structure/chair,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/light{
- dir = 1
- },
-/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
"aaF" = (
@@ -287,7 +275,6 @@
dir = 5
},
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/remains/human,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
"aaG" = (
@@ -593,9 +580,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"abd" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -636,10 +620,6 @@
/turf/open/floor/plasteel/dark,
/area/lawoffice)
"abg" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
},
@@ -733,6 +713,9 @@
name = "Station Intercom (Command)";
pixel_y = -28
},
+/obj/structure/window/reinforced{
+ dir = 8
+ },
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"abr" = (
@@ -873,7 +856,6 @@
pixel_x = 24
},
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/remains/human,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
"abD" = (
@@ -953,9 +935,6 @@
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
"abM" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -1132,7 +1111,6 @@
/turf/open/floor/plasteel,
/area/security/warden)
"acg" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/engine,
@@ -1352,7 +1330,6 @@
/turf/open/space,
/area/space/nearstation)
"acz" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
@@ -1363,7 +1340,9 @@
/turf/open/floor/engine,
/area/ai_monitored/storage/satellite)
"acB" = (
-/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/engine,
/area/ai_monitored/storage/satellite)
"acC" = (
@@ -1642,7 +1621,6 @@
/obj/machinery/light_switch{
pixel_y = -24
},
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
@@ -1661,7 +1639,7 @@
dir = 4
},
/turf/open/floor/engine,
-/area/ai_monitored/turret_protected/aisat_interior)
+/area/space)
"acY" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -1828,26 +1806,18 @@
id = "prisonblast";
name = "Prison Blast Door"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/security/prison)
"adm" = (
/obj/structure/chair/office{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/engine,
/area/ai_monitored/storage/satellite)
"adn" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
@@ -1890,7 +1860,7 @@
/turf/open/floor/circuit/green{
luminosity = 2
},
-/area/ai_monitored/turret_protected/ai)
+/area/space)
"adr" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 4
@@ -1912,7 +1882,6 @@
id = "xeno_blastdoor";
name = "Xenobiology Containment Blast Door"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"adt" = (
@@ -1943,10 +1912,6 @@
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
"adv" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/decal/cleanable/blood/gibs/limb,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt,
@@ -1999,6 +1964,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/engine,
/area/ai_monitored/storage/satellite)
"adA" = (
@@ -2086,10 +2054,10 @@
pixel_y = 26
},
/obj/structure/cable{
- icon_state = "0-4"
+ icon_state = "0-8"
},
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "4-8"
},
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/aisat/foyer)
@@ -2186,6 +2154,9 @@
/obj/structure/cable{
icon_state = "2-8"
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/engine,
/area/ai_monitored/storage/satellite)
"adO" = (
@@ -2212,9 +2183,12 @@
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/aisat/foyer)
"adT" = (
-/obj/structure/sign/warning/securearea,
-/turf/closed/wall/r_wall/rust,
-/area/ai_monitored/turret_protected/aisat_interior)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
"adU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -2236,7 +2210,6 @@
pixel_y = 24;
req_one_access_txt = "2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/security/warden)
"adW" = (
@@ -2348,7 +2321,6 @@
pixel_y = -24;
req_one_access_txt = "2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/security/prison)
"aed" = (
@@ -2395,16 +2367,6 @@
/turf/open/floor/plating,
/area/security/warden)
"aej" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
},
@@ -2441,7 +2403,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/medical/cryo)
"aeo" = (
@@ -2706,7 +2667,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/medical/cryo)
"aeQ" = (
@@ -2819,16 +2779,6 @@
/turf/open/floor/plating,
/area/security/warden)
"aeY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
@@ -3031,16 +2981,6 @@
/turf/closed/wall,
/area/maintenance/port/aft)
"afn" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -3529,13 +3469,16 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"afX" = (
-/obj/structure/grille/broken,
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/area/maintenance/starboard/fore)
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/heads/cmo)
"afY" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot,
@@ -3645,6 +3588,9 @@
name = "xenobiology camera";
network = list("ss13","rd","xeno")
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
"agg" = (
@@ -3669,6 +3615,9 @@
external_pressure_bound = 120;
name = "server vent"
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
"agi" = (
@@ -3685,6 +3634,9 @@
icon_state = "1-2"
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel/showroomfloor,
/area/science/xenobiology)
"agj" = (
@@ -3962,10 +3914,11 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"agF" = (
-/obj/structure/grille,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/medical/medbay/central)
"agG" = (
/obj/docking_port/stationary{
dir = 2;
@@ -4600,7 +4553,6 @@
pixel_x = -26
},
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"ahI" = (
@@ -4681,16 +4633,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -4699,16 +4641,6 @@
"ahQ" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -4822,7 +4754,6 @@
/turf/open/floor/plating,
/area/security/brig)
"ahY" = (
-/obj/effect/turf_decal/tile/neutral,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -4835,37 +4766,21 @@
/turf/open/floor/plasteel,
/area/security/main)
"ahZ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
/turf/open/floor/plasteel,
/area/security/main)
"aia" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
/turf/open/floor/plasteel,
/area/security/main)
"aib" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/security/main)
"aic" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/bot,
/obj/machinery/holopad,
/turf/open/floor/plasteel,
@@ -4958,16 +4873,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/cable{
icon_state = "1-4"
},
@@ -4977,9 +4882,7 @@
/turf/open/floor/plasteel,
/area/security/brig)
"aij" = (
-/obj/structure/flora/grass/jungle,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/machinery/light{
dir = 1
},
@@ -5146,10 +5049,6 @@
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
"aix" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/security/main)
@@ -5178,16 +5077,6 @@
/area/security/main)
"aiz" = (
/obj/machinery/computer/secure_data,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/turf/open/floor/plasteel,
/area/security/main)
"aiA" = (
@@ -5341,16 +5230,6 @@
/obj/structure/chair{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/landmark/start/security_officer,
/turf/open/floor/plasteel,
/area/security/main)
@@ -5418,16 +5297,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/brig)
"aiR" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aiS" = (
@@ -5455,28 +5324,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/brig)
-"aiU" = (
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/dark,
-/area/hallway/primary/fore)
-"aiV" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port/fore)
-"aiW" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port/fore)
"aiX" = (
/obj/structure/cable{
icon_state = "0-2"
@@ -5490,12 +5337,6 @@
/area/ai_monitored/turret_protected/aisat_interior)
"aiY" = (
/obj/structure/chair,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -5560,12 +5401,6 @@
/area/ai_monitored/turret_protected/aisat/foyer)
"ajc" = (
/obj/structure/chair,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -5601,22 +5436,11 @@
/turf/open/floor/plasteel,
/area/security/main)
"ajg" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/decal/cleanable/blood/gibs/limb,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/maintenance/port/fore)
-"ajh" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port/fore)
"aji" = (
/obj/structure/chair{
dir = 8
@@ -5626,13 +5450,13 @@
},
/area/maintenance/port/fore)
"ajj" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/remains/human,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/box,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/area/maintenance/fore)
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"ajk" = (
/obj/effect/turf_decal/tile/brown{
dir = 1
@@ -5709,16 +5533,6 @@
color = "#c45c57";
dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/landmark/start/head_of_security,
/turf/open/floor/plasteel,
/area/security/main)
@@ -5765,17 +5579,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/science/xenobiology)
-"ajs" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port/fore)
"ajt" = (
/turf/closed/wall,
/area/crew_quarters/kitchen)
@@ -5934,16 +5737,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/fore)
"ajJ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
@@ -5961,15 +5754,6 @@
},
/turf/open/floor/plasteel/dark,
/area/bridge)
-"ajL" = (
-/obj/machinery/door/poddoor/preopen{
- id = "Biohazard";
- name = "Emergency Research Blast Door"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
-/turf/open/floor/plasteel/dark,
-/area/science/research)
"ajM" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/shard,
@@ -6080,7 +5864,6 @@
/area/hallway/primary/fore)
"ajX" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"ajY" = (
@@ -6133,10 +5916,10 @@
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
"akd" = (
-/obj/structure/flora/tree/jungle/small,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/flora/ausbushes/ppflowers,
/turf/open/floor/grass,
/area/medical/genetics)
"ake" = (
@@ -6342,7 +6125,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/medical/surgery)
"akz" = (
@@ -6398,7 +6180,6 @@
"akF" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/medical/surgery)
"akG" = (
@@ -6424,12 +6205,6 @@
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"akI" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/decal/cleanable/blood/gibs/old,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt,
@@ -6632,6 +6407,7 @@
/obj/structure/extinguisher_cabinet{
pixel_x = -26
},
+/obj/machinery/shieldwallgen/xenobiologyaccess,
/turf/open/floor/plating{
icon_state = "panelscorched"
},
@@ -6785,7 +6561,6 @@
pixel_x = 28
},
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"all" = (
@@ -6980,9 +6755,6 @@
"alw" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel/dark,
/area/maintenance/port/fore)
"alx" = (
@@ -7050,29 +6822,12 @@
/obj/machinery/status_display/evac{
pixel_y = 32
},
-/obj/item/gun/energy/e_gun/advtaser,
/turf/open/floor/plasteel/dark,
/area/security/brig)
-"alA" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port/fore)
"alB" = (
/turf/closed/wall/r_wall,
/area/science/xenobiology)
"alC" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
@@ -7132,13 +6887,6 @@
/obj/vehicle/ridden/secway,
/turf/open/floor/plasteel/showroomfloor,
/area/security/brig)
-"alH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port/fore)
"alI" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
@@ -7300,8 +7048,22 @@
},
/area/maintenance/fore)
"alV" = (
-/turf/closed/wall/r_wall/rust,
-/area/ai_monitored/turret_protected/aisat_interior)
+/obj/structure/closet/crate/wooden/toy,
+/obj/effect/turf_decal/bot,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/newscaster{
+ pixel_y = 30
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
"alW" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -8509,31 +8271,12 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard)
"anX" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"anY" = (
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -9095,7 +8838,6 @@
/turf/open/floor/wood,
/area/lawoffice)
"aoT" = (
-/obj/effect/turf_decal/tile/neutral,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/turf_decal/box/corners{
dir = 4
@@ -9553,7 +9295,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/item/gun/energy/e_gun/advtaser,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"apI" = (
@@ -9729,28 +9470,22 @@
/turf/closed/wall/rust,
/area/maintenance/central)
"apY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/structure/table/wood,
+/obj/structure/mirror{
+ pixel_x = -26
},
+/obj/item/reagent_containers/food/snacks/pie/cream,
+/obj/item/clothing/under/costume/lobster,
+/obj/item/clothing/head/lobsterhat,
+/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
- dir = 8;
- icon_state = "intact"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
"apZ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -10292,18 +10027,18 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/fore)
"aqQ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+/obj/structure/table/wood,
+/obj/item/storage/crayons,
+/obj/item/storage/crayons,
+/obj/item/bikehorn/rubberducky,
+/obj/structure/sign/poster/contraband/clown{
+ pixel_x = -30
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/bridge)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/theatre)
"aqR" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/delivery,
@@ -10742,7 +10477,6 @@
/obj/structure/sign/warning/electricshock{
pixel_x = -32
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/firedoor,
/turf/open/floor/engine,
/area/science/xenobiology)
@@ -10789,10 +10523,16 @@
/turf/open/floor/plasteel/dark,
/area/bridge)
"arD" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/blood/old,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/structure/sign/departments/science{
+ pixel_x = 32
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/heads/hop)
+/area/hallway/primary/starboard)
"arE" = (
/obj/structure/table,
/obj/item/clipboard,
@@ -11120,28 +10860,17 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
"arW" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
/area/bridge)
"arX" = (
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
+/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel,
-/area/bridge)
+/area/hallway/primary/starboard)
"arY" = (
/obj/effect/turf_decal/bot,
/obj/machinery/holopad,
@@ -11207,16 +10936,6 @@
},
/area/maintenance/port/fore)
"asd" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
},
@@ -11242,7 +10961,7 @@
icon_state = "4-8"
},
/turf/open/floor/engine,
-/area/ai_monitored/turret_protected/aisat/foyer)
+/area/space)
"asg" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-22"
@@ -11420,7 +11139,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/item/gun/energy/e_gun/advtaser,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"asw" = (
@@ -11993,6 +11711,7 @@
dir = 4;
name = "chapel camera"
},
+/obj/structure/chair/stool,
/turf/open/floor/plasteel/chapel{
dir = 8
},
@@ -12091,16 +11810,9 @@
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
"atF" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/plaque{
icon_state = "L14"
},
@@ -12360,18 +12072,7 @@
},
/area/maintenance/starboard/fore)
"aua" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1,
-/obj/effect/turf_decal/box,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aub" = (
@@ -12554,16 +12255,6 @@
/turf/open/floor/plasteel/dark,
/area/teleporter)
"auo" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -12650,9 +12341,20 @@
/turf/closed/wall/r_wall,
/area/bridge)
"auz" = (
-/obj/structure/sign/warning/vacuum/external,
-/turf/closed/wall/rust,
-/area/maintenance/starboard)
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"auA" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -12754,12 +12456,12 @@
},
/area/maintenance/solars/starboard/fore)
"auK" = (
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
- dir = 8
+ dir = 1
},
+/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
-/area/security/courtroom)
+/area/hallway/primary/port)
"auL" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/obj/effect/turf_decal/box/corners{
@@ -12773,16 +12475,6 @@
/turf/open/floor/plasteel/dark,
/area/science/mixing)
"auM" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 8
},
@@ -12926,11 +12618,21 @@
/obj/item/folder/blue,
/obj/item/melee/chainofcommand,
/obj/item/toy/figure/captain,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/item/card/id/captains_spare,
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"ave" = (
/obj/structure/table/wood,
/obj/machinery/computer/security/wooden_tv,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"avf" = (
@@ -12998,7 +12700,6 @@
"avj" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/donut_box,
-/obj/item/card/id/captains_spare,
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"avk" = (
@@ -13039,10 +12740,6 @@
/turf/open/floor/plasteel,
/area/security/courtroom)
"avo" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -13071,9 +12768,6 @@
/turf/closed/wall,
/area/maintenance/aft)
"avr" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/box/corners,
/turf/open/floor/plasteel,
/area/security/courtroom)
@@ -13427,12 +13121,6 @@
/turf/open/floor/plasteel/dark,
/area/medical/virology)
"avQ" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -13442,12 +13130,6 @@
/turf/open/floor/plasteel,
/area/bridge)
"avR" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
@@ -13506,35 +13188,16 @@
/obj/structure/chair{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plasteel,
/area/security/courtroom)
"avX" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
@@ -13693,7 +13356,6 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/obj/item/gun/energy/e_gun/advtaser,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"awl" = (
@@ -13750,10 +13412,6 @@
/obj/structure/extinguisher_cabinet{
pixel_x = -26
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -13780,16 +13438,6 @@
/turf/open/floor/plating,
/area/storage/primary)
"awr" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-8"
},
@@ -13800,10 +13448,6 @@
pixel_x = -32;
pixel_y = 32
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -13931,9 +13575,6 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -14028,9 +13669,6 @@
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -14050,20 +13688,6 @@
pixel_x = 32;
pixel_y = 32
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine{
- initial_gas_mix = "n2=100;TEMP=80";
- name = "mainframe floor"
- },
-/area/tcommsat/server)
-"awM" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -14240,6 +13864,7 @@
/obj/item/lighter,
/obj/item/clothing/mask/cigarette/cigar/cohiba,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/suit_storage_unit/ce,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
"axi" = (
@@ -14705,7 +14330,6 @@
name = "Containment Chamber Blast Door"
},
/obj/machinery/atmospherics/pipe/simple/general/hidden,
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/firedoor,
/turf/open/floor/engine,
/area/science/xenobiology)
@@ -14845,7 +14469,6 @@
/area/medical/morgue)
"ayi" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"ayj" = (
@@ -14857,16 +14480,6 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"ayk" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -14930,7 +14543,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/bridge)
"ayr" = (
@@ -15169,7 +14781,6 @@
/obj/structure/sign/warning/biohazard{
pixel_x = 32
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/firedoor,
/turf/open/floor/engine,
/area/science/xenobiology)
@@ -15230,7 +14841,6 @@
dir = 1;
pixel_y = 32
},
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
"ayP" = (
@@ -15460,7 +15070,6 @@
/obj/structure/sign/departments/evac{
pixel_y = 32
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
"azc" = (
@@ -15652,9 +15261,6 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"azp" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
/obj/effect/turf_decal/tile/neutral,
/obj/machinery/airalarm{
dir = 4;
@@ -15855,11 +15461,10 @@
},
/area/maintenance/starboard)
"azE" = (
-/obj/effect/turf_decal/loading_area,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 6
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/engine,
/area/engine/engineering)
"azF" = (
/obj/structure/flora/junglebush/c,
@@ -16192,9 +15797,6 @@
/turf/open/floor/plating,
/area/medical/chemistry)
"aAd" = (
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
/obj/machinery/atmospherics/components/binary/pump{
dir = 1;
name = "External Gas to Loop"
@@ -16203,7 +15805,7 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/engine,
/area/engine/engineering)
"aAe" = (
/obj/machinery/door/firedoor,
@@ -16224,10 +15826,6 @@
dir = 4;
pixel_x = -22
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -16240,7 +15838,6 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -16262,7 +15859,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -16272,10 +15868,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -16291,10 +15883,6 @@
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -16420,7 +16008,6 @@
/turf/open/floor/grass,
/area/chapel/main)
"aAz" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -16443,9 +16030,11 @@
/turf/open/floor/plasteel/showroomfloor,
/area/science/robotics/lab)
"aAD" = (
-/obj/structure/flora/tree/jungle/small,
-/turf/open/floor/grass,
-/area/chapel/main)
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"aAE" = (
/obj/machinery/light/small{
dir = 8
@@ -16566,16 +16155,6 @@
/turf/open/floor/plasteel/dark,
/area/security/warden)
"aAO" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
@@ -16651,7 +16230,6 @@
/obj/machinery/door/airlock/public/glass{
name = "Docking Hallway"
},
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
"aAV" = (
@@ -17025,7 +16603,6 @@
/area/engine/engineering)
"aBw" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
"aBx" = (
@@ -17035,10 +16612,6 @@
/turf/open/floor/engine,
/area/engine/engineering)
"aBy" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/structure/flora/ausbushes/fernybush,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 5
@@ -17173,20 +16746,9 @@
/obj/structure/sign/departments/security{
pixel_x = -32
},
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"aBN" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
@@ -17200,7 +16762,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"aBP" = (
@@ -17337,10 +16898,6 @@
/obj/item/radio/intercom{
pixel_x = -28
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -17348,7 +16905,6 @@
/area/tcommsat/server)
"aCe" = (
/obj/structure/cable,
-/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -17421,10 +16977,6 @@
name = "telecomms camera";
network = list("ss13","tcomms")
},
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -17503,7 +17055,6 @@
/obj/machinery/door/airlock/public/glass{
name = "Security Hallway"
},
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"aCr" = (
@@ -17576,16 +17127,6 @@
/turf/open/floor/plasteel/dark,
/area/engine/break_room)
"aCy" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
},
@@ -17840,10 +17381,7 @@
/area/medical/cryo)
"aCN" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/flora/ausbushes/ywflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/extinguisher_cabinet{
pixel_x = 24
@@ -18139,7 +17677,6 @@
"aDh" = (
/obj/structure/flora/grass/jungle/b,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/grass,
/area/chapel/main)
@@ -18204,7 +17741,6 @@
/turf/open/floor/plating,
/area/engine/atmos)
"aDs" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/engine,
/area/security/nuke_storage)
@@ -18318,6 +17854,7 @@
/obj/machinery/atmospherics/miner/nitrogen{
max_ext_kpa = 2500
},
+/obj/machinery/portable_atmospherics/canister/nitrogen,
/turf/open/floor/engine/n2{
initial_gas_mix = "n2=1000;TEMP=293.15"
},
@@ -18334,6 +17871,7 @@
/obj/machinery/atmospherics/miner/oxygen{
max_ext_kpa = 2500
},
+/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/open/floor/engine/o2{
initial_gas_mix = "o2=1000;TEMP=293.15"
},
@@ -18812,18 +18350,13 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/turf/open/floor/plasteel/dark/corner{
+ dir = 8
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/main)
+/area/hallway/primary/port)
"aEv" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -18964,7 +18497,6 @@
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"aEG" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
},
@@ -18994,7 +18526,6 @@
/turf/open/floor/engine,
/area/security/nuke_storage)
"aEI" = (
-/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -19356,6 +18887,7 @@
/obj/machinery/atmospherics/miner/carbon_dioxide{
max_ext_kpa = 2500
},
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/turf/open/floor/engine/co2{
initial_gas_mix = "co2=1000;TEMP=293.15"
},
@@ -19364,6 +18896,7 @@
/obj/machinery/atmospherics/miner/toxins{
max_ext_kpa = 2500
},
+/obj/machinery/portable_atmospherics/canister/toxins,
/turf/open/floor/engine/plasma{
initial_gas_mix = "plasma=1000;TEMP=293.15"
},
@@ -19372,6 +18905,7 @@
/obj/machinery/atmospherics/miner/n2o{
max_ext_kpa = 2500
},
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/turf/open/floor/engine/n2o{
initial_gas_mix = "n2o=1000;TEMP=293.15"
},
@@ -19695,15 +19229,19 @@
},
/area/maintenance/port/fore)
"aFY" = (
+/obj/machinery/air_sensor{
+ pixel_x = -32;
+ pixel_y = -32
+ },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
/obj/machinery/igniter{
id = "Incinerator"
},
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
/turf/open/floor/engine/vacuum,
/area/maintenance/disposal/incinerator)
"aFZ" = (
@@ -19732,16 +19270,17 @@
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/heads/hor)
"aGb" = (
-/obj/machinery/power/turbine{
- luminosity = 2
- },
-/obj/structure/cable,
-/turf/open/floor/engine/vacuum,
-/area/maintenance/disposal/incinerator)
-"aGc" = (
/obj/machinery/door/poddoor/incinerator_atmos_main,
/turf/open/floor/engine/vacuum,
/area/maintenance/disposal/incinerator)
+"aGc" = (
+/obj/machinery/door/window{
+ dir = 1;
+ name = "Captain's Desk";
+ req_access_txt = "20"
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
"aGd" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
@@ -20109,7 +19648,6 @@
/area/medical/genetics/cloning)
"aGG" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/bridge)
"aGH" = (
@@ -20432,7 +19970,6 @@
/area/security/brig)
"aHq" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"aHr" = (
@@ -20879,7 +20416,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/bridge)
"aHV" = (
@@ -21139,9 +20675,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-16"
- },
/obj/effect/turf_decal/box/corners{
dir = 1
},
@@ -21278,9 +20811,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-10"
- },
/obj/machinery/button/door{
id = "transittube_ai";
name = "Transit Tube Lockdown Toggle";
@@ -21538,16 +21068,6 @@
/turf/open/floor/plating,
/area/maintenance/aft)
"aIY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/light{
dir = 8
@@ -21741,7 +21261,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"aJs" = (
@@ -21768,7 +21287,6 @@
/area/engine/atmos)
"aJu" = (
/obj/machinery/computer/med_data,
-/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -21781,20 +21299,11 @@
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
"aJv" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/medical/medbay/central)
+/obj/structure/bed,
+/obj/item/bedsheet/black,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/locker)
"aJw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
@@ -22149,9 +21658,6 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "applebush"
- },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
@@ -22678,16 +22184,6 @@
},
/area/maintenance/port)
"aKN" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 4
@@ -22977,9 +22473,6 @@
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/loading_area{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/medical/medbay/central)
"aLk" = (
@@ -23001,13 +22494,6 @@
/obj/structure/chair{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
"aLn" = (
@@ -23029,16 +22515,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aLo" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 9
},
@@ -23409,11 +22885,10 @@
/turf/open/floor/plasteel/showroomfloor,
/area/science/mixing)
"aMa" = (
-/obj/effect/turf_decal/loading_area,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 4
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/engine,
/area/engine/engineering)
"aMb" = (
/obj/effect/turf_decal/tile/neutral,
@@ -23635,7 +23110,6 @@
dir = 4
},
/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple,
/obj/machinery/power/apc{
areastring = "/area/science/mixing/chamber";
dir = 4;
@@ -23834,9 +23308,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/loading_area{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/medical/medbay/central)
"aME" = (
@@ -24193,21 +23664,10 @@
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"aNi" = (
-/obj/machinery/power/compressor{
- comp_id = "incineratorturbine";
- dir = 1;
+/obj/machinery/power/turbine{
luminosity = 2
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/structure/cable,
-/obj/machinery/camera{
- c_tag = "Turbine Chamber";
- dir = 4;
- name = "turbine camera";
- network = list("turbine")
- },
/turf/open/floor/engine/vacuum,
/area/maintenance/disposal/incinerator)
"aNj" = (
@@ -24308,7 +23768,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"aNr" = (
@@ -24708,12 +24167,7 @@
},
/turf/open/floor/plasteel/dark,
/area/medical/chemistry)
-"aOa" = (
-/obj/structure/flora/junglebush/b,
-/turf/open/floor/grass,
-/area/medical/genetics)
"aOb" = (
-/obj/structure/flora/junglebush/large,
/turf/open/floor/grass,
/area/medical/genetics)
"aOc" = (
@@ -24770,10 +24224,6 @@
/area/maintenance/port/fore)
"aOh" = (
/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 8
},
@@ -24835,10 +24285,6 @@
/area/medical/genetics)
"aOn" = (
/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
/obj/machinery/atmospherics/components/binary/valve{
dir = 8
},
@@ -24846,14 +24292,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/science/mixing/chamber)
"aOo" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 4
},
@@ -25279,22 +24717,6 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/cmo)
-"aOS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
"aOT" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -25313,16 +24735,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aOU" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1,
/obj/effect/turf_decal/box,
/obj/structure/disposalpipe/sorting/mail{
@@ -25366,16 +24778,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/heads/cmo)
"aOY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/sorting/mail{
dir = 4;
name = "bar sorting disposal pipe";
@@ -25503,19 +24905,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/science/research)
"aPk" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -25542,7 +24931,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 9
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/science/mixing/chamber)
"aPn" = (
@@ -25652,16 +25040,6 @@
/turf/open/floor/plasteel/dark,
/area/medical/genetics)
"aPv" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -25691,18 +25069,10 @@
/turf/open/floor/plating,
/area/medical/storage)
"aPz" = (
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/effect/turf_decal/box,
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -25805,16 +25175,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/science/mixing)
"aPH" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/bot,
/obj/machinery/holopad,
/obj/structure/disposalpipe/segment{
@@ -26011,13 +25371,9 @@
/area/medical/storage)
"aPV" = (
/obj/structure/table/glass,
-/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
/obj/effect/turf_decal/tile/blue,
/obj/item/paper_bin{
pixel_x = -4;
@@ -26228,23 +25584,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/medical/medbay/central)
-"aQm" = (
-/obj/structure/closet/crate/wooden/toy,
-/obj/effect/turf_decal/bot,
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -23
- },
-/obj/machinery/newscaster{
- pixel_y = 30
- },
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/theatre)
"aQn" = (
/obj/structure/closet/secure_closet/medical3,
/obj/item/storage/belt/medical,
@@ -26381,10 +25720,6 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar/atrium)
"aQy" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
/turf/open/floor/plasteel/showroomfloor,
/area/medical/medbay/central)
"aQz" = (
@@ -26642,9 +25977,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/disposalpipe/segment{
@@ -26655,16 +25987,14 @@
},
/area/maintenance/central)
"aRc" = (
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/machinery/door/airlock/maintenance{
+ name = "backstage maintenance";
+ req_access_txt = "46"
},
-/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
+/turf/open/floor/plasteel/dark,
/area/maintenance/central)
"aRd" = (
/obj/machinery/computer/med_data{
@@ -26713,16 +26043,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/medical/storage)
"aRh" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 5
},
@@ -26739,6 +26059,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -27112,16 +26435,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/checkpoint/science/research)
"aRB" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -27164,16 +26477,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/medical/storage)
"aRE" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-8"
},
@@ -27433,7 +26736,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"aRZ" = (
@@ -27642,7 +26944,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/medical/medbay/central)
"aSm" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
},
@@ -27654,23 +26955,6 @@
},
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai_upload)
-"aSn" = (
-/obj/structure/table/wood,
-/obj/structure/mirror{
- pixel_x = -26
- },
-/obj/item/reagent_containers/food/snacks/pie/cream,
-/obj/item/clothing/under/costume/lobster,
-/obj/item/clothing/head/lobsterhat,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/theatre)
"aSo" = (
/obj/machinery/navbeacon{
codes_txt = "delivery;dir=4";
@@ -27824,25 +27108,21 @@
/turf/open/floor/plasteel/dark,
/area/medical/chemistry)
"aSx" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/structure/chair,
+/obj/machinery/light{
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/item/clipboard,
-/obj/item/storage/firstaid/regular,
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
"aSy" = (
/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/item/stack/medical/gauze,
/obj/item/stack/medical/ointment,
/obj/item/stack/medical/bruise_pack{
pixel_x = 4
},
+/obj/item/storage/firstaid/regular,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
"aSz" = (
@@ -27923,10 +27203,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/science/lab)
"aSE" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel/showroomfloor,
/area/medical/medbay/central)
@@ -28111,16 +27387,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/science/mixing)
"aST" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
@@ -28159,11 +27425,12 @@
},
/area/maintenance/starboard)
"aSW" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral,
-/obj/item/crowbar/red,
-/obj/item/healthanalyzer,
-/turf/open/floor/plasteel/dark,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "cmoprivacy";
+ name = "Office Privacy Shutters"
+ },
+/turf/open/floor/plating,
/area/medical/medbay/central)
"aSX" = (
/obj/machinery/status_display/evac,
@@ -28280,7 +27547,6 @@
/turf/open/floor/grass,
/area/medical/virology)
"aTi" = (
-/obj/structure/flora/junglebush/large,
/obj/structure/flora/ausbushes/ywflowers,
/turf/open/floor/grass,
/area/medical/virology)
@@ -28738,9 +28004,6 @@
/obj/effect/turf_decal/tile/purple{
dir = 4
},
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
/obj/effect/turf_decal/tile/purple,
/obj/structure/disposalpipe/segment{
dir = 4
@@ -28917,7 +28180,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/fore)
"aUc" = (
-/obj/effect/turf_decal/loading_area,
/obj/effect/turf_decal/tile/purple{
dir = 1
},
@@ -29343,9 +28605,6 @@
dir = 1
},
/obj/effect/turf_decal/tile/blue,
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-18"
- },
/turf/open/floor/plasteel/showroomfloor,
/area/medical/storage)
"aUG" = (
@@ -29724,7 +28983,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
"aVc" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -29764,9 +29022,6 @@
/obj/effect/turf_decal/tile/purple{
dir = 1
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-18"
- },
/obj/machinery/light_switch{
pixel_x = -24;
pixel_y = -6
@@ -29885,16 +29140,12 @@
dir = 1
},
/obj/effect/turf_decal/tile/purple,
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 1
},
/turf/open/floor/plasteel/showroomfloor,
/area/science/storage)
"aVm" = (
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
dir = 8
@@ -29969,9 +29220,7 @@
/area/crew_quarters/kitchen)
"aVr" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -30155,7 +29404,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/effect/decal/cleanable/blood/old,
/obj/structure/cable{
icon_state = "1-8"
},
@@ -30167,7 +29415,6 @@
pixel_x = -6;
pixel_y = 8
},
-/obj/item/restraints/handcuffs,
/obj/item/pen,
/turf/open/floor/plasteel/dark,
/area/medical/virology)
@@ -30239,7 +29486,7 @@
/obj/structure/disposalpipe/segment{
dir = 10
},
-/turf/closed/wall/rust,
+/turf/closed/wall,
/area/janitor)
"aVN" = (
/obj/structure/chair{
@@ -30662,10 +29909,7 @@
/area/security/checkpoint/medical)
"aWs" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 8
},
@@ -30679,10 +29923,6 @@
/turf/open/floor/grass,
/area/hallway/secondary/exit/departure_lounge)
"aWt" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
@@ -30906,22 +30146,18 @@
"aWQ" = (
/obj/machinery/door/firedoor,
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/quartermaster/storage)
"aWR" = (
/turf/closed/wall,
/area/science/xenobiology)
"aWS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/machinery/newscaster{
+ pixel_x = 30
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/bar)
+/turf/open/floor/wood,
+/area/crew_quarters/locker)
"aWT" = (
/obj/structure/closet/secure_closet/chemical,
/obj/structure/window/reinforced{
@@ -31074,6 +30310,7 @@
/obj/item/radio/intercom{
pixel_y = 22
},
+/obj/item/mmi/posibrain,
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
"aXh" = (
@@ -31083,7 +30320,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/quartermaster/storage)
"aXi" = (
@@ -31135,6 +30371,8 @@
pixel_y = 4
},
/obj/item/stock_parts/cell/high,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
/turf/open/floor/plasteel/dark,
/area/science/lab)
"aXo" = (
@@ -31239,20 +30477,14 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/central)
"aXw" = (
-/obj/structure/table,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/item/folder,
-/obj/item/nanite_scanner{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/nanite_remote,
/obj/machinery/light{
dir = 4
},
+/obj/machinery/computer/nanite_cloud_controller,
/turf/open/floor/plasteel/dark,
/area/science/research)
"aXx" = (
@@ -31316,7 +30548,6 @@
/turf/open/floor/mech_bay_recharge_floor,
/area/science/robotics/mechbay)
"aXD" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
@@ -31338,17 +30569,18 @@
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai_upload)
"aXE" = (
-/obj/machinery/nanite_chamber,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Cabin_4Privacy";
+ name = "Cabin 4 Privacy Shutter"
},
-/turf/open/floor/plasteel/dark,
-/area/science/research)
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/locker)
"aXF" = (
/obj/effect/turf_decal/bot,
-/obj/machinery/computer/nanite_chamber_control,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
@@ -31364,6 +30596,7 @@
name = "science camera";
network = list("ss13","rd")
},
+/obj/machinery/computer/nanite_chamber_control,
/turf/open/floor/plasteel/dark,
/area/science/research)
"aXG" = (
@@ -31441,11 +30674,6 @@
/area/tcommsat/server)
"aXN" = (
/obj/machinery/igniter/incinerator_toxmix,
-/mob/living/simple_animal/chicken{
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0);
- desc = "A timeless classic.";
- name = "Kentucky"
- },
/turf/open/floor/engine/vacuum,
/area/science/mixing/chamber)
"aXO" = (
@@ -31544,13 +30772,9 @@
/area/maintenance/starboard/fore)
"aXX" = (
/obj/structure/chair/office/light{
- dir = 1;
- pixel_y = 3
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/box/red,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -31899,7 +31123,6 @@
id = "emmd";
name = "Emergency Medical Lockdown Shutters"
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
@@ -32026,20 +31249,9 @@
/turf/open/floor/plasteel/showroomfloor,
/area/medical/chemistry)
"aYM" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"aYN" = (
-/obj/machinery/nanite_program_hub,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -32051,6 +31263,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
+/obj/structure/table/reinforced,
+/obj/item/nanite_scanner,
+/obj/item/nanite_remote,
/turf/open/floor/plasteel/dark,
/area/science/research)
"aYO" = (
@@ -32077,14 +31292,16 @@
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/bar)
"aYR" = (
-/obj/machinery/computer/nanite_cloud_controller,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Cabin_3Privacy";
+ name = "Cabin 3 Privacy Shutter"
},
-/turf/open/floor/plasteel/dark,
-/area/science/research)
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/locker)
"aYS" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -32099,7 +31316,6 @@
/turf/open/floor/plasteel/dark,
/area/science/research)
"aYT" = (
-/obj/machinery/nanite_programmer,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -32111,6 +31327,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
+/obj/machinery/modular_computer/console/preset/civilian{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/science/research)
"aYV" = (
@@ -32150,10 +31369,20 @@
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai_upload)
"aYZ" = (
-/obj/effect/turf_decal/box,
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/engine,
-/area/ai_monitored/turret_protected/ai_upload)
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/airless{
+ initial_gas_mix = "o2=14;n2=23;TEMP=300"
+ },
+/area/maintenance/port/aft)
"aZa" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/neutral,
@@ -32217,24 +31446,31 @@
/turf/open/floor/plasteel/dark,
/area/science/lab)
"aZf" = (
-/obj/machinery/door/airlock/maintenance{
- name = "backstage maintenance";
- req_access_txt = "46"
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/maintenance/central)
+/turf/open/floor/plasteel/showroomfloor,
+/area/crew_quarters/theatre)
"aZg" = (
-/obj/structure/filingcabinet/chestdrawer,
-/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/science/lab)
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"aZh" = (
/obj/machinery/porta_turret/ai,
/obj/machinery/light/small{
@@ -32251,25 +31487,10 @@
/turf/closed/wall,
/area/science/lab)
"aZj" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/item/clipboard,
-/obj/item/reagent_containers/glass/beaker/large{
- pixel_x = -6
- },
-/obj/item/reagent_containers/glass/beaker{
- pixel_x = 6
- },
-/obj/item/clothing/glasses/science,
-/obj/item/clothing/glasses/science,
-/obj/structure/extinguisher_cabinet{
- pixel_y = -30
- },
-/turf/open/floor/plasteel/dark,
-/area/science/lab)
+/obj/effect/turf_decal/bot,
+/obj/machinery/holopad,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/exit/departure_lounge)
"aZk" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/neutral{
@@ -32281,9 +31502,6 @@
/obj/item/stack/sheet/metal/fifty,
/obj/item/stack/sheet/glass/fifty,
/obj/item/clothing/glasses/welding,
-/obj/item/radio/intercom{
- pixel_x = 28
- },
/turf/open/floor/plasteel/dark,
/area/science/lab)
"aZl" = (
@@ -32662,7 +31880,6 @@
dir = 8
},
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"aZP" = (
@@ -33014,7 +32231,6 @@
/obj/structure/sign/warning/vacuum{
pixel_x = 32
},
-/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/engine/vacuum,
/area/science/mixing/chamber)
"bar" = (
@@ -33130,9 +32346,6 @@
/turf/open/floor/plasteel/dark,
/area/medical/surgery)
"baz" = (
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
/obj/effect/turf_decal/tile/purple,
/obj/effect/turf_decal/tile/purple{
dir = 8
@@ -33359,16 +32572,6 @@
/turf/open/floor/circuit/green/telecomms/mainframe,
/area/science/server)
"baQ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -33735,7 +32938,6 @@
/area/science/mixing)
"bbt" = (
/obj/machinery/air_sensor/atmos/toxins_mixing_tank,
-/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/engine/vacuum,
/area/science/mixing/chamber)
"bbv" = (
@@ -33775,16 +32977,6 @@
/turf/closed/wall/r_wall,
/area/science/mixing/chamber)
"bbz" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
@@ -33865,8 +33057,6 @@
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai_upload)
"bbH" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -33932,16 +33122,9 @@
dir = 4
},
/obj/item/clipboard,
-/obj/item/nanite_remote{
- pixel_x = -4;
- pixel_y = 4
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/item/nanite_scanner{
- pixel_x = 4
- },
/obj/machinery/light{
dir = 1
},
@@ -34085,7 +33268,6 @@
/turf/closed/wall/r_wall,
/area/science/mixing/chamber)
"bbY" = (
-/obj/effect/decal/cleanable/blood/old,
/obj/structure/cable{
icon_state = "1-4"
},
@@ -34445,8 +33627,12 @@
},
/area/maintenance/port)
"bcD" = (
-/turf/closed/wall/r_wall/rust,
-/area/science/mixing)
+/obj/effect/turf_decal/box,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"bcE" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
@@ -34780,7 +33966,7 @@
/obj/machinery/light{
dir = 1
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/hydroponics)
"bcY" = (
/obj/structure/grille/broken,
@@ -34818,7 +34004,6 @@
/area/crew_quarters/kitchen)
"bda" = (
/obj/machinery/door/firedoor/heavy,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/science/mixing/chamber)
"bdb" = (
@@ -34868,7 +34053,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"bdg" = (
@@ -35373,12 +34557,6 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"bdO" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -35495,7 +34673,6 @@
pixel_x = 32;
pixel_y = -8
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"bdV" = (
@@ -35868,7 +35045,6 @@
pixel_x = -32;
pixel_y = -8
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/fore)
"bev" = (
@@ -35947,7 +35123,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
"beC" = (
@@ -35966,6 +35141,7 @@
dir = 4
},
/obj/effect/landmark/event_spawn,
+/obj/machinery/nanite_program_hub,
/turf/open/floor/plasteel/dark,
/area/science/research)
"beE" = (
@@ -35990,7 +35166,6 @@
"beF" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
"beG" = (
@@ -36411,6 +35586,7 @@
/obj/machinery/light{
dir = 1
},
+/obj/machinery/shieldwallgen/xenobiologyaccess,
/turf/open/floor/plating{
icon_state = "panelscorched"
},
@@ -36760,7 +35936,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/port)
"bfT" = (
@@ -36815,7 +35990,6 @@
"bfX" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/port)
"bfY" = (
@@ -36838,6 +36012,9 @@
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{
name = "euthanization chamber freezer"
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"bga" = (
@@ -36939,7 +36116,6 @@
pixel_x = 32;
pixel_y = -8
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/port)
"bgi" = (
@@ -37318,16 +36494,6 @@
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
"bgK" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -37406,10 +36572,6 @@
/turf/open/floor/grass,
/area/medical/virology)
"bgP" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -37425,7 +36587,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plasteel/dark/corner,
+/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bgQ" = (
/obj/structure/cable{
@@ -38103,16 +37265,6 @@
/turf/open/floor/plating,
/area/quartermaster/office)
"bhY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bhZ" = (
@@ -38166,16 +37318,6 @@
},
/area/maintenance/port)
"bie" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -38471,16 +37613,6 @@
/turf/open/floor/plasteel/dark,
/area/security/checkpoint/science/research)
"biC" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/junction,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
@@ -38795,16 +37927,6 @@
/turf/open/floor/plasteel,
/area/security/checkpoint/supply)
"biX" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/bot,
/obj/machinery/holopad,
/turf/open/floor/plasteel,
@@ -38863,7 +37985,6 @@
dir = 1
},
/obj/effect/turf_decal/loading_area,
-/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/quartermaster/storage)
@@ -38879,7 +38000,6 @@
},
/obj/effect/turf_decal/loading_area,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"bjd" = (
@@ -39043,16 +38163,6 @@
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
"bjp" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
@@ -39097,16 +38207,6 @@
/turf/open/floor/plasteel/dark,
/area/medical/surgery)
"bjt" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
@@ -39126,7 +38226,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/item/tank/internals/oxygen/yellow,
/turf/open/floor/plasteel/dark,
/area/quartermaster/miningoffice)
"bjv" = (
@@ -39137,7 +38236,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/item/tank/internals/oxygen/yellow,
/obj/machinery/firealarm{
dir = 4;
pixel_x = -24
@@ -39189,7 +38287,6 @@
dir = 1;
pixel_y = 3
},
-/obj/effect/decal/cleanable/blood/old,
/obj/structure/cable{
icon_state = "1-4"
},
@@ -39210,7 +38307,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 5
},
-/obj/effect/decal/cleanable/blood/old,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -39382,16 +38478,6 @@
/turf/open/floor/plating,
/area/maintenance/central)
"bjN" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -39437,22 +38523,12 @@
/obj/effect/turf_decal/tile/brown{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"bjS" = (
@@ -39692,16 +38768,6 @@
/turf/open/floor/plasteel/dark,
/area/quartermaster/office)
"bks" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"bkt" = (
@@ -39800,16 +38866,6 @@
/area/quartermaster/sorting)
"bkA" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -39834,7 +38890,6 @@
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/arrows,
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
@@ -39943,7 +38998,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/item/tank/internals/oxygen/yellow,
/obj/machinery/light,
/obj/machinery/requests_console{
department = "Mining";
@@ -40138,16 +39192,6 @@
/turf/open/floor/plating,
/area/maintenance/port)
"blb" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -40221,16 +39265,6 @@
/turf/open/floor/plasteel/dark,
/area/quartermaster/miningoffice)
"bli" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -40240,16 +39274,6 @@
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"blj" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/landmark/event_spawn,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
@@ -40344,16 +39368,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/medical/virology)
"blq" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
@@ -40361,16 +39375,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"blr" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
@@ -40448,16 +39452,6 @@
/area/quartermaster/storage)
"blz" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 8
},
@@ -40487,36 +39481,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/showroomfloor,
/area/library)
-"blC" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/quartermaster/storage)
"blD" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -40595,16 +39560,6 @@
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"blK" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
@@ -40613,16 +39568,6 @@
/area/quartermaster/storage)
"blL" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -40853,7 +39798,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/hydroponics)
"bmf" = (
/obj/effect/turf_decal/tile/brown{
@@ -41227,7 +40172,6 @@
},
/obj/effect/turf_decal/arrows,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/firealarm{
dir = 4;
pixel_x = -24
@@ -41244,7 +40188,7 @@
dir = 8
},
/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/hydroponics)
"bmF" = (
/obj/machinery/status_display/evac,
@@ -41259,7 +40203,7 @@
/obj/machinery/plantgenes{
pixel_y = 5
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/hydroponics)
"bmH" = (
/obj/effect/turf_decal/tile/red{
@@ -41287,16 +40231,6 @@
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"bmJ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
@@ -41416,7 +40350,7 @@
/area/crew_quarters/kitchen)
"bmU" = (
/obj/structure/lattice,
-/turf/closed/wall/r_wall/rust,
+/turf/closed/wall/r_wall,
/area/security/prison)
"bmV" = (
/obj/effect/turf_decal/tile/neutral,
@@ -41521,7 +40455,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 6
},
-/obj/effect/decal/cleanable/blood/old,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -41680,10 +40613,6 @@
/area/crew_quarters/locker)
"bnq" = (
/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
-/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -41779,17 +40708,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/library)
-"bny" = (
-/obj/machinery/hydroponics/constructable,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"bnz" = (
/obj/effect/turf_decal/tile/green{
dir = 8
@@ -41845,31 +40763,7 @@
},
/turf/open/floor/plasteel/dark,
/area/hydroponics)
-"bnD" = (
-/obj/machinery/hydroponics/constructable,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/structure/extinguisher_cabinet{
- pixel_x = -26
- },
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"bnE" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/sorting/mail{
name = "kitchen sorting disposal pipe";
sortType = 20
@@ -41911,9 +40805,7 @@
/area/bridge)
"bnH" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -41986,20 +40878,6 @@
/obj/item/toy/figure/chef,
/turf/open/floor/plating,
/area/crew_quarters/kitchen)
-"bnM" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/structure/sign/departments/science{
- pixel_x = 32
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bnN" = (
/obj/effect/turf_decal/tile/green{
dir = 1
@@ -42048,11 +40926,7 @@
/turf/open/floor/plasteel/dark,
/area/bridge)
"bnR" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -42061,17 +40935,6 @@
},
/turf/open/floor/grass,
/area/hydroponics)
-"bnS" = (
-/obj/machinery/hydroponics/constructable,
-/obj/effect/turf_decal/bot,
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/sign/poster/official/fruit_bowl{
- pixel_x = -32
- },
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"bnT" = (
/obj/structure/flora/grass/jungle/b,
/obj/structure/flora/ausbushes/ppflowers,
@@ -42165,10 +41028,7 @@
/area/security/courtroom)
"boa" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 8
},
@@ -42178,25 +41038,13 @@
/turf/open/floor/grass,
/area/hydroponics)
"bob" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced,
/turf/open/floor/grass,
/area/hydroponics)
-"boc" = (
-/obj/machinery/hydroponics/constructable,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel/dark,
-/area/hydroponics)
"bod" = (
/obj/effect/turf_decal/tile/brown{
dir = 4
@@ -42280,10 +41128,7 @@
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"boh" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/window/reinforced{
dir = 8
},
@@ -42954,12 +41799,9 @@
/area/crew_quarters/kitchen)
"bpi" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/junglebush/b,
/obj/item/radio/intercom{
pixel_y = -28
},
-/obj/effect/decal/remains/human,
-/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/grass,
/area/hydroponics)
"bpj" = (
@@ -43172,10 +42014,6 @@
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -43194,10 +42032,6 @@
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -43236,10 +42070,6 @@
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -43247,9 +42077,6 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"bpE" = (
@@ -43285,7 +42112,7 @@
/area/quartermaster/storage)
"bpF" = (
/obj/structure/sign/departments/cargo,
-/turf/closed/wall/rust,
+/turf/closed/wall,
/area/hallway/primary/starboard)
"bpG" = (
/obj/effect/turf_decal/tile/neutral,
@@ -43379,16 +42206,6 @@
/turf/open/floor/plasteel/dark,
/area/hallway/primary/port)
"bpN" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 8
},
@@ -43467,24 +42284,6 @@
/obj/structure/sign/departments/botany,
/turf/closed/wall,
/area/hallway/primary/starboard)
-"bpW" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bpX" = (
/obj/machinery/door/poddoor/preopen{
id = "brigfrontdoor";
@@ -43493,7 +42292,6 @@
/obj/structure/extinguisher_cabinet{
pixel_y = 28
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/security/brig)
@@ -43541,7 +42339,7 @@
/area/bridge)
"bqb" = (
/obj/structure/sign/departments/custodian,
-/turf/closed/wall/rust,
+/turf/closed/wall,
/area/maintenance/central)
"bqc" = (
/obj/effect/turf_decal/bot,
@@ -43564,10 +42362,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/kitchen)
"bqe" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -43590,9 +42384,6 @@
/turf/open/floor/plasteel/dark,
/area/teleporter)
"bqg" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/structure/cable{
icon_state = "1-8"
},
@@ -43614,7 +42405,7 @@
/obj/item/radio/intercom{
pixel_y = 22
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/hydroponics)
"bqj" = (
/obj/effect/turf_decal/tile/red,
@@ -43665,8 +42456,13 @@
/area/crew_quarters/kitchen)
"bqm" = (
/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
-/area/bridge)
+/area/security/warden)
"bqn" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -43689,16 +42485,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"bqp" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 9
},
@@ -43720,17 +42506,15 @@
},
/area/maintenance/central)
"bqs" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/bridge)
+/area/security/main)
"bqt" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
@@ -43821,8 +42605,6 @@
"bqA" = (
/obj/structure/table,
/obj/item/folder/white,
-/obj/item/restraints/handcuffs,
-/obj/item/wirerod,
/obj/item/pen,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -43994,16 +42776,6 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"bqN" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 4
},
@@ -44104,16 +42876,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bqT" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -44124,18 +42886,17 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bqU" = (
-/obj/structure/table/wood,
-/obj/item/clothing/gloves/color/rainbow/clown,
-/obj/item/storage/crayons,
-/obj/item/storage/crayons,
-/obj/item/bikehorn/rubberducky,
-/obj/structure/sign/poster/contraband/clown{
- pixel_x = -30
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/theatre)
"bqV" = (
/obj/effect/turf_decal/bot,
@@ -44313,16 +43074,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard)
"bri" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 10
},
@@ -44374,7 +43125,9 @@
dir = 1
},
/obj/machinery/portable_atmospherics/canister,
-/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"bro" = (
@@ -44383,7 +43136,9 @@
},
/obj/machinery/portable_atmospherics/canister,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"brp" = (
@@ -44500,7 +43255,6 @@
dir = 4;
pixel_x = -26
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
"brA" = (
@@ -44678,22 +43432,7 @@
/area/crew_quarters/bar/atrium)
"brN" = (
/obj/machinery/hydroponics/constructable,
-/obj/effect/turf_decal/bot,
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/firealarm{
- dir = 8;
- pixel_x = 28
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/hydroponics)
"brO" = (
/obj/machinery/hydroponics/constructable,
@@ -44702,7 +43441,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/hydroponics)
"brP" = (
/obj/structure/table,
@@ -44966,19 +43705,10 @@
},
/area/maintenance/central/secondary)
"bsm" = (
-/turf/closed/wall/rust,
-/area/chapel/office)
+/obj/machinery/status_display/evac,
+/turf/open/floor/plasteel,
+/area/engine/supermatter)
"bsn" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -45036,9 +43766,6 @@
/turf/open/floor/carpet,
/area/lawoffice)
"bss" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
@@ -45062,16 +43789,6 @@
},
/area/hallway/primary/port)
"bst" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -45096,16 +43813,6 @@
/turf/open/floor/plasteel/dark/corner,
/area/hallway/primary/port)
"bsv" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/sorting/mail/flip{
dir = 2;
name = "cargo sorting disposal pipe";
@@ -45199,12 +43906,6 @@
/turf/open/floor/plasteel,
/area/security/courtroom)
"bsC" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -45220,13 +43921,6 @@
"bsE" = (
/turf/open/floor/plasteel,
/area/bridge)
-"bsF" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/bridge)
"bsG" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -45347,10 +44041,7 @@
/area/library)
"bsN" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 8
},
@@ -45361,10 +44052,7 @@
/turf/open/floor/grass,
/area/crew_quarters/heads/hop)
"bsO" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 1
@@ -45372,11 +44060,7 @@
/turf/open/floor/grass,
/area/crew_quarters/heads/hop)
"bsP" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -45548,12 +44232,6 @@
name = "off ramp";
pixel_y = 5
},
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"btc" = (
@@ -45768,7 +44446,6 @@
"btt" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
"btu" = (
@@ -45909,8 +44586,6 @@
"btH" = (
/obj/structure/flora/grass/jungle/b,
/obj/structure/flora/ausbushes/fullgrass,
-/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 1
@@ -45926,10 +44601,7 @@
/area/crew_quarters/bar)
"btI" = (
/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 1
@@ -46051,17 +44723,7 @@
/obj/structure/bookcase/random/reference,
/turf/open/floor/wood,
/area/crew_quarters/bar)
-"btU" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"btV" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -46125,11 +44787,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-17";
- pixel_x = 8;
- pixel_y = 3
- },
/obj/machinery/light_switch{
pixel_x = 24;
pixel_y = 40
@@ -46143,17 +44800,6 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
-"bub" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-02";
- pixel_y = 3
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/bar)
"buc" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -46268,12 +44914,6 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
"buk" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -46344,10 +44984,6 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
"bur" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
@@ -47082,7 +45718,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/starboard)
"bvC" = (
@@ -47197,7 +45832,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
"bvL" = (
@@ -47268,16 +45902,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/toilet/restrooms)
"bvQ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -47326,10 +45950,6 @@
/turf/open/floor/plasteel/dark,
/area/library)
"bvV" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-16"
},
@@ -47398,7 +46018,6 @@
/area/crew_quarters/heads/captain)
"bwc" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
"bwd" = (
@@ -47423,9 +46042,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-16"
- },
/obj/structure/extinguisher_cabinet{
pixel_x = 24
},
@@ -47701,16 +46317,6 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
"bwF" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
@@ -47892,10 +46498,6 @@
/obj/structure/flora/ausbushes/ywflowers,
/turf/open/floor/grass,
/area/chapel/main)
-"bwU" = (
-/obj/structure/flora/grass/jungle,
-/turf/open/floor/grass,
-/area/chapel/main)
"bwV" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
@@ -47930,11 +46532,13 @@
/turf/open/floor/plasteel/dark,
/area/security/checkpoint/supply)
"bwY" = (
+/obj/structure/chair/stool,
/turf/open/floor/plasteel/chapel{
dir = 8
},
/area/chapel/main)
"bwZ" = (
+/obj/structure/chair/stool,
/turf/open/floor/plasteel/chapel,
/area/chapel/main)
"bxa" = (
@@ -48029,10 +46633,7 @@
/area/chapel/main)
"bxh" = (
/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -48154,10 +46755,7 @@
/area/quartermaster/storage)
"bxt" = (
/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -48492,10 +47090,6 @@
/turf/open/floor/plasteel/dark,
/area/medical/virology)
"bxW" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-4"
},
@@ -48563,9 +47157,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-22"
- },
/obj/machinery/light,
/obj/machinery/airalarm{
dir = 1;
@@ -48842,16 +47433,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/aft)
"byv" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -48932,7 +47513,6 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/security/brig)
@@ -49772,6 +48352,9 @@
/obj/machinery/newscaster/security_unit{
pixel_x = 28
},
+/obj/structure/window/reinforced{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
"bzQ" = (
@@ -50512,12 +49095,6 @@
name = "on ramp";
pixel_y = 6
},
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"bAV" = (
@@ -50573,7 +49150,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/airalarm{
pixel_y = 22
@@ -50611,14 +49187,10 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"bBc" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/dark/corner,
+/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bBd" = (
/obj/machinery/vending/tool,
@@ -50646,19 +49218,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"bBf" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"bBg" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -50710,7 +49269,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
"bBk" = (
@@ -51133,16 +49691,6 @@
/turf/open/floor/plasteel/dark,
/area/storage/primary)
"bBS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "2-8"
},
@@ -51205,16 +49753,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bBV" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 8
},
@@ -51222,16 +49760,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bBW" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -51280,16 +49808,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bCa" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
@@ -51630,14 +50148,11 @@
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"bCG" = (
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
/obj/machinery/atmospherics/components/binary/pump{
dir = 1;
name = "External Gas to Loop"
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/engine,
/area/engine/engineering)
"bCH" = (
/obj/effect/turf_decal/tile/blue{
@@ -52527,19 +51042,6 @@
luminosity = 2
},
/area/storage/tech)
-"bEa" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/emcloset/anchored,
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/port/aft)
"bEb" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -52851,16 +51353,6 @@
},
/area/maintenance/port/aft)
"bEA" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -52870,16 +51362,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{
dir = 8
@@ -52887,32 +51369,12 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bEC" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bED" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 8
@@ -52935,16 +51397,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bEG" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -53215,7 +51667,9 @@
dir = 1
},
/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"bFi" = (
@@ -53321,6 +51775,9 @@
},
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small{
+ dir = 4
+ },
/turf/open/floor/plating{
icon_state = "platingdmg3"
},
@@ -54300,10 +52757,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/aft)
"bGS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/bot,
/obj/machinery/holopad,
/turf/open/floor/plasteel,
@@ -54334,15 +52787,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"bGW" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bGX" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -54638,21 +53082,6 @@
/obj/item/bedsheet/brown,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
-"bHv" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"bHw" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/red{
@@ -54691,16 +53120,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
"bHy" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 1
@@ -54965,16 +53384,6 @@
},
/area/hallway/primary/central)
"bHP" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/effect/decal/cleanable/dirt,
@@ -54987,9 +53396,6 @@
"bHS" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/security/processing)
"bHT" = (
@@ -55523,16 +53929,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bIO" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/bot,
/obj/machinery/holopad,
/turf/open/floor/plasteel,
@@ -55544,12 +53940,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/turf/open/floor/plasteel,
/area/security/processing)
"bIQ" = (
@@ -55821,13 +54211,7 @@
pixel_x = 6
},
/obj/item/pen,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
@@ -55840,12 +54224,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/item/storage/toolbox/mechanical{
pixel_x = 2;
pixel_y = 4
@@ -55904,16 +54282,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"bJs" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 1
},
@@ -56262,13 +54630,6 @@
/turf/open/floor/wood,
/area/crew_quarters/locker)
"bJT" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/tile/blue{
dir = 4
},
@@ -56289,7 +54650,7 @@
dir = 1
},
/turf/open/floor/wood{
- icon_state = "wood-broken6"
+ icon_state = "wood-broken5"
},
/area/crew_quarters/locker)
"bJV" = (
@@ -56325,9 +54686,9 @@
/turf/open/floor/plating,
/area/maintenance/port/aft)
"bJY" = (
-/obj/structure/bed,
-/obj/item/bedsheet/black,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/table/wood,
+/obj/item/folder/red,
+/obj/item/lighter,
/obj/machinery/button/door{
id = "Cabin_2";
name = "Cabin 2 Privacy Lock";
@@ -56335,14 +54696,7 @@
pixel_y = 24;
specialfunctions = 4
},
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/wood{
- icon_state = "wood-broken3"
- },
+/turf/open/floor/wood,
/area/crew_quarters/locker)
"bJZ" = (
/obj/machinery/light/small{
@@ -56351,9 +54705,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
-/turf/open/floor/wood{
- icon_state = "wood-broken"
- },
+/turf/open/floor/wood,
/area/crew_quarters/locker)
"bKa" = (
/obj/effect/turf_decal/tile/neutral{
@@ -56382,56 +54734,32 @@
},
/turf/open/floor/wood,
/area/crew_quarters/locker)
-"bKc" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/machinery/newscaster{
- pixel_x = -30
- },
-/obj/machinery/button/door{
- id = "Cabin_4Privacy";
- name = "Cabin 4 Privacy Toggle";
- pixel_x = -24;
- pixel_y = -24
- },
-/turf/open/floor/wood{
- icon_state = "wood-broken4"
- },
-/area/crew_quarters/locker)
"bKd" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/machinery/newscaster{
- pixel_x = -30
- },
-/obj/machinery/button/door{
- id = "Cabin_3Privacy";
- name = "Cabin 3 Privacy Toggle";
- pixel_x = -24;
- pixel_y = -24
- },
/turf/open/floor/wood{
- icon_state = "wood-broken5"
+ icon_state = "wood-broken6"
},
/area/crew_quarters/locker)
-"bKe" = (
-/obj/structure/dresser,
-/turf/open/floor/wood,
-/area/crew_quarters/locker)
"bKf" = (
/obj/structure/sign/poster/contraband/revolver,
/turf/closed/wall,
/area/crew_quarters/locker)
"bKg" = (
-/obj/structure/table/wood,
-/obj/item/folder/red,
-/obj/item/lighter,
-/turf/open/floor/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
/area/crew_quarters/locker)
"bKh" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/machinery/newscaster{
- pixel_x = 30
+/obj/structure/bed,
+/obj/item/bedsheet/black,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
},
-/turf/open/floor/wood,
/area/crew_quarters/locker)
"bKi" = (
/obj/effect/turf_decal/tile/blue{
@@ -56451,12 +54779,19 @@
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/locker)
"bKk" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "Cabin_4Privacy";
- name = "Cabin 4 Privacy Shutter"
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/machinery/newscaster{
+ pixel_x = -30
+ },
+/obj/machinery/button/door{
+ id = "Cabin_4Privacy";
+ name = "Cabin 4 Privacy Toggle";
+ pixel_x = -24;
+ pixel_y = -24
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
},
-/turf/open/floor/plating,
/area/crew_quarters/locker)
"bKl" = (
/obj/structure/flora/rock/pile,
@@ -56858,9 +55193,6 @@
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
"bKP" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
/obj/effect/turf_decal/tile/blue{
dir = 8
},
@@ -56957,9 +55289,6 @@
/area/crew_quarters/toilet/restrooms)
"bKU" = (
/obj/effect/turf_decal/box,
-//obj/structure/toilet/secret/low_loot{
- dir = 8
- },
/obj/structure/mirror{
pixel_x = -28
},
@@ -57295,18 +55624,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"bLr" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
-/area/storage/primary)
"bLs" = (
/obj/structure/table,
/obj/effect/decal/cleanable/cobweb,
@@ -57347,16 +55664,6 @@
/turf/open/floor/plasteel/dark,
/area/janitor)
"bLt" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -57364,7 +55671,8 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bLu" = (
-/turf/closed/wall/rust,
+/obj/structure/dresser,
+/turf/open/floor/wood,
/area/crew_quarters/locker)
"bLv" = (
/obj/effect/turf_decal/tile/purple{
@@ -57555,16 +55863,6 @@
/turf/open/floor/grass,
/area/security/prison)
"bLI" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment,
/obj/structure/disposalpipe/segment{
dir = 4
@@ -57622,11 +55920,6 @@
pixel_y = 22;
prison_radio = 1
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-17";
- pixel_x = -8;
- pixel_y = 3
- },
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"bLO" = (
@@ -57686,16 +55979,6 @@
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
"bLS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
@@ -57774,16 +56057,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"bLY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/landmark/event_spawn,
/obj/structure/disposalpipe/segment{
dir = 4
@@ -57791,16 +56064,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bLZ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -57960,16 +56223,6 @@
/turf/open/floor/plasteel,
/area/security/warden)
"bMm" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -58058,7 +56311,6 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
/obj/structure/cable{
icon_state = "2-4"
},
@@ -58070,12 +56322,6 @@
},
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/storage/primary)
@@ -58479,10 +56725,6 @@
/turf/open/floor/mech_bay_recharge_floor,
/area/maintenance/port/aft)
"bMY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/security/warden)
"bMZ" = (
@@ -58583,9 +56825,7 @@
"bNi" = (
/obj/structure/flora/grass/jungle/b,
/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/flora/ausbushes/ywflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -58627,9 +56867,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
},
@@ -58771,7 +57008,6 @@
dir = 8;
pixel_y = -24
},
-/obj/effect/turf_decal/delivery,
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -58849,8 +57085,6 @@
/turf/open/floor/plasteel/dark,
/area/security/warden)
"bNH" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
/obj/structure/flora/ausbushes/ppflowers,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 5
@@ -59209,10 +57443,6 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -59228,9 +57458,6 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1,
/turf/open/floor/plasteel,
/area/storage/primary)
@@ -59293,7 +57520,6 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/storage/primary)
@@ -59467,16 +57693,6 @@
/turf/closed/wall/rust,
/area/maintenance/starboard/aft)
"bOD" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{
dir = 4
@@ -59484,48 +57700,18 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bOE" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 6
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bOF" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bOG" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/landmark/event_spawn,
/obj/structure/cable{
icon_state = "1-2"
@@ -59537,17 +57723,6 @@
/turf/closed/wall,
/area/janitor)
"bOI" = (
-/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -59555,16 +57730,6 @@
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"bOJ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/landmark/event_spawn,
/obj/structure/disposalpipe/segment{
dir = 4
@@ -59572,16 +57737,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bOK" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
@@ -59605,16 +57760,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"bOM" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/effect/decal/cleanable/dirt,
@@ -59640,16 +57785,6 @@
/turf/open/floor/plasteel/dark,
/area/security/main)
"bOP" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bOQ" = (
@@ -59682,16 +57817,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"bOS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -59768,22 +57893,12 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"bOY" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bOZ" = (
@@ -59870,10 +57985,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"bPh" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/structure/flora/ausbushes/fernybush,
/turf/open/floor/grass,
/area/security/prison)
"bPi" = (
@@ -59997,7 +58108,7 @@
/area/hallway/primary/central)
"bPp" = (
/obj/machinery/status_display/shuttle,
-/turf/closed/wall/rust,
+/turf/closed/wall,
/area/security/courtroom)
"bPq" = (
/obj/machinery/door/airlock/maintenance{
@@ -60146,7 +58257,7 @@
/obj/structure/disposalpipe/segment{
dir = 10
},
-/turf/closed/wall/rust,
+/turf/closed/wall,
/area/maintenance/starboard/aft)
"bPA" = (
/obj/effect/turf_decal/tile/red,
@@ -60170,16 +58281,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"bPB" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -60282,16 +58383,6 @@
},
/area/hallway/secondary/entry)
"bPL" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/sorting/mail{
dir = 8;
name = "HoP sorting disposal pipe";
@@ -60382,10 +58473,6 @@
},
/area/maintenance/port/aft)
"bPR" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -60529,16 +58616,6 @@
},
/area/space/nearstation)
"bQd" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/disposalpipe/segment{
@@ -60585,15 +58662,6 @@
/area/hallway/primary/starboard)
"bQh" = (
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/junction/flip{
dir = 8
},
@@ -60629,7 +58697,6 @@
/obj/machinery/door/airlock/public/glass{
name = "Engineering Hallway"
},
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"bQl" = (
@@ -60763,16 +58830,6 @@
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
"bQv" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
@@ -60833,10 +58890,6 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -60854,9 +58907,6 @@
},
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -60882,9 +58932,6 @@
},
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
@@ -61318,10 +59365,6 @@
"bRf" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/red,
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-02";
- pixel_y = 3
- },
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
@@ -61374,16 +59417,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bRj" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
@@ -61533,19 +59566,6 @@
/obj/machinery/holopad,
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
-"bRt" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/secondary/exit/departure_lounge)
"bRu" = (
/obj/effect/turf_decal/bot,
/obj/structure/rack,
@@ -61862,16 +59882,6 @@
},
/area/maintenance/aft)
"bRU" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -61884,16 +59894,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"bRV" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -61939,16 +59939,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bRZ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -61968,16 +59958,6 @@
/turf/open/floor/engine,
/area/storage/tech)
"bSb" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -61988,16 +59968,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"bSc" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
@@ -62009,9 +59979,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
-"bSd" = (
-/turf/closed/wall/rust,
-/area/hallway/secondary/entry)
"bSe" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/delivery,
@@ -62117,9 +60084,6 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -62133,17 +60097,11 @@
},
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/disposalpipe/junction/flip,
/turf/open/floor/plasteel,
/area/storage/primary)
"bSn" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/brflowers,
-/obj/structure/flora/ausbushes/leafybush,
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 1
@@ -62463,19 +60421,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/delivery,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
-"bSQ" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/turf/closed/wall,
-/area/hallway/secondary/exit/departure_lounge)
"bSR" = (
/obj/machinery/shower{
dir = 8;
@@ -62604,7 +60552,6 @@
/obj/structure/sign/departments/engineering{
pixel_x = 32
},
-/obj/effect/turf_decal/delivery,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
@@ -62669,16 +60616,6 @@
/turf/open/floor/engine,
/area/storage/tech)
"bTe" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/airalarm{
dir = 4;
@@ -62800,12 +60737,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bTr" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/power/apc{
areastring = "/area/hallway/secondary/entry";
dir = 0;
@@ -62888,16 +60819,6 @@
/turf/closed/wall/rust,
/area/hallway/secondary/exit/departure_lounge)
"bTy" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -62917,9 +60838,6 @@
dir = 4;
pixel_x = -22
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
/turf/open/floor/plasteel/dark,
/area/security/prison)
"bTA" = (
@@ -63285,9 +61203,6 @@
/turf/closed/wall,
/area/hallway/secondary/entry)
"bUa" = (
-/obj/structure/bed,
-/obj/item/bedsheet/black,
-/obj/effect/landmark/start/assistant,
/turf/open/floor/wood,
/area/crew_quarters/locker)
"bUb" = (
@@ -63353,15 +61268,6 @@
/area/hallway/secondary/entry)
"bUg" = (
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -63431,9 +61337,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
-"bUl" = (
-/turf/closed/wall,
-/area/security/vacantoffice)
"bUm" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -63479,7 +61382,7 @@
dir = 10
},
/turf/open/floor/plasteel,
-/area/security/warden)
+/area/space)
"bUs" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command/glass{
@@ -63711,6 +61614,7 @@
/area/security/processing)
"bUQ" = (
/obj/machinery/light/floor,
+/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/engine/air,
/area/engine/atmos)
"bUR" = (
@@ -63790,16 +61694,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bVa" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/junction/flip{
dir = 8
},
@@ -64303,13 +62197,6 @@
},
/area/maintenance/central/secondary)
"bVL" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
@@ -64322,10 +62209,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
- dir = 8;
- icon_state = "intact"
- },
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"bVM" = (
@@ -65342,10 +63225,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
-"bXo" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/exit/departure_lounge)
"bXp" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -65401,16 +63280,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"bXu" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/box/corners{
dir = 1
},
@@ -65454,20 +63323,6 @@
/obj/structure/sign/departments/evac,
/turf/closed/wall,
/area/hallway/secondary/exit/departure_lounge)
-"bXy" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/exit/departure_lounge)
"bXz" = (
/obj/effect/turf_decal/bot,
/obj/effect/decal/cleanable/cobweb/cobweb2,
@@ -65497,16 +63352,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"bXC" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -65531,16 +63376,6 @@
/area/hallway/secondary/exit/departure_lounge)
"bXE" = (
/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
@@ -65624,7 +63459,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
@@ -66151,12 +63985,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bYw" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
@@ -66498,31 +64326,6 @@
},
/turf/open/floor/plasteel/dark,
/area/maintenance/port/aft)
-"bYS" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
"bYT" = (
/obj/machinery/power/apc/highcap/five_k{
areastring = "/area/security/prison";
@@ -66598,13 +64401,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bYZ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-10"
- },
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bZa" = (
@@ -66743,10 +64539,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bZk" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bZl" = (
@@ -66848,16 +64640,6 @@
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"bZr" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "2-4"
},
@@ -66969,20 +64751,8 @@
dir = 1
},
/area/hallway/primary/starboard)
-"bZA" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
"bZB" = (
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -66997,16 +64767,6 @@
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
"bZD" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
@@ -67091,25 +64851,15 @@
},
/area/hallway/primary/starboard)
"bZJ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{
- dir = 4
- },
/obj/structure/cable{
icon_state = "2-4"
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bZK" = (
@@ -67156,24 +64906,14 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bZN" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
+/obj/structure/cable{
+ icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
@@ -67214,16 +64954,6 @@
/turf/open/floor/plasteel/dark,
/area/janitor)
"bZR" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 5
},
@@ -67382,16 +65112,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"cad" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 4
},
@@ -67467,16 +65187,9 @@
/turf/open/floor/plasteel,
/area/engine/break_room)
"cak" = (
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
@@ -67495,16 +65208,6 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"cal" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -67577,16 +65280,6 @@
/turf/open/floor/plasteel/dark,
/area/storage/primary)
"car" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "2-8"
},
@@ -67635,10 +65328,6 @@
/turf/open/floor/plasteel,
/area/engine/break_room)
"cau" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -67759,7 +65448,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"caE" = (
@@ -68035,10 +65723,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/central)
"cbb" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable{
@@ -68249,9 +65933,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 10
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"cbw" = (
@@ -68317,7 +65998,6 @@
/area/maintenance/starboard)
"cbA" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"cbB" = (
@@ -68419,16 +66099,6 @@
},
/area/hallway/primary/port)
"cbH" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 1
},
@@ -68444,24 +66114,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel/dark/corner,
/area/hallway/primary/port)
-"cbJ" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 8
- },
-/area/hallway/primary/port)
"cbM" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -68561,10 +66213,6 @@
},
/area/maintenance/port/aft)
"cbT" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
@@ -68736,10 +66384,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"cci" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -68755,10 +66399,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
- dir = 8;
- icon_state = "intact"
- },
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"ccj" = (
@@ -69005,10 +66645,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/aft)
"ccM" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -69055,9 +66691,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/brig)
"ccR" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -69114,7 +66747,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/locker)
"ccX" = (
@@ -69230,28 +66862,14 @@
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"cdg" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/plaque{
icon_state = "L6"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
- dir = 8;
- icon_state = "intact"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{
+ dir = 1
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
@@ -69267,20 +66885,9 @@
/area/maintenance/aft)
"cdi" = (
/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/ausbushes/sparsegrass,
/turf/open/floor/grass,
/area/security/prison)
"cdj" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/item/beacon,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
@@ -69677,9 +67284,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/brig)
-"cdY" = (
-/turf/closed/wall/r_wall/rust,
-/area/maintenance/central)
"cdZ" = (
/turf/closed/wall/r_wall,
/area/maintenance/central)
@@ -69719,7 +67323,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/locker)
"ced" = (
@@ -69811,6 +67414,7 @@
pixel_x = 4;
req_access_txt = "16"
},
+/obj/item/toy/talking/AI,
/turf/open/floor/circuit/red,
/area/ai_monitored/turret_protected/ai)
"ceg" = (
@@ -69965,6 +67569,7 @@
pixel_x = -3;
req_access_txt = "16"
},
+/obj/item/toy/talking/AI,
/turf/open/floor/circuit/red,
/area/ai_monitored/turret_protected/ai)
"cep" = (
@@ -70044,12 +67649,6 @@
/turf/open/floor/plasteel,
/area/engine/break_room)
"ceu" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{
dir = 8
},
@@ -70079,12 +67678,6 @@
/turf/open/floor/circuit/red/telecomms,
/area/tcommsat/server)
"cex" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{
dir = 8
},
@@ -70101,12 +67694,6 @@
/turf/open/floor/plasteel,
/area/engine/break_room)
"cey" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -70209,9 +67796,6 @@
"ceF" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/aisat/atmos)
-"ceG" = (
-/turf/closed/wall/r_wall/rust,
-/area/ai_monitored/turret_protected/aisat/atmos)
"ceH" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -70983,9 +68567,6 @@
"cfY" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/storage/satellite)
-"cga" = (
-/turf/closed/wall/r_wall/rust,
-/area/ai_monitored/storage/satellite)
"cgb" = (
/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/dirt,
@@ -71015,7 +68596,7 @@
"cgg" = (
/obj/structure/sign/warning/docking,
/turf/closed/wall/rust,
-/area/hallway/secondary/entry)
+/area/hallway/secondary/exit/departure_lounge)
"cgi" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -71204,9 +68785,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-05"
- },
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -71483,16 +69061,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"cgV" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
},
@@ -71664,10 +69232,6 @@
/turf/closed/wall,
/area/maintenance/fore)
"chk" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -71713,10 +69277,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/brig)
"chm" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -72185,9 +69745,6 @@
/obj/structure/lattice/catwalk,
/turf/open/floor/plating/airless,
/area/solar/port/aft)
-"chV" = (
-/turf/closed/wall/rust,
-/area/ai_monitored/turret_protected/aisat_interior)
"chW" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/hatch{
@@ -72818,7 +70375,6 @@
name = "Engine Access Shutters"
},
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 8
},
@@ -73249,21 +70805,6 @@
/obj/structure/sign/warning/securearea,
/turf/closed/wall,
/area/engine/gravity_generator)
-"cjC" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"cjD" = (
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -73283,33 +70824,6 @@
icon_state = "panelscorched"
},
/area/maintenance/starboard/aft)
-"cjF" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/machinery/status_display/ai{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
-"cjG" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"cjH" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/engineering{
@@ -73325,7 +70839,6 @@
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"cjI" = (
-/obj/effect/turf_decal/box,
/obj/machinery/shower{
dir = 4;
name = "emergency shower"
@@ -73548,7 +71061,6 @@
/obj/structure/extinguisher_cabinet{
pixel_x = -26
},
-/obj/effect/turf_decal/box,
/obj/machinery/shower{
dir = 4;
name = "emergency shower"
@@ -74102,16 +71614,6 @@
icon_state = "platingdmg1"
},
/area/engine/engineering)
-"clg" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"clh" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1,
/turf/open/floor/plasteel,
@@ -74426,14 +71928,6 @@
luminosity = 2
},
/area/engine/gravity_generator)
-"clF" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"clG" = (
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
@@ -74546,37 +72040,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/maintenance/solars/port/aft)
-"clP" = (
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/gravity_generator)
"clQ" = (
/obj/machinery/gravity_generator/main/station,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/decal/cleanable/greenglow,
/turf/open/floor/plasteel/dark,
/area/engine/gravity_generator)
"clR" = (
-/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel/dark,
/area/engine/gravity_generator)
"clS" = (
@@ -74609,7 +72077,6 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
-/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/security/processing)
"clY" = (
@@ -74678,9 +72145,6 @@
/area/engine/atmos)
"cmc" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -74936,7 +72400,6 @@
dir = 8;
pixel_x = 24
},
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/engine/gravity_generator)
"cmt" = (
@@ -75071,16 +72534,6 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"cmD" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/turf/open/floor/plasteel,
@@ -75100,7 +72553,6 @@
dir = 8
},
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/engine/gravity_generator)
"cmF" = (
@@ -75200,7 +72652,6 @@
},
/obj/machinery/light/small,
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/engine/gravity_generator)
"cmR" = (
@@ -75461,7 +72912,6 @@
dir = 4;
pixel_x = -26
},
-/obj/item/gun/energy/e_gun/advtaser,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"cnn" = (
@@ -76073,6 +73523,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
+/mob/living/simple_animal/bot/cleanbot{
+ auto_patrol = 1;
+ name = "\imprper Cleaner Bot"
+ },
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"coI" = (
@@ -76257,16 +73711,6 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"cpd" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
@@ -76566,16 +74010,6 @@
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"cpu" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/item/beacon,
@@ -76686,7 +74120,7 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/engine/engineering)
"cpF" = (
/obj/structure/flora/rock/pile,
@@ -76795,16 +74229,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/aft)
"cpP" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -76812,16 +74236,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"cpQ" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/item/beacon,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
@@ -78393,16 +75807,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
@@ -79523,7 +76927,6 @@
id = "xeno_blastdoor";
name = "Xenobiology Containment Blast Door"
},
-/obj/effect/turf_decal/caution/stand_clear,
/obj/structure/disposalpipe/junction{
dir = 4
},
@@ -81321,16 +78724,6 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/cable{
icon_state = "2-8"
},
@@ -81659,10 +79052,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/fore)
"cyY" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/maintenance/port/fore)
@@ -82331,7 +79720,6 @@
name = "Emergency Research Blast Door"
},
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/science/research)
"cAY" = (
@@ -82462,7 +79850,6 @@
/obj/machinery/light{
dir = 8
},
-/obj/item/gun/energy/e_gun/advtaser,
/turf/open/floor/plasteel/dark,
/area/security/brig)
"cBp" = (
@@ -82662,12 +80049,19 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/central)
"cBW" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "Cabin_3Privacy";
- name = "Cabin 3 Privacy Shutter"
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/machinery/newscaster{
+ pixel_x = -30
+ },
+/obj/machinery/button/door{
+ id = "Cabin_3Privacy";
+ name = "Cabin 3 Privacy Toggle";
+ pixel_x = -24;
+ pixel_y = -24
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
},
-/turf/open/floor/plating,
/area/crew_quarters/locker)
"cBX" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -82702,6 +80096,9 @@
},
/obj/structure/flora/grass/jungle/b,
/obj/machinery/light,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plating/asteroid/airless{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
@@ -82715,6 +80112,9 @@
},
/obj/structure/flora/ausbushes/palebush,
/obj/machinery/light/small,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plating/asteroid/airless{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
@@ -82930,7 +80330,6 @@
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
},
-/obj/structure/barricade/wooden/crude,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -83147,9 +80546,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/fore)
"cDr" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-02";
pixel_y = 3
@@ -83569,16 +80965,6 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/fore)
-"cEl" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/remains/human,
-/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/fore)
"cEm" = (
/obj/machinery/atmospherics/components/trinary/filter/flipped,
/obj/machinery/button/ignition{
@@ -84062,7 +81448,6 @@
dir = 4
},
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/aft)
"cFC" = (
@@ -84094,7 +81479,6 @@
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
},
-/obj/structure/barricade/wooden/crude,
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/fore)
"cFJ" = (
@@ -84329,11 +81713,7 @@
/turf/open/floor/engine/vacuum,
/area/science/test_area)
"cGz" = (
-/obj/structure/flora/grass/jungle,
-/obj/structure/flora/ausbushes/grassybush,
-/obj/structure/flora/ausbushes/genericbush,
/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sunnybush,
/obj/structure/window/reinforced{
dir = 4
},
@@ -84691,20 +82071,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/dark,
/area/security/brig)
-"cHC" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"cHD" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -84830,16 +82196,6 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
"cHS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/effect/landmark/event_spawn,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
@@ -84892,9 +82248,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/disposalpipe/segment{
dir = 6
},
@@ -84919,15 +82272,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/aft)
-"cIe" = (
-/obj/machinery/door/airlock/research{
- glass = 1;
- name = "Slime Euthanization Chamber";
- opacity = 0;
- req_access_txt = "55"
- },
-/turf/open/floor/plasteel/dark,
-/area/maintenance/starboard/fore)
"cIf" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
dir = 4
@@ -85088,16 +82432,6 @@
/turf/open/floor/plasteel/dark,
/area/storage/tcom)
"cIw" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 6
},
@@ -85256,9 +82590,6 @@
dir = 1
},
/obj/machinery/light,
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21"
- },
/obj/structure/sign/warning/electricshock{
pixel_y = -32
},
@@ -85678,16 +83009,6 @@
/turf/open/floor/plasteel/dark,
/area/engine/break_room)
"cKa" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -85706,16 +83027,6 @@
/turf/open/floor/plasteel,
/area/engine/break_room)
"cKb" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
@@ -86537,7 +83848,6 @@
/turf/open/floor/plating,
/area/maintenance/department/electrical)
"cMG" = (
-/obj/structure/girder,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating{
@@ -87033,15 +84343,6 @@
/area/science/mixing/chamber)
"cOW" = (
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/bridge)
@@ -87063,12 +84364,6 @@
/turf/open/floor/plasteel/dark,
/area/security/prison)
"cPb" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/bridge)
@@ -87261,9 +84556,6 @@
icon_state = "wood-broken"
},
/area/security/vacantoffice)
-"dis" = (
-/turf/closed/wall/r_wall/rust,
-/area/bridge)
"dlg" = (
/obj/machinery/light,
/turf/open/floor/wood,
@@ -87330,16 +84622,6 @@
/obj/item/twohanded/required/kirbyplants/dead,
/turf/open/floor/wood,
/area/security/vacantoffice)
-"elZ" = (
-/obj/machinery/status_display/evac,
-/turf/closed/wall/rust,
-/area/crew_quarters/bar)
-"emD" = (
-/turf/closed/wall/rust,
-/area/quartermaster/miningoffice)
-"erN" = (
-/turf/closed/wall/rust,
-/area/hallway/primary/starboard)
"esR" = (
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/wood{
@@ -87347,10 +84629,6 @@
},
/area/maintenance/port/fore)
"evx" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/open/floor/engine{
initial_gas_mix = "n2=100;TEMP=80";
name = "mainframe floor"
@@ -87373,9 +84651,6 @@
/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
-"ezp" = (
-/turf/closed/wall/rust,
-/area/hydroponics)
"eBN" = (
/obj/structure/window/reinforced{
dir = 8
@@ -87416,9 +84691,6 @@
/obj/machinery/status_display/evac,
/turf/closed/wall/rust,
/area/security/prison)
-"eVT" = (
-/turf/closed/wall/rust,
-/area/science/explab)
"fcv" = (
/obj/structure/sign/warning/fire{
pixel_x = 32
@@ -87438,9 +84710,6 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/closed/mineral/random/labormineral,
/area/space/nearstation)
-"fAH" = (
-/turf/closed/wall/r_wall/rust,
-/area/security/main)
"fXq" = (
/obj/effect/turf_decal/tile/neutral{
dir = 8
@@ -87532,9 +84801,6 @@
},
/turf/open/floor/wood,
/area/security/vacantoffice)
-"gMU" = (
-/turf/closed/wall/r_wall/rust,
-/area/ai_monitored/turret_protected/ai_upload)
"gPA" = (
/turf/open/floor/wood{
icon_state = "wood-broken3"
@@ -87546,21 +84812,9 @@
/obj/effect/decal/cleanable/generic,
/turf/open/floor/wood,
/area/maintenance/port/fore)
-"hqv" = (
-/turf/closed/wall/rust,
-/area/crew_quarters/kitchen)
-"hvb" = (
-/turf/closed/wall/r_wall/rust,
-/area/tcommsat/computer)
"hxn" = (
/turf/open/space/basic,
/area/hallway/secondary/entry)
-"hzY" = (
-/turf/closed/wall/rust,
-/area/gateway)
-"hAb" = (
-/turf/closed/wall/r_wall/rust,
-/area/security/courtroom)
"hDh" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/closet/cardboard,
@@ -87571,16 +84825,6 @@
/turf/closed/wall/r_wall/rust,
/area/security/prison)
"ice" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -87592,26 +84836,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"ieA" = (
-/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/cat_butcherer,
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
-/area/maintenance/fore)
-"iiA" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine{
- initial_gas_mix = "n2=100;TEMP=80";
- name = "mainframe floor"
- },
-/area/tcommsat/server)
"ikw" = (
/obj/machinery/camera{
c_tag = "Xenobiology Cell 4";
@@ -87624,13 +84848,6 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"ivg" = (
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space)
-"iwR" = (
-/turf/closed/wall/r_wall/rust,
-/area/science/server)
"iBL" = (
/obj/machinery/camera{
c_tag = "Laser Room Starboard";
@@ -87667,9 +84884,6 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"iRL" = (
-/turf/closed/wall/rust,
-/area/hallway/primary/aft)
"iSg" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -87679,9 +84893,6 @@
/mob/living/simple_animal/hostile/retaliate/ghost,
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/fore)
-"iYW" = (
-/turf/closed/wall/r_wall/rust,
-/area/crew_quarters/heads/captain)
"iZo" = (
/turf/closed/wall/r_wall/rust,
/area/medical/virology)
@@ -87735,9 +84946,6 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"jxc" = (
-/turf/closed/wall/rust,
-/area/hallway/primary/fore)
"jAT" = (
/obj/structure/lattice/catwalk,
/obj/machinery/light,
@@ -87745,21 +84953,6 @@
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/hallway/secondary/entry)
-"jCp" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine{
- initial_gas_mix = "n2=100;TEMP=80";
- name = "mainframe floor"
- },
-/area/tcommsat/server)
-"jDv" = (
-/turf/closed/wall/rust,
-/area/quartermaster/storage)
"jHJ" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 9
@@ -87903,15 +85096,20 @@
/turf/closed/wall/rust,
/area/hallway/secondary/exit/departure_lounge)
"ktv" = (
-/obj/machinery/air_sensor{
- pixel_x = -32;
- pixel_y = -32
+/obj/machinery/power/compressor{
+ comp_id = "incineratorturbine";
+ dir = 1;
+ luminosity = 2
},
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 5
+/obj/structure/cable,
+/obj/machinery/camera{
+ c_tag = "Turbine Chamber";
+ dir = 4;
+ name = "turbine camera";
+ network = list("turbine")
},
/turf/open/floor/engine/vacuum,
/area/maintenance/disposal/incinerator)
@@ -87931,6 +85129,21 @@
icon_state = "wood-broken7"
},
/area/maintenance/port/fore)
+"kRh" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/nanite_chamber,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
"kSc" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall,
@@ -87948,7 +85161,7 @@
/area/maintenance/port/fore)
"llm" = (
/obj/structure/sign/poster/ripped,
-/turf/closed/wall/rust,
+/turf/closed/wall,
/area/crew_quarters/fitness/recreation)
"lKu" = (
/obj/structure/table/wood,
@@ -87958,12 +85171,9 @@
icon_state = "wood-broken4"
},
/area/maintenance/port/fore)
-"lSJ" = (
-/turf/open/floor/engine/vacuum,
-/area/maintenance/disposal/incinerator)
"lVk" = (
/obj/machinery/status_display/evac,
-/turf/closed/wall/rust,
+/turf/closed/wall,
/area/security/warden)
"mbs" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
@@ -87983,16 +85193,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"mIt" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/structure/disposalpipe/segment,
/obj/machinery/navbeacon{
codes_txt = "patrol;next_patrol=SE CPH";
@@ -88035,13 +85235,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/closed/mineral/random/labormineral,
/area/space/nearstation)
-"mPm" = (
-/turf/closed/wall/rust,
-/area/security/checkpoint/supply)
-"nDw" = (
-/obj/machinery/status_display/evac,
-/turf/closed/wall/rust,
-/area/crew_quarters/heads/hor)
"nJw" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
@@ -88054,15 +85247,6 @@
"nNA" = (
/turf/closed/wall/rust,
/area/bridge)
-"nNV" = (
-/turf/closed/wall/rust,
-/area/science/lab)
-"nSz" = (
-/turf/closed/wall/rust,
-/area/medical/cryo)
-"nVt" = (
-/turf/closed/wall/rust,
-/area/storage/tech)
"nXu" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -88131,9 +85315,6 @@
icon_state = "wood-broken4"
},
/area/maintenance/port/fore)
-"pQf" = (
-/turf/closed/wall/r_wall/rust,
-/area/science/xenobiology)
"qfZ" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -88147,23 +85328,7 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
-"qtv" = (
-/turf/closed/wall/r_wall/rust,
-/area/tcommsat/server)
-"qtS" = (
-/turf/closed/wall/rust,
-/area/medical/genetics/cloning)
"qvS" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/navbeacon{
codes_txt = "patrol;next_patrol=W CPH";
dir = 8;
@@ -88243,6 +85408,14 @@
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/hallway/secondary/entry)
+"sfp" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/nanite_programmer,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
"swG" = (
/obj/item/reagent_containers/food/drinks/drinkingglass{
pixel_x = 4;
@@ -88272,35 +85445,12 @@
/obj/structure/sign/warning,
/turf/closed/wall/rust,
/area/space/nearstation)
-"sPG" = (
-/turf/closed/wall/rust,
-/area/crew_quarters/heads/hor)
-"tgw" = (
-/obj/structure/sign/warning/electricshock,
-/turf/closed/wall/r_wall/rust,
-/area/security/prison)
-"tqw" = (
-/turf/closed/wall/rust,
-/area/lawoffice)
-"tyb" = (
-/turf/closed/wall/rust,
-/area/hallway/primary/central)
"tCi" = (
/obj/effect/decal/cleanable/glass,
/turf/open/floor/wood{
icon_state = "wood-broken3"
},
/area/maintenance/port/fore)
-"tEC" = (
-/turf/closed/wall/rust,
-/area/crew_quarters/bar)
-"tGU" = (
-/obj/structure/sign/warning/securearea,
-/turf/closed/wall/rust,
-/area/gateway)
-"tYn" = (
-/turf/closed/wall/rust,
-/area/janitor)
"uda" = (
/turf/closed/wall/rust,
/area/security/warden)
@@ -88332,16 +85482,6 @@
/turf/open/floor/plasteel/dark,
/area/hallway/primary/port)
"unX" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/obj/machinery/navbeacon{
codes_txt = "patrol;next_patrol=E CPH";
dir = 8;
@@ -88370,9 +85510,6 @@
"uRM" = (
/turf/open/floor/wood,
/area/security/vacantoffice)
-"uWo" = (
-/turf/closed/wall/rust,
-/area/security/checkpoint/medical)
"vle" = (
/obj/structure/festivus,
/turf/open/floor/wood,
@@ -88386,9 +85523,6 @@
/obj/item/instrument/guitar,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
-"whw" = (
-/turf/closed/wall/rust,
-/area/medical/surgery)
"whZ" = (
/obj/effect/turf_decal/tile/green{
dir = 8
@@ -88406,24 +85540,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/wood,
/area/security/vacantoffice)
-"wmX" = (
-/turf/closed/wall/rust,
-/area/quartermaster/qm)
-"wvq" = (
-/turf/closed/wall/rust,
-/area/security/courtroom)
-"wCy" = (
-/turf/closed/wall/rust,
-/area/hallway/primary/port)
-"wDP" = (
-/turf/closed/wall/rust,
-/area/crew_quarters/fitness/recreation)
-"wQL" = (
-/turf/closed/wall/rust,
-/area/security/execution/education)
-"xei" = (
-/turf/closed/wall/r_wall/rust,
-/area/teleporter)
"xqv" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/drinkingglass{
@@ -88433,9 +85549,6 @@
/obj/item/reagent_containers/food/drinks/drinkingglass,
/turf/open/floor/wood,
/area/maintenance/port/fore)
-"xqL" = (
-/turf/closed/wall/rust,
-/area/quartermaster/office)
"xse" = (
/obj/machinery/cryopod,
/obj/effect/decal/cleanable/dirt,
@@ -88444,10 +85557,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
-"xBI" = (
-/obj/machinery/status_display/evac,
-/turf/closed/wall/rust,
-/area/chapel/office)
"xJY" = (
/obj/structure/rack,
/obj/item/storage/backpack,
@@ -98950,7 +96059,7 @@ bmU
ruL
ruL
ruL
-hNk
+aav
aeu
aeu
aap
@@ -99203,11 +96312,11 @@ cqG
cov
cpx
bLM
-hNk
+aav
mmZ
ewj
qfZ
-hNk
+aav
aeu
aeu
aeU
@@ -99460,11 +96569,11 @@ cIA
coD
cqt
aeu
-hNk
+aav
xse
nXu
qPY
-hNk
+aav
aeu
aeu
aUz
@@ -99715,14 +96824,14 @@ cqI
cqP
afm
bVx
-hNk
-hNk
-hNk
+aav
+aav
+aav
cxV
ydo
eBN
-tgw
-hNk
+asO
+aav
aeu
aeu
aeu
@@ -99972,7 +97081,7 @@ bGl
bGV
bIi
cpv
-hNk
+aav
awn
bTz
czR
@@ -99980,7 +97089,7 @@ cFN
cIm
cJC
aav
-hNk
+aav
aeu
aeu
aeU
@@ -100237,7 +97346,7 @@ bNi
bPa
caX
cJG
-hNk
+aav
aeu
aeU
aUz
@@ -100743,7 +97852,7 @@ ajd
cof
ajd
ajd
-hNk
+aav
btd
bVV
bMe
@@ -100751,7 +97860,7 @@ bNH
bTu
ciF
cIQ
-hNk
+aav
aeu
aUz
aeU
@@ -101000,7 +98109,7 @@ ajd
bHc
bIo
ajd
-hNk
+aav
bLN
bMQ
bPk
@@ -101008,7 +98117,7 @@ bRa
bSR
bTF
bVm
-hNk
+aav
aeu
aeu
coy
@@ -101770,7 +98879,7 @@ ajd
ajd
ajd
ajd
-hNk
+aav
bKv
bLX
eQS
@@ -102028,7 +99137,7 @@ ajd
aeu
aeu
aav
-hNk
+aav
bJB
abp
abp
@@ -102542,7 +99651,7 @@ coA
bHj
adf
aeu
-hNk
+aav
bJF
bJN
cuS
@@ -102799,7 +99908,7 @@ coA
bHo
aeE
agK
-hNk
+aav
bLj
bYc
cDG
@@ -102807,7 +99916,7 @@ aaG
aez
cIj
aeB
-wQL
+cZm
aez
aez
cko
@@ -105378,13 +102487,13 @@ bSW
bUd
bVO
aey
-fAH
-fAH
+aey
+aey
aey
aey
byu
aey
-fAH
+aey
aey
aey
clr
@@ -105608,7 +102717,7 @@ amA
amR
amA
cFW
-wDP
+awD
bKD
bLg
bLm
@@ -105898,7 +103007,7 @@ ahZ
aiL
aiL
aiL
-cDB
+bqs
ajS
bOO
bBG
@@ -106389,7 +103498,7 @@ bxE
byS
bGI
bMg
-wDP
+awD
bDt
bDV
bFn
@@ -106636,7 +103745,7 @@ csG
bid
bjx
csQ
-wDP
+awD
bKn
bLc
bMi
@@ -106646,7 +103755,7 @@ bLT
bEK
bGT
bMx
-wDP
+awD
afz
adZ
ajd
@@ -106661,7 +103770,7 @@ aej
aeY
afn
aeY
-aeY
+bqm
ahg
bXO
bYO
@@ -106864,7 +103973,7 @@ apF
aqP
asb
aNG
-aOa
+aOb
akd
aOC
aOm
@@ -106893,8 +104002,8 @@ aqu
bif
bjz
csR
-wDP
-wDP
+awD
+awD
bLo
bLp
btz
@@ -107130,7 +104239,7 @@ abo
agk
agI
agL
-abl
+afX
ahc
aPx
aPx
@@ -107368,7 +104477,7 @@ aeu
cwp
cwq
cyL
-aiV
+alw
cyY
adv
alw
@@ -107625,10 +104734,10 @@ aeu
cwp
abu
cyM
-aiW
+cyY
cyZ
czl
-alA
+cyY
czp
bgN
cwp
@@ -107912,8 +105021,8 @@ aQJ
aTc
aUL
aWr
-uWo
-whw
+aQI
+aQN
bxr
aQN
aQN
@@ -108139,10 +105248,10 @@ cwq
cyE
ahL
cyO
-ajh
-ajs
+cyY
+alw
akI
-alH
+cyY
czr
ans
czK
@@ -108169,7 +105278,7 @@ aQI
aQJ
aQf
aQJ
-uWo
+aQI
baB
bcS
bek
@@ -108182,7 +105291,7 @@ aUJ
aUJ
afe
brD
-bLn
+brD
bvO
bKF
bza
@@ -108416,8 +105525,8 @@ aCL
aPh
aGp
aNW
-aJv
-aQk
+aJC
+agF
aSE
aQy
aWt
@@ -108452,7 +105561,7 @@ cBT
aef
aef
lVk
-uda
+aef
aef
ani
anm
@@ -108700,11 +105809,11 @@ btD
bvP
bxQ
bzg
-bLu
-bLu
bIV
bIV
-csS
+bIV
+bIV
+bIV
bFp
aah
bHz
@@ -108929,7 +106038,7 @@ aBq
aCP
aEo
aGt
-nSz
+aNQ
aJB
aQo
aTO
@@ -108952,17 +106061,17 @@ aoV
bxV
aoV
afe
-bLu
+bIV
bFb
akv
bzZ
bKL
-bLu
+bIV
bJQ
-bKc
+bLu
bKk
-cBv
-bFp
+aXE
+aYZ
aah
bHA
aaA
@@ -108977,7 +106086,7 @@ cqg
ajw
agV
bXT
-bYS
+bYQ
bYm
ama
aiQ
@@ -109185,8 +106294,8 @@ aNH
aVH
aNO
aso
-qtS
-qtS
+aNL
+aNL
aQd
aQC
aNn
@@ -109217,11 +106326,11 @@ bzh
aoL
bJU
bUa
-bKk
-csS
+aJv
+aXE
cCa
-uda
-uda
+aef
+aef
bJC
aef
aef
@@ -109232,7 +106341,7 @@ bWr
coN
cqh
bVW
-uda
+aef
ayi
aJr
ayi
@@ -109474,8 +106583,8 @@ bzi
bIV
bIV
bIV
-bLu
-cBI
+bIV
+bIV
bFp
aah
bHC
@@ -109732,8 +106841,8 @@ bIV
bJS
bKd
cBW
-cBv
-bFp
+aYR
+aYZ
aah
bHA
aff
@@ -109987,14 +107096,14 @@ bAL
bzh
apV
bJZ
-bKe
-cBW
-cBy
+bUa
+bLu
+aYR
cCb
-uda
+aef
aef
lVk
-uda
+aef
uda
bXr
bNq
@@ -110242,11 +107351,11 @@ bGA
bJp
bAQ
bIV
-bLu
+bIV
bIV
bKf
bIV
-csN
+bIV
bFq
aah
bHD
@@ -110503,7 +107612,7 @@ arf
bKb
bKg
bLu
-cBw
+bIV
bFq
aah
bHu
@@ -110759,8 +107868,8 @@ bzp
bIV
bJY
bKh
+aWS
bIV
-afz
ayy
agX
agX
@@ -111014,10 +108123,10 @@ bKC
bAy
bzu
bIV
-bLu
bIV
bIV
-bEa
+bIV
+ajd
bFr
bBI
bHH
@@ -111224,7 +108333,7 @@ aeu
aWG
aWG
aWG
-bsm
+aWG
aWG
aWG
cAN
@@ -111257,8 +108366,8 @@ aSg
aAc
aSg
bAN
-aPf
-aPf
+bAN
+bAN
bAN
bAN
bAN
@@ -111478,7 +108587,7 @@ aaa
aeu
aeu
aeu
-bsm
+aWG
acE
cgY
cAi
@@ -111761,7 +108870,7 @@ aJQ
aLn
aMN
aOD
-aiU
+bdf
aYx
aSe
aYx
@@ -111781,7 +108890,7 @@ boU
bfS
bss
btV
-bZH
+aEu
bxW
bzx
bKq
@@ -111992,7 +109101,7 @@ aeu
aeu
aeu
aeu
-bsm
+aWG
aWG
czG
cAk
@@ -112017,7 +109126,7 @@ aMX
aJR
aOP
aAO
-anY
+aNy
aHq
aYM
aST
@@ -112034,7 +109143,7 @@ bmJ
bmJ
bqp
bri
-bmJ
+auK
bfX
bst
bvQ
@@ -112250,8 +109359,8 @@ aeu
aeu
aeu
aeu
-bsm
-bsm
+aWG
+aWG
aWG
aWG
aWG
@@ -112262,7 +109371,7 @@ bsZ
aWG
aWG
avY
-bsm
+aWG
beG
bwC
bxe
@@ -112272,7 +109381,7 @@ bwY
aGM
bxJ
ahF
-aOS
+aPk
aBN
aOF
bdU
@@ -112318,7 +109427,7 @@ arq
bEo
bEF
bGX
-bBf
+bYZ
aKC
all
alX
@@ -112519,7 +109628,7 @@ bta
btC
atL
avK
-xBI
+btg
aob
azS
aAu
@@ -112529,7 +109638,7 @@ bwZ
bxF
bxJ
ahF
-aOS
+aPk
aJi
aOG
btE
@@ -112539,7 +109648,7 @@ btE
aPK
aLU
btE
-cJc
+buC
buC
aRF
aSP
@@ -112572,14 +109681,14 @@ ajd
bRP
bBr
cdj
-bBf
+bYZ
bEG
-bBf
-bBf
+bYZ
+bYZ
bVa
-cHC
+bUZ
cHS
-cHC
+bUZ
aKN
cfp
baF
@@ -112765,7 +109874,7 @@ aeu
aeu
aeu
adH
-ajj
+alc
ajz
adQ
cAF
@@ -112776,7 +109885,7 @@ aWG
aWG
bvT
avL
-bsm
+aWG
btA
cBh
btA
@@ -112786,12 +109895,12 @@ bxu
bwP
btA
bsx
-aOS
+aPk
aaJ
-tEC
-tEC
+btE
+btE
bvi
-bub
+aTe
buu
bvf
aTe
@@ -112802,14 +109911,14 @@ bvn
bfv
bvU
bvu
-cJc
+buC
blx
bnx
boY
buC
bsy
aoh
-tqw
+aoh
bCn
aoh
aoA
@@ -112819,8 +109928,8 @@ cbC
cbH
cbM
cbP
-aer
-aer
+ajd
+ajd
czw
bWQ
czU
@@ -112832,7 +109941,7 @@ cCh
cCh
cCo
bGY
-bHv
+bYw
bVc
cbc
cch
@@ -113045,7 +110154,7 @@ btA
ahF
aOT
cfa
-tEC
+btE
aTB
btT
buc
@@ -113077,7 +110186,7 @@ aYM
aYM
cbM
cbw
-aer
+ajd
ajd
ajd
czW
@@ -113089,7 +110198,7 @@ bBk
aaY
aaY
bGZ
-bBf
+bYZ
bVd
bHU
aMA
@@ -113296,15 +110405,15 @@ azW
bwR
bye
bxi
-aEu
+aEx
bxH
bxJ
ahF
-aOS
+aPk
cfa
btF
aqg
-btU
+aqg
buy
buJ
bvq
@@ -113320,7 +110429,7 @@ bjH
blB
bAS
buC
-cJc
+buC
bps
aoh
aok
@@ -113334,7 +110443,7 @@ cbI
cbN
aYM
cbR
-cbJ
+cbw
ajd
bKA
bBG
@@ -113346,7 +110455,7 @@ aci
bWc
aaY
bHk
-bBf
+bYZ
bVd
bXV
ccj
@@ -113843,9 +110952,9 @@ aoS
aoX
adc
aoh
-wCy
-wCy
-wCy
+boC
+boC
+boC
bvJ
bwc
bBj
@@ -113860,7 +110969,7 @@ ack
bWe
bBk
bHk
-bBf
+bYZ
cFA
axF
axF
@@ -114053,7 +111162,7 @@ adQ
cAr
cAy
cAC
-adQ
+adH
bsf
cCI
cBc
@@ -114064,14 +111173,14 @@ cBc
btA
bwK
btB
-bwU
+btB
bxD
-aAD
+btB
aEx
bxJ
aIl
ahF
-aOS
+aPk
cfa
btF
aRM
@@ -114102,7 +111211,7 @@ asF
asF
aos
bEd
-wvq
+asF
bGq
bOP
bIt
@@ -114117,7 +111226,7 @@ acl
bCd
bBk
bHk
-bBf
+bYZ
cHk
bFa
bGf
@@ -114314,7 +111423,7 @@ adH
anb
anU
apG
-adQ
+adH
aoc
atO
awh
@@ -114349,7 +111458,7 @@ bpH
bsh
buC
boW
-wvq
+asF
adu
bwk
byi
@@ -114585,7 +111694,7 @@ aEC
bxJ
aIo
ahF
-aOS
+aPk
cfa
btE
aXm
@@ -114599,14 +111708,14 @@ btE
btE
bey
btE
-tEC
-cJc
-cJc
+btE
+buC
+buC
buC
buC
buC
bpn
-wvq
+asF
aow
arB
atc
@@ -114631,7 +111740,7 @@ bws
aaY
aaY
bHk
-bBf
+bYZ
cac
bFa
cnz
@@ -114842,7 +111951,7 @@ btA
btA
ago
aaZ
-aOS
+aPk
cfa
btH
aXp
@@ -114850,7 +111959,7 @@ btY
bvk
bvE
bvH
-aWS
+aTe
buA
bbk
bcW
@@ -114863,7 +111972,7 @@ bqr
brs
bsk
btO
-wvq
+asF
asY
ask
aaV
@@ -114888,7 +111997,7 @@ bUz
bWg
axF
bYn
-bBf
+bYZ
cae
bVo
cck
@@ -115087,7 +112196,7 @@ cCM
cCR
bsf
ajv
-adQ
+adH
cDc
cCU
cDh
@@ -115099,7 +112208,7 @@ aaI
aGN
cDq
aJS
-aOS
+aPk
cfa
btI
aXr
@@ -115118,14 +112227,14 @@ aLD
bpn
asF
asF
-wvq
+asF
asF
asF
asF
asu
auI
atf
-auK
+byi
avW
ccR
apa
@@ -115317,7 +112426,7 @@ aeu
ceF
ceF
ceF
-ceG
+ceF
ceF
ceF
ceF
@@ -115338,10 +112447,10 @@ aeU
aUz
aeu
adH
-adQ
adH
adH
-adQ
+adH
+adH
adH
cCU
cDy
@@ -115358,7 +112467,7 @@ ago
aBO
aNq
aRY
-elZ
+btK
btE
buf
aSh
@@ -115392,8 +112501,8 @@ auP
bQx
bOP
bRh
-tyb
-iRL
+bOU
+axF
cag
cbh
bRX
@@ -115432,7 +112541,6 @@ aFH
aFN
cwz
aaa
-acm
aaa
aaa
acm
@@ -115492,6 +112600,7 @@ aaa
aaa
aaa
aaa
+aaa
"}
(106,1,1) = {"
aaa
@@ -115564,20 +112673,20 @@ aeu
aeu
asZ
asZ
-aAg
asZ
asZ
-aAg
-aAg
asZ
asZ
-ceG
+asZ
+asZ
+asZ
+ceF
ceF
akN
aac
adr
adA
-ceG
+ceF
ceF
ceF
ceF
@@ -115613,7 +112722,7 @@ cdD
cdD
ago
aJT
-aOS
+aPk
aMU
aOI
btE
@@ -115621,8 +112730,8 @@ btE
btE
aOy
btE
-tEC
-tEC
+btE
+btE
bbr
aTe
aTe
@@ -115690,7 +112799,6 @@ aIL
aFI
aFW
aFI
-aFI
cko
cko
aaa
@@ -115749,6 +112857,7 @@ aaa
aaa
aaa
aaa
+aaa
"}
(107,1,1) = {"
aaa
@@ -115818,16 +112927,16 @@ aUz
aeu
aeu
aeu
-aAg
-asZ
-asZ
-asZ
-aAg
asZ
asZ
asZ
asZ
-aAg
+asZ
+asZ
+asZ
+asZ
+asZ
+asZ
ceF
axB
acn
@@ -115879,7 +112988,7 @@ aPQ
aTu
bpq
aXa
-tEC
+btE
btE
aTL
aOy
@@ -115916,7 +113025,7 @@ bCe
bVg
bCe
bHl
-bBf
+bYZ
cHj
bFa
bFS
@@ -115946,7 +113055,6 @@ aFO
cwc
aFO
cwA
-lSJ
aFI
aFI
aFI
@@ -116006,6 +113114,7 @@ aaa
aaa
aaa
aaa
+aaa
"}
(108,1,1) = {"
aaa
@@ -116076,14 +113185,14 @@ aeu
aeu
asZ
asZ
-aAg
-aAg
+asZ
+asZ
asZ
asZ
cef
asZ
asZ
-aAg
+asZ
asZ
ceF
acJ
@@ -116154,7 +113263,7 @@ asF
asF
arn
arn
-hAb
+arn
arn
aur
arn
@@ -116166,14 +113275,14 @@ bOP
bJy
aCq
cbA
-bBf
+bYZ
byv
-bBE
-bBf
-bBf
-bBf
-bBf
-bBf
+bcD
+bYZ
+bYZ
+bYZ
+bYZ
+bYZ
cHk
bFa
bFa
@@ -116206,7 +113315,7 @@ aFY
ktv
aNi
aGb
-aGc
+aaa
aaa
aaa
aaa
@@ -116384,14 +113493,14 @@ aEH
ceZ
aIs
aiA
-aOS
+aPk
cgq
aXu
aox
aMi
aMc
aTz
-apX
+aox
arA
akM
aox
@@ -116460,7 +113569,6 @@ aFU
cwd
jHJ
cwH
-cwH
aFI
aFI
aFI
@@ -116520,6 +113628,7 @@ aaa
aaa
aaa
aaa
+aaa
"}
(110,1,1) = {"
aaa
@@ -116588,7 +113697,7 @@ aeu
aeu
aeu
asZ
-aAg
+asZ
asZ
aam
aaF
@@ -116599,7 +113708,7 @@ ceD
cel
abR
atB
-adT
+chX
aHw
ace
acM
@@ -116718,7 +113827,6 @@ aJl
aFI
aFI
aFI
-aFI
cko
cko
aaa
@@ -116777,6 +113885,7 @@ aaa
aaa
aaa
aaa
+aaa
"}
(111,1,1) = {"
aaa
@@ -116844,7 +113953,7 @@ aaa
aeU
ciQ
aeu
-aAg
+asZ
asZ
aak
aan
@@ -116860,7 +113969,7 @@ adg
ace
acp
acW
-alV
+adg
adG
adR
adU
@@ -116899,7 +114008,7 @@ ago
aIz
ajW
ajJ
-aOS
+aPk
fXq
aIV
aox
@@ -116917,13 +114026,13 @@ cBV
aox
atT
atT
-dis
-dis
-dis
-dis
+atT
+atT
+atT
+atT
ajK
atT
-dis
+atT
atj
apN
awj
@@ -117187,7 +114296,7 @@ asA
apf
atr
auG
-arD
+ark
bsP
bQx
bOF
@@ -117359,7 +114468,7 @@ aeU
anH
aeu
asZ
-aAg
+asZ
aal
aaw
aaU
@@ -117414,7 +114523,7 @@ aIB
aba
cgw
aRk
-apY
+aNy
oPf
aLV
aHz
@@ -117423,8 +114532,8 @@ arl
arl
byV
bzc
-gMU
-gMU
+arl
+arl
bfJ
abk
aqb
@@ -117433,8 +114542,8 @@ atT
aqz
aoW
bqe
-aqQ
-aqQ
+bsE
+bsE
avQ
byn
bzI
@@ -117627,7 +114736,7 @@ cdH
ceB
abZ
atB
-adT
+chX
aZh
acz
ada
@@ -117660,15 +114769,15 @@ ciZ
ahh
ahh
ahh
-qtv
-qtv
-qtv
-qtv
-qtv
+ahh
+ahh
+ahh
+ahh
+ahh
+cfM
+cfM
cfM
cfM
-hvb
-hvb
cfM
aRl
bVL
@@ -117706,7 +114815,7 @@ atG
bQx
bOF
bYW
-nVt
+bCM
bDp
bQn
bSf
@@ -117874,7 +114983,7 @@ aeu
aeu
aeu
asZ
-aAg
+asZ
apn
ceE
cfJ
@@ -117884,10 +114993,10 @@ abC
abL
aca
asZ
-alV
+adg
azv
chB
-chV
+azv
adg
ciN
ciM
@@ -117914,7 +115023,7 @@ aoM
adH
adH
ahh
-qtv
+ahh
awo
cdn
cdJ
@@ -117930,7 +115039,7 @@ cfM
aRm
cci
aKP
-gMU
+arl
arl
arl
byN
@@ -117956,7 +115065,7 @@ atj
atj
bHI
atj
-nNA
+atj
atT
atT
atT
@@ -118130,15 +115239,15 @@ aeu
aeu
aeu
aeu
-aAg
asZ
asZ
asZ
-aAg
+asZ
+asZ
asZ
ceo
asZ
-aAg
+asZ
asZ
asZ
cfY
@@ -118189,10 +115298,10 @@ cdg
aQh
bwp
ciX
-gMU
+arl
byq
aXz
-aYZ
+aZc
bbU
bzm
bzc
@@ -118389,14 +115498,14 @@ aeu
aeu
aeu
asZ
-aAg
-aAg
asZ
asZ
-aAg
asZ
asZ
-aAg
+asZ
+asZ
+asZ
+asZ
asZ
cfY
acj
@@ -118405,7 +115514,7 @@ adm
adz
adN
ciB
-cga
+cfY
acm
aeo
aaa
@@ -118647,15 +115756,15 @@ aeu
aeu
aeu
asZ
-aAg
-aAg
asZ
asZ
-aAg
asZ
-aAg
asZ
-cga
+asZ
+asZ
+asZ
+asZ
+cfY
cfY
cde
chG
@@ -118684,7 +115793,7 @@ adH
adQ
abX
cBc
-qtv
+ahh
cew
awI
cdq
@@ -118913,11 +116022,11 @@ aeu
aeu
aeu
cfY
-cga
cfY
cfY
cfY
-cga
+cfY
+cfY
cfY
acm
acm
@@ -118934,21 +116043,21 @@ aeu
adQ
cCr
cED
-ieA
+anJ
ale
alT
cEW
aoZ
cFg
agC
-qtv
+ahh
atU
-jCp
+awJ
awJ
awJ
aAj
cff
-iiA
+awJ
cfE
cfR
cge
@@ -118960,7 +116069,7 @@ chm
aLg
arl
arl
-gMU
+arl
bAw
aXH
aZl
@@ -118974,8 +116083,8 @@ awg
blT
bnI
bpe
-bqm
-bsF
+bsE
+bsE
bur
atj
aHU
@@ -118983,9 +116092,9 @@ auc
atj
atj
aug
-nNA
-nNA
-nNA
+atj
+atj
+atj
atT
atT
bIz
@@ -119217,7 +116326,7 @@ atF
aLk
aLV
aLW
-gMU
+arl
arl
byM
aZn
@@ -119231,10 +116340,10 @@ aqh
aqk
att
aqG
-bqs
+bsE
arY
auM
-arX
+bsE
byt
afT
atj
@@ -119246,7 +116355,7 @@ arw
avF
aus
bIJ
-bOY
+aZg
bKZ
bmP
bNZ
@@ -119457,7 +116566,7 @@ cFh
cFj
ahh
ahh
-awM
+evx
cdC
ceJ
aAl
@@ -119490,7 +116599,7 @@ atD
aqG
bqt
cOW
-cOW
+cPb
cPb
byw
ard
@@ -119716,13 +116825,13 @@ cAF
ahh
ahh
ahh
-qtv
ahh
-qtv
-qtv
+ahh
+ahh
+ahh
ahh
cfM
-hvb
+cfM
cfM
cfM
cgz
@@ -119980,13 +117089,13 @@ cvM
awE
aEN
aGQ
-hzY
-jxc
+aUa
+ago
avw
aRB
aJi
aLE
-apX
+aox
aOk
aox
aox
@@ -120249,8 +117358,8 @@ akw
aox
aox
aox
-apX
-apX
+aox
+aox
aox
aox
aox
@@ -120274,7 +117383,7 @@ bqf
cjy
aus
bIJ
-bOY
+aZg
bLi
bmc
bmc
@@ -120494,7 +117603,7 @@ cvO
cvU
aEQ
aGS
-tGU
+cvW
aJY
awr
aRX
@@ -120527,8 +117636,8 @@ aui
aui
avb
aui
-xei
-xei
+aui
+aui
aui
bCH
bQd
@@ -120756,10 +117865,10 @@ aKi
cIw
cKd
aox
-aox
+aGh
aRc
-bzN
-akM
+aGh
+aGh
ajt
ajt
aZq
@@ -120767,7 +117876,7 @@ aZq
ajt
ajt
aQO
-apX
+aox
cCk
bka
blW
@@ -120792,11 +117901,11 @@ bOF
bJy
aCq
cbA
-bBf
-bBf
-bBf
+bYZ
+bYZ
+bYZ
bBE
-bBf
+bYZ
bEN
ane
aBS
@@ -120996,7 +118105,7 @@ cIX
khA
cDT
iSg
-cEl
+cEb
cJD
atV
cEg
@@ -121010,13 +118119,13 @@ aES
aHv
aUa
aKl
-aPz
+ajj
aNl
aGh
-aGh
+alV
aZf
-aGh
-aGh
+apY
+aqQ
ajt
aBc
bmH
@@ -121025,10 +118134,10 @@ bcZ
ajt
bgf
aox
-apX
aox
aox
-cdY
+aox
+cdZ
cdZ
ahy
asx
@@ -121270,9 +118379,9 @@ aHq
aNq
aZO
aGh
-aQm
+bqU
aRi
-aSn
+bqU
bqU
ajt
aXV
@@ -121288,7 +118397,7 @@ blZ
bpq
bpg
aYO
-iYW
+asx
bwb
arz
bDc
@@ -121310,7 +118419,7 @@ bQy
bBn
axF
bCr
-bBf
+bYZ
cpW
bYu
aCc
@@ -121538,7 +118647,7 @@ bqc
bdo
bqz
bgo
-apX
+aox
bqb
cba
aIN
@@ -121549,10 +118658,10 @@ asx
bwd
bzA
bLe
-auT
+aGc
auT
arF
-iYW
+asx
bAb
bQR
aYO
@@ -121809,7 +118918,7 @@ byE
bzP
arV
brU
-iYW
+asx
bAp
bQS
aox
@@ -121824,7 +118933,7 @@ bBR
bCl
bCA
bCr
-bBf
+bYZ
csC
bYw
aIb
@@ -122053,9 +119162,9 @@ bdy
ajt
ajt
blc
-hqv
-ezp
-ezp
+ajt
+aZd
+aZd
aZd
auj
aZd
@@ -122063,10 +119172,10 @@ asx
asx
asx
asx
-iYW
-iYW
asx
-iYW
+asx
+asx
+asx
bMu
bRr
aox
@@ -122307,7 +119416,7 @@ ajt
boI
ajt
bqy
-hqv
+ajt
bgr
bhd
biJ
@@ -122315,9 +119424,9 @@ bjn
bmE
bns
bpk
-bnD
-bnS
-boc
+brN
+brN
+brN
bwG
bso
bpi
@@ -122828,11 +119937,11 @@ boV
bjn
bmG
bnK
-bny
+brN
bqH
-bny
+brN
buB
-bny
+brN
bzt
bAs
bBQ
@@ -122852,7 +119961,7 @@ bQC
bCx
awq
bUY
-bBf
+bYZ
cud
cyb
btG
@@ -123085,11 +120194,11 @@ bqP
bmF
bcX
bnN
-bny
+brN
bqH
-bny
+brN
buB
-bny
+brN
bzC
boS
bCF
@@ -123102,7 +120211,7 @@ bZM
bhY
bIT
bQI
-bLr
+bMt
bMt
bMt
bMt
@@ -123342,9 +120451,9 @@ bpb
bjn
bme
bnK
-bny
+brN
bqH
-bny
+brN
buB
bwM
byG
@@ -123352,7 +120461,7 @@ bof
bFJ
bFX
bqQ
-ezp
+aZd
aZd
bBU
bXv
@@ -123599,7 +120708,7 @@ bhd
bol
bmg
bnO
-bny
+brN
bqI
bsR
buD
@@ -123608,8 +120717,8 @@ bAl
bAu
bFV
bGk
-ezp
-ezp
+aZd
+aZd
bGh
bZI
bhY
@@ -123847,7 +120956,7 @@ bsb
brq
brF
brG
-hqv
+ajt
boQ
boH
bqo
@@ -124104,7 +121213,7 @@ brr
aVd
brJ
brI
-hqv
+ajt
ajt
bmA
bph
@@ -124123,7 +121232,7 @@ bob
bRc
bZy
bZp
-bZA
+bZD
bZD
bZJ
bZN
@@ -124325,14 +121434,14 @@ bfq
iMq
bbx
alB
-afX
-agF
+arx
+arx
+alB
+alB
+alB
alB
alB
alB
-pQf
-pQf
-pQf
alB
alB
alB
@@ -124582,7 +121691,7 @@ aWJ
ayv
aWJ
alB
-cIe
+bdp
bhl
alB
bfq
@@ -124626,8 +121735,8 @@ bAX
bnz
bBZ
bqS
-bGW
-bGW
+bZD
+aAD
bqX
brz
buO
@@ -124669,7 +121778,7 @@ clM
axW
cnk
coo
-axU
+ayn
aLH
aLx
aLz
@@ -124834,7 +121943,7 @@ aeu
aeu
aeu
aeu
-pQf
+alB
bfs
aWJ
bft
@@ -125090,8 +122199,8 @@ alB
alB
alB
alB
-pQf
-pQf
+alB
+alB
bfM
bfM
bfM
@@ -125129,10 +122238,10 @@ bdf
bpC
bkG
bbH
-bnM
-bpC
-bpC
-bpW
+bBc
+bBc
+bBc
+bBc
bgP
bBc
bBp
@@ -125146,7 +122255,7 @@ bqY
bvB
buR
bPx
-erN
+bnv
bjX
bkz
bOv
@@ -125189,7 +122298,7 @@ aLF
aag
aag
aag
-aLF
+bsm
cuA
cuW
bYI
@@ -125353,7 +122462,7 @@ aeV
bfl
bfV
aWR
-aWP
+adT
adx
aWR
bgC
@@ -125379,17 +122488,17 @@ aXP
bai
aZS
aZr
-ajL
-ajL
+cAX
+cAX
cAX
aJJ
aRs
aSB
aTP
-aYd
-aYK
-aYK
-aYd
+arD
+arX
+arX
+auz
bdO
beO
bpF
@@ -125403,14 +122512,14 @@ blf
blf
blg
blf
-mPm
+blf
blQ
bAC
bBL
bkQ
bjW
bAv
-bOC
+bEg
bGM
bHP
bJc
@@ -125620,7 +122729,7 @@ cqw
bgM
bgn
bVA
-pQf
+alB
ctJ
cxP
aWY
@@ -125630,7 +122739,7 @@ ayx
bdc
bdR
aAZ
-eVT
+aZv
aEE
aFp
aHJ
@@ -125644,12 +122753,12 @@ aYK
aZL
bch
aYd
-aZg
-aZj
+aYK
+aYK
aYd
bhe
cLt
-xqL
+bhI
bhX
bhs
biM
@@ -125906,7 +123015,7 @@ aZQ
aYd
bdP
beP
-xqL
+bhI
bhy
ats
bko
@@ -125969,10 +123078,10 @@ ckk
aEg
cnu
cnu
-cnd
+bOc
cnd
cnu
-cnd
+bOc
cnu
alm
aaa
@@ -126403,9 +123512,9 @@ bgk
aBd
aZv
aXw
-aXE
+kRh
aXI
-aYR
+sfp
beD
bbj
aNF
@@ -126427,7 +123536,7 @@ aKA
bjh
bjy
bpw
-mPm
+blf
bsV
buS
bxl
@@ -126481,13 +123590,13 @@ cmH
cvE
cmR
cwe
-cnd
+krJ
cwN
cqQ
csq
cnu
cuL
-cnd
+cnu
acm
aaa
aaa
@@ -126652,7 +123761,7 @@ alB
cOb
cps
cMW
-iwR
+aZF
aZF
ami
aZF
@@ -126684,7 +123793,7 @@ bkr
bmx
bod
bpx
-mPm
+blf
blg
bBo
blg
@@ -126703,7 +123812,7 @@ bNM
bOo
cgd
bNM
-tYn
+bNM
aVM
bNx
bWx
@@ -126733,7 +123842,7 @@ cms
cmE
cmQ
cju
-bOC
+bEg
cnV
cmh
bOb
@@ -126952,7 +124061,7 @@ bIm
bHR
bNg
bAF
-bOC
+bEg
bQe
bLZ
bkE
@@ -127001,7 +124110,7 @@ cwZ
cxi
cnu
cnu
-cnd
+cnu
alm
aaa
aaa
@@ -127146,7 +124255,7 @@ alB
alB
alB
alB
-pQf
+alB
alB
bfQ
bfQ
@@ -127166,7 +124275,7 @@ alB
cby
cMP
ajO
-iwR
+aZF
aXf
aeG
aik
@@ -127181,8 +124290,8 @@ beE
mIG
aNM
bgW
-nNV
-nNV
+aDI
+aDI
biB
aYg
aDI
@@ -127252,11 +124361,11 @@ bEg
cvG
cvL
cwm
-cnd
+bOc
cpb
crf
-cnd
-cnd
+cnu
+cnu
cko
aeu
aeu
@@ -127447,7 +124556,7 @@ bbb
bdz
cby
clA
-wmX
+aCb
bjJ
blJ
biV
@@ -127467,7 +124576,7 @@ bCc
bOw
bAT
bOC
-erN
+bnv
bHT
bJh
bJK
@@ -127691,7 +124800,7 @@ aZY
aJF
aWX
aVJ
-nDw
+anx
bbM
aNT
aPo
@@ -127704,7 +124813,7 @@ bbb
bdE
cbz
cLt
-wmX
+aCb
bhO
aqH
biI
@@ -127717,7 +124826,7 @@ bkA
bke
blr
bkY
-blC
+blD
bls
bPj
bmo
@@ -127734,7 +124843,7 @@ bTk
bXL
bXx
bPe
-bUt
+bWx
hDh
uRM
uRM
@@ -127931,7 +125040,7 @@ alB
alB
alB
alB
-pQf
+alB
alB
alB
cng
@@ -127948,7 +125057,7 @@ aGa
aKu
aMe
bfB
-sPG
+amV
bfr
bex
aTU
@@ -127991,9 +125100,9 @@ bOG
bQU
bUs
bTv
-krJ
-krJ
-krJ
+bOc
+bOc
+bOc
bOc
bWn
bWx
@@ -128224,7 +125333,7 @@ big
big
bom
aCb
-jDv
+bhQ
bpB
bkl
bli
@@ -128244,7 +125353,7 @@ bQo
bJM
bPe
bMF
-bRs
+aZj
bQV
bPe
bTw
@@ -128270,9 +125379,9 @@ bUN
cke
aeu
bzG
-cjC
-clg
-clP
+clR
+clR
+clR
ctU
bzG
aeu
@@ -128527,7 +125636,7 @@ jAT
aeu
aeu
bzG
-cjF
+clR
clE
clQ
ctW
@@ -128784,8 +125893,8 @@ bUN
aeu
aeu
bzG
-cjG
-clF
+clR
+clR
clR
ctX
bzG
@@ -128994,7 +126103,7 @@ bhH
bhW
bmN
boK
-emD
+bhH
bhH
bjV
bkh
@@ -129017,7 +126126,7 @@ bLE
bMN
bON
bQY
-bSQ
+bOc
bPe
bOc
bWz
@@ -129535,7 +126644,7 @@ cmr
aWs
crl
bXC
-bXo
+bON
bYg
bZk
bTO
@@ -129736,7 +126845,7 @@ cME
cMr
cLs
bkd
-ava
+bkd
bkd
bkd
azD
@@ -130048,7 +127157,7 @@ bRV
bNz
bSn
crl
-bRt
+bON
bXw
bWM
bPe
@@ -130056,7 +127165,7 @@ bZC
bPe
bOc
bSr
-bSd
+krJ
cgg
hxn
hxn
@@ -130271,7 +127380,7 @@ aSM
aUn
baC
aYp
-bcD
+awi
bgi
bkd
bhH
@@ -130305,7 +127414,7 @@ bRZ
cmr
bRA
crl
-bXy
+bON
bXA
bXN
bTG
@@ -130562,7 +127671,7 @@ bSb
cmr
cGz
cro
-bRt
+bON
bXA
cFE
bTt
@@ -131040,7 +128149,7 @@ awi
awi
baC
baC
-bcD
+awi
aYs
cdc
cna
@@ -131551,7 +128660,7 @@ axO
cOm
cbj
aio
-auz
+cbm
aSZ
cOo
aVt
@@ -131600,13 +128709,13 @@ aeu
aeu
aUz
acm
-cmJ
-ivg
-ivg
-cmJ
-ivg
-ivg
-cmJ
+acm
+acK
+acK
+acm
+acK
+acK
+acm
acm
aeU
aeU
@@ -131801,14 +128910,14 @@ bkd
aze
aAG
cbj
-cLt
+cbk
aJn
cLg
aMq
ava
bkd
bkd
-ava
+bkd
avA
avA
bkd
@@ -132058,7 +129167,7 @@ bkd
ava
ava
bkd
-ava
+bkd
avA
crw
avA
@@ -132319,7 +129428,7 @@ bkd
cLK
cLK
afJ
-ava
+bkd
aeu
alm
acm
@@ -132572,7 +129681,7 @@ aeu
aeu
aeu
aeu
-ava
+bkd
agy
cLR
agy
@@ -132829,7 +129938,7 @@ aeu
aeu
aeu
aeu
-beK
+bhq
aaa
aaa
aaa
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index ae0f757a43..9fe0fd87ee 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -8268,6 +8268,9 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"apf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
/turf/open/floor/plating{
icon_state = "platingdmg3"
},
@@ -37512,12 +37515,12 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bvb" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
/turf/open/floor/plasteel/dark/corner,
/area/hallway/primary/starboard)
"bvc" = (
@@ -37581,10 +37584,10 @@
/turf/open/floor/circuit/green,
/area/ai_monitored/turret_protected/ai)
"bvg" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
/turf/open/floor/plating,
/area/maintenance/starboard)
"bvh" = (
@@ -38444,33 +38447,36 @@
dir = 4;
pixel_x = -23
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
- },
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
/area/hallway/primary/starboard)
"bxa" = (
/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bxb" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 27
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
/obj/machinery/light{
dir = 4
},
@@ -38498,8 +38504,8 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bxf" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
},
/turf/closed/wall,
/area/engine/atmos)
@@ -39190,6 +39196,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
@@ -39198,6 +39207,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark/corner,
/area/hallway/primary/starboard)
"byR" = (
@@ -39205,21 +39217,19 @@
name = "Station Intercom (General)";
pixel_x = -30
},
-/obj/item/crowbar/red,
-/obj/item/wrench,
-/obj/item/clothing/mask/gas,
/obj/machinery/airalarm{
pixel_y = 23
},
-/obj/structure/table,
-/obj/item/storage/box,
-/obj/item/storage/box,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/computer/atmos_alert,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
@@ -39231,10 +39241,13 @@
/obj/machinery/light{
dir = 1
},
-/obj/machinery/computer/atmos_alert,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/computer/station_alert,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
@@ -39248,10 +39261,13 @@
/obj/machinery/camera{
c_tag = "Atmospherics - Control Room"
},
-/obj/machinery/computer/station_alert,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
@@ -39265,54 +39281,44 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
/area/engine/atmos)
"byV" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/computer/atmos_control,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/checker,
+/area/engine/atmos)
+"byW" = (
/obj/structure/sign/plaques/atmos{
pixel_y = 32
},
-/obj/item/phone{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/cigbutt/cigarbutt{
- pixel_x = 5;
- pixel_y = -1
- },
-/obj/structure/table,
/obj/machinery/light_switch{
pixel_x = 26
},
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/computer/atmos_control,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/checker,
/area/engine/atmos)
-"byW" = (
-/obj/structure/table,
-/obj/item/clothing/head/welding{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/clothing/head/welding{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/machinery/light_switch{
- pixel_x = -26
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
- },
-/area/engine/atmos)
"byX" = (
/obj/machinery/power/apc/highcap/ten_k{
areastring = "/area/engine/atmos";
@@ -39323,8 +39329,15 @@
/obj/structure/cable/yellow{
icon_state = "0-2"
},
-/obj/machinery/camera{
- c_tag = "Atmospherics - Entrance"
+/obj/machinery/light_switch{
+ pixel_x = -26
+ },
+/obj/machinery/pipedispenser/disposal/transit_tube,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -39333,16 +39346,27 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"byZ" = (
-/obj/machinery/space_heater,
/obj/machinery/firealarm{
pixel_y = 24
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/machinery/pipedispenser,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/camera{
+ c_tag = "Atmospherics - Entrance";
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bza" = (
@@ -40077,42 +40101,24 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bAE" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark/corner,
+/area/engine/atmos)
+"bAF" = (
/obj/structure/chair/office/dark{
dir = 4
},
/obj/effect/landmark/start/atmospheric_technician,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bAF" = (
-/obj/machinery/computer/atmos_control{
- dir = 8
- },
-/obj/machinery/requests_console{
- department = "Atmospherics";
- departmentType = 4;
- name = "Atmos RC";
- pixel_x = 30
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel/dark/corner,
-/area/engine/atmos)
"bAG" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/grenade/chem_grenade/smart_metal_foam,
-/obj/item/grenade/chem_grenade/smart_metal_foam,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring";
+ req_access_txt = "24"
},
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bAH" = (
/obj/structure/cable/yellow{
@@ -40121,6 +40127,7 @@
/obj/structure/cable/yellow{
icon_state = "2-4"
},
+/obj/machinery/light/small,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bAI" = (
@@ -40131,10 +40138,11 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bAJ" = (
-/obj/machinery/space_heater,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/machinery/pipedispenser/disposal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bAK" = (
@@ -40172,9 +40180,7 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bAQ" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bAR" = (
@@ -40841,12 +40847,12 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bCj" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
/obj/structure/cable/yellow{
icon_state = "2-8"
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bCk" = (
@@ -40856,39 +40862,50 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bCl" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/computer/atmos_control{
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
dir = 8
},
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/turf/open/floor/plasteel/dark/corner,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ id = "atmos";
+ name = "Atmospherics Lockdown";
+ pixel_x = 26;
+ pixel_y = -26;
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bCm" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/atmos)
-"bCn" = (
-/obj/structure/table,
-/obj/item/storage/belt/utility,
-/obj/item/t_scanner,
-/obj/item/t_scanner,
-/obj/item/t_scanner,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/yellow{
- dir = 8
+ dir = 4
},
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
+/obj/machinery/requests_console{
+ department = "Atmospherics";
+ departmentType = 4;
+ name = "Atmos RC";
+ pixel_x = 30
},
+/obj/machinery/vending/wardrobe/atmos_wardrobe,
+/turf/open/floor/plasteel/dark/corner,
+/area/engine/atmos)
+"bCn" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/atmos,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bCo" = (
/obj/structure/cable/yellow{
@@ -40897,25 +40914,27 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bCp" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring";
+ req_access_txt = "24"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bCq" = (
-/obj/machinery/space_heater,
-/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
/obj/effect/turf_decal/stripes/line{
dir = 10
},
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
/area/engine/atmos)
"bCr" = (
/obj/machinery/atmospherics/components/binary/pump/on{
@@ -40965,7 +40984,8 @@
/area/engine/atmos)
"bCy" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
},
/turf/open/floor/plating,
@@ -41608,35 +41628,22 @@
/area/engine/atmos)
"bDP" = (
/obj/machinery/holopad,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/cable/yellow{
icon_state = "1-4"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bDQ" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel/dark/corner,
-/area/engine/atmos)
-"bDR" = (
-/obj/machinery/door/airlock/atmos/glass{
- name = "Atmospherics Monitoring";
- req_access_txt = "24"
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bDS" = (
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
@@ -41658,6 +41665,9 @@
"bDV" = (
/obj/structure/closet/crate,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/camera{
+ c_tag = "Atmospherics - Entrance"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bDW" = (
@@ -42622,6 +42632,9 @@
name = "Atmospherics Blast Door"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/westleft{
+ req_access_txt = "24"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bFG" = (
@@ -42640,51 +42653,17 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bFI" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bFJ" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel/dark/corner,
-/area/engine/atmos)
-"bFK" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -24
- },
-/obj/machinery/button/door{
- id = "atmos";
- name = "Atmospherics Lockdown";
- pixel_x = 26;
- pixel_y = -26;
- req_access_txt = "24"
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner,
-/area/engine/atmos)
-"bFL" = (
-/obj/machinery/holopad,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bFM" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
@@ -42717,6 +42696,7 @@
name = "Distribution Loop";
req_access_txt = "24"
},
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bFQ" = (
@@ -42726,15 +42706,13 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bFR" = (
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bFS" = (
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 9
- },
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bFT" = (
@@ -42777,6 +42755,7 @@
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plating,
/area/engine/atmos)
"bFY" = (
@@ -43320,52 +43299,33 @@
/turf/open/floor/plasteel/dark/corner,
/area/hallway/primary/starboard)
"bHp" = (
-/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/light/small{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bHq" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bHr" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
/turf/open/floor/plasteel,
-/area/engine/atmos)
+/area/hallway/primary/starboard)
"bHs" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/machinery/light/small{
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bHt" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
- },
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bHu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
@@ -43387,9 +43347,8 @@
/area/engine/atmos)
"bHx" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/purple/visible,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
},
/turf/open/floor/plating,
/area/engine/atmos)
@@ -43418,8 +43377,8 @@
/area/engine/atmos)
"bHB" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
},
/turf/open/floor/plating,
/area/engine/atmos)
@@ -43991,13 +43950,13 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bIH" = (
@@ -44034,8 +43993,10 @@
/area/engine/atmos)
"bIK" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bIL" = (
@@ -44046,53 +44007,27 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bIM" = (
+"bIN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
},
-/turf/closed/wall/r_wall,
+/obj/machinery/suit_storage_unit/atmos,
+/turf/open/floor/plasteel,
/area/engine/atmos)
-"bIN" = (
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/rods/fifty,
-/obj/item/stack/rods/fifty,
+"bIO" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
-/obj/effect/turf_decal/bot{
- dir = 1
- },
-/turf/open/floor/plasteel{
- dir = 1
- },
-/area/engine/atmos)
-"bIO" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 8;
- name = "Air to External Air Ports"
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
- },
+/turf/closed/wall,
/area/engine/atmos)
"bIP" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bIQ" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 1
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Air to External Air Ports"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -44100,37 +44035,42 @@
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bIS" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
+/obj/item/beacon,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bIT" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 4
- },
/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bIU" = (
-/obj/machinery/atmospherics/pipe/simple/purple/visible,
-/obj/machinery/meter,
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Air to Ports"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bIV" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 6
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Mix to Ports"
},
-/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bIW" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
/area/engine/atmos)
"bIX" = (
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
@@ -44155,20 +44095,12 @@
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
"bIZ" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
name = "N2O to Pure"
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
-"bJa" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/atmos)
"bJb" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
@@ -44837,7 +44769,6 @@
/area/storage/tcom)
"bKt" = (
/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/airlock/engineering{
name = "Telecomms Storage";
req_access_txt = "61"
@@ -44849,69 +44780,47 @@
/turf/open/floor/plasteel,
/area/storage/tcom)
"bKu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
- },
-/turf/closed/wall/r_wall,
-/area/engine/atmos)
-"bKv" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "External Waste Ports to Filter"
- },
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -23
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
- },
-/area/engine/atmos)
-"bKw" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bKw" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bKx" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKy" = (
-/obj/item/beacon,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
},
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bKz" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
},
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bKA" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Air to Ports"
- },
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/closed/wall,
/area/engine/atmos)
"bKB" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Mix to Ports"
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
},
-/turf/open/floor/plasteel,
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bKC" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Pure to Ports"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKD" = (
@@ -44919,24 +44828,30 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKE" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKF" = (
/obj/machinery/computer/atmos_control/tank/nitrous_tank{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/structure/window/reinforced{
dir = 4
},
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
+ },
/turf/open/floor/plasteel/white/corner,
/area/engine/atmos)
"bKG" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bKH" = (
@@ -45526,6 +45441,9 @@
/area/crew_quarters/theatre)
"bLS" = (
/obj/machinery/vending/autodrobe,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
/turf/open/floor/wood,
/area/crew_quarters/theatre)
"bLT" = (
@@ -45543,14 +45461,19 @@
c_tag = "Telecomms - Storage";
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
/area/storage/tcom)
"bLV" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/holopad,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
/turf/open/floor/plasteel/dark,
/area/storage/tcom)
"bLW" = (
@@ -45578,9 +45501,6 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"bMa" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
/obj/machinery/portable_atmospherics/pump,
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -45591,82 +45511,62 @@
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
"bMb" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 1
- },
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 0;
+ name = "External to Filter"
+ },
/turf/open/floor/plasteel/white/corner{
dir = 1
},
/area/engine/atmos)
-"bMc" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bMd" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 9
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMe" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = -26
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics - Central";
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating,
/area/engine/atmos)
"bMf" = (
-/obj/structure/rack,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/black,
-/obj/item/clothing/gloves/color/black,
-/obj/item/clothing/gloves/color/black,
-/obj/item/clothing/mask/gas,
-/obj/item/clothing/mask/gas,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Port to External"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMg" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
},
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bMh" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible,
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/crew_quarters/theatre)
"bMi" = (
-/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/storage/tcom)
"bMj" = (
/obj/machinery/holopad,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMk" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
- dir = 1
- },
/obj/structure/window/reinforced{
dir = 4
},
@@ -45677,13 +45577,16 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/obj/machinery/portable_atmospherics/canister,
/turf/open/floor/plasteel/white/corner,
/area/engine/atmos)
"bMl" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bMm" = (
@@ -46474,57 +46377,46 @@
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/turf/open/floor/plating,
/area/maintenance/starboard)
-"bNP" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+"bNQ" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 9
},
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNR" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bNS" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
/turf/open/floor/plasteel/white/corner{
dir = 1
},
/area/engine/atmos)
-"bNQ" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = 27
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bNR" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
-/area/engine/atmos)
-"bNS" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = -27
- },
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Port Mix to West Ports"
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bNU" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Port Mix to East Ports"
- },
-/obj/item/crowbar,
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bNV" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/machinery/door/window/northleft{
dir = 8;
name = "Inner Pipe Access";
req_access_txt = "24"
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bNW" = (
@@ -47163,9 +47055,6 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"bPo" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
/obj/machinery/portable_atmospherics/scrubber,
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -47180,12 +47069,7 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPp" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel/white/corner{
dir = 1
},
@@ -47194,57 +47078,42 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPr" = (
-/obj/structure/closet/secure_closet/atmospherics,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{
+ dir = 1
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bPs" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
},
-/obj/machinery/portable_atmospherics/canister,
-/obj/effect/turf_decal/bot{
- dir = 1
- },
-/turf/open/floor/plasteel{
- dir = 1
- },
-/area/engine/atmos)
+/turf/closed/wall,
+/area/maintenance/starboard)
"bPt" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
+/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{
+ dir = 1
},
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bPu" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister,
-/obj/effect/turf_decal/bot{
- dir = 1
- },
-/turf/open/floor/plasteel{
- dir = 1
- },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bPv" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
- dir = 8
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "O2 to Airmix"
},
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bPw" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/structure/window/reinforced{
dir = 4
},
@@ -47262,8 +47131,8 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -47857,33 +47726,40 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"bQS" = (
-/obj/machinery/suit_storage_unit/atmos,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bQT" = (
-/obj/structure/sign/warning/nosmoking,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bQU" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos,
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bQV" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
},
-/obj/machinery/meter,
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/engine/atmos)
"bQW" = (
/obj/machinery/computer/atmos_control/tank/toxin_tank{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/structure/window/reinforced{
dir = 4
},
@@ -47897,6 +47773,7 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQX" = (
@@ -48507,38 +48384,24 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
/area/engine/atmos)
"bSh" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
-/obj/machinery/portable_atmospherics/canister,
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -23
- },
-/obj/effect/turf_decal/bot{
- dir = 1
- },
-/turf/open/floor/plasteel{
- dir = 1
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 9
},
+/turf/open/floor/plating,
/area/engine/atmos)
"bSi" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
-/obj/machinery/meter,
-/obj/item/wrench,
-/turf/open/floor/plasteel,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plating,
/area/engine/atmos)
"bSj" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{
- dir = 1
- },
/obj/structure/window/reinforced{
dir = 4
},
@@ -48553,6 +48416,8 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/space_heater,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSk" = (
@@ -48570,15 +48435,15 @@
/area/engine/atmos)
"bSn" = (
/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
- },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/structure/cable/yellow{
icon_state = "1-4"
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/maintenance/port)
"bSo" = (
@@ -48962,6 +48827,9 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/maintenance/starboard)
"bTe" = (
@@ -48995,41 +48863,18 @@
/obj/machinery/vending/wardrobe/atmos_wardrobe,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
-"bTj" = (
-/obj/machinery/requests_console{
- department = "Atmospherics";
- departmentType = 4;
- name = "Atmos RC";
- pixel_x = 30
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/shower{
- dir = 8;
- name = "emergency shower"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bTk" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Port to Filter"
- },
-/obj/machinery/light/small{
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
dir = 8
},
-/obj/machinery/camera{
- c_tag = "Atmospherics - Starboard";
- dir = 4
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/engine/atmos)
"bTl" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/heater{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
},
-/turf/open/floor/plasteel,
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bTm" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -49656,61 +49501,19 @@
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bUA" = (
-/obj/machinery/pipedispenser,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
},
-/turf/open/floor/plasteel,
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bUB" = (
-/obj/machinery/light{
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
dir = 1
},
-/obj/machinery/light_switch{
- pixel_y = 28
- },
-/obj/machinery/pipedispenser/disposal,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUC" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = 28
- },
-/obj/machinery/pipedispenser/disposal/transit_tube,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUD" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Port to Filter"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUE" = (
-/obj/item/cigbutt,
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUF" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUG" = (
-/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,
-/turf/open/floor/plasteel,
+/obj/structure/lattice/catwalk,
+/turf/open/space,
/area/engine/atmos)
"bUH" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/structure/window/reinforced{
dir = 4
},
@@ -49728,8 +49531,8 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 8
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
@@ -50163,7 +49966,6 @@
/turf/closed/wall,
/area/hallway/secondary/service)
"bVA" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/airlock{
name = "Service Hall";
req_access_txt = "null";
@@ -50226,17 +50028,20 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
/area/engine/atmos)
"bVG" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
- dir = 1
- },
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
@@ -50255,37 +50060,16 @@
/area/engine/atmos)
"bVI" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
+ dir = 9
},
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
/area/engine/atmos)
-"bVJ" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
-/obj/machinery/meter,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bVK" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bVL" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Port to Fuel Pipe"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bVM" = (
/obj/machinery/computer/atmos_control/tank/carbon_tank{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/structure/window/reinforced{
dir = 4
},
@@ -50299,6 +50083,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bVN" = (
@@ -50966,6 +50751,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard)
"bXe" = (
@@ -51012,9 +50798,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 5
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXh" = (
@@ -51024,19 +50807,6 @@
/obj/structure/disposalpipe/segment{
dir = 9
},
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Fuel Pipe to Filter"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXi" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/dark/visible{
- dir = 1
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXj" = (
@@ -51044,56 +50814,11 @@
icon_state = "1-8"
},
/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXk" = (
-/obj/effect/landmark/start/atmospheric_technician,
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXl" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXm" = (
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXn" = (
-/obj/machinery/atmospherics/pipe/manifold/dark/visible,
-/obj/machinery/meter{
- color = ""
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXo" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Pure to Fuel Pipe"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXp" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
- dir = 4
+ dir = 9
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXq" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{
- dir = 1
- },
/obj/structure/window/reinforced{
dir = 4
},
@@ -51108,6 +50833,8 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/space_heater,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bXr" = (
@@ -51562,8 +51289,8 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"bYt" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
},
/turf/open/floor/plating,
/area/maintenance/starboard)
@@ -51574,6 +51301,9 @@
icon_state = "1-2"
},
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/maintenance/starboard)
"bYv" = (
@@ -51600,36 +51330,11 @@
/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bYx" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bYy" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "N2 to Airmix"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bYz" = (
-/obj/machinery/atmospherics/components/trinary/mixer/airmix{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bYA" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 10
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bYB" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/machinery/light{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"bYC" = (
@@ -52135,9 +51840,6 @@
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
"bZF" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 5
- },
/obj/item/radio/intercom{
name = "Station Intercom (General)";
pixel_x = -30
@@ -52145,20 +51847,14 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel/dark/corner{
dir = 1
},
/area/engine/atmos)
-"bZG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 10
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bZH" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "N2 to Pure"
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 6
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -52168,13 +51864,6 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bZJ" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bZK" = (
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
dir = 1
@@ -52183,7 +51872,7 @@
/area/engine/atmos)
"bZL" = (
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
- dir = 4
+ dir = 1
},
/obj/machinery/meter,
/turf/open/floor/plasteel,
@@ -52193,7 +51882,6 @@
dir = 4
},
/obj/structure/table,
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/item/paper_bin{
pixel_x = -2;
pixel_y = 8
@@ -52205,6 +51893,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 9
+ },
/turf/open/floor/plasteel/dark/corner,
/area/engine/atmos)
"bZN" = (
@@ -52975,6 +52666,9 @@
name = "Inner Pipe Access";
req_access_txt = "24"
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"cbc" = (
@@ -52984,15 +52678,12 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"cbd" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
- dir = 4
- },
/obj/structure/window/reinforced,
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -53004,6 +52695,7 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cbe" = (
@@ -53011,9 +52703,6 @@
/obj/machinery/computer/atmos_control/tank/nitrogen_tank{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/dark/visible,
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -53029,13 +52718,6 @@
/area/engine/atmos)
"cbf" = (
/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "Nitrogen Outlet"
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -53046,6 +52728,10 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/obj/machinery/portable_atmospherics/canister,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cbg" = (
@@ -53059,16 +52745,14 @@
name = "Inner Pipe Access";
req_access_txt = "24"
},
-/obj/machinery/atmospherics/pipe/simple/green/visible{
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"cbh" = (
/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
- dir = 4
- },
/obj/effect/turf_decal/tile/blue{
dir = 1
},
@@ -53079,6 +52763,10 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plasteel,
/area/engine/atmos)
"cbi" = (
@@ -53086,9 +52774,6 @@
/obj/machinery/computer/atmos_control/tank/oxygen_tank{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/blue{
dir = 1
},
@@ -53099,17 +52784,13 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cbj" = (
/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "O2 to Airmix"
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/blue{
dir = 1
},
@@ -53120,6 +52801,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/components/trinary/mixer/airmix{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cbk" = (
@@ -53133,41 +52817,35 @@
name = "Inner Pipe Access";
req_access_txt = "24"
},
-/obj/machinery/atmospherics/pipe/simple/green/visible{
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"cbl" = (
/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/obj/machinery/portable_atmospherics/canister,
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
"cbn" = (
/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Air to Pure"
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
"cbo" = (
@@ -53175,15 +52853,21 @@
dir = 4
},
/obj/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 9
- },
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/structure/rack,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
/turf/open/floor/plasteel/cafeteria,
/area/engine/atmos)
"cbp" = (
@@ -53941,64 +53625,79 @@
/area/maintenance/disposal/incinerator)
"ccL" = (
/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
+ dir = 10
},
/turf/closed/wall/r_wall,
/area/engine/atmos)
"ccM" = (
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
+/obj/machinery/atmospherics/components/binary/valve/digital{
+ name = "Waste Release"
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"ccN" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"ccO" = (
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 9
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"ccP" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"ccQ" = (
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"ccR" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"ccS" = (
-/obj/machinery/light,
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"ccT" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 8
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Nitrogen Outlet"
},
-/turf/open/floor/plasteel/dark,
-/area/engine/atmos)
-"ccU" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
-"ccV" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 9
+"ccQ" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
},
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "N2 to Pure"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
+"ccR" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
+"ccS" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
+"ccT" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Air to Pure"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
+"ccV" = (
/obj/machinery/camera{
c_tag = "Atmospherics - Starboard Aft";
dir = 1
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"ccW" = (
@@ -54008,6 +53707,7 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plating,
/area/engine/atmos)
"ccX" = (
@@ -55275,11 +54975,6 @@
/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/space,
/area/space/nearstation)
-"cfv" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/turf/open/space,
-/area/space/nearstation)
"cfw" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
@@ -76245,11 +75940,8 @@
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
"cUR" = (
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/valve/digital{
- name = "Waste Release"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 5
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
@@ -76360,16 +76052,11 @@
/turf/open/space/basic,
/area/space)
"cVy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/engine/atmos)
-"cVz" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
},
-/obj/structure/lattice/catwalk,
-/turf/open/space,
+/turf/open/floor/plating,
/area/engine/atmos)
"cVC" = (
/mob/living/simple_animal/sloth/citrus,
@@ -76385,9 +76072,6 @@
/obj/machinery/computer/atmos_control/tank/air_tank{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/blue{
dir = 4
},
@@ -79052,43 +78736,23 @@
/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/space,
/area/space/nearstation)
-"dhe" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 10
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"dhg" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"dhh" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Mix to Engine"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"dhi" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/machinery/door/window/northleft{
dir = 8;
name = "Inner Pipe Access";
req_access_txt = "24"
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"dhj" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"dhk" = (
@@ -79096,6 +78760,7 @@
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plating,
/area/engine/atmos)
"dhl" = (
@@ -79673,12 +79338,12 @@
/obj/machinery/light/small{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
/obj/structure/sign/poster/contraband/clown{
pixel_x = 32
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/wood,
/area/crew_quarters/theatre)
"din" = (
@@ -80908,15 +80573,14 @@
/turf/open/floor/plating,
/area/engine/atmos)
"dBM" = (
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring";
+ req_access_txt = "24"
+ },
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/dark/corner{
- dir = 1
- },
+/turf/open/floor/plasteel,
/area/engine/atmos)
"dBN" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -81365,13 +81029,6 @@
},
/turf/open/floor/plasteel,
/area/hydroponics)
-"dDm" = (
-/obj/machinery/atmospherics/pipe/simple/dark/visible{
- dir = 4
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"dDo" = (
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel/white,
@@ -81590,6 +81247,15 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
+"dLd" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"dLK" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -81599,6 +81265,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard)
+"dOR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard)
"dYu" = (
/obj/machinery/door/airlock/external{
name = "Auxiliary Airlock"
@@ -81673,10 +81345,10 @@
/turf/open/floor/plating,
/area/crew_quarters/cryopod)
"eJq" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
- name = "CO2 to Pure"
+ name = "CO2 Outlet Pump"
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
@@ -81826,6 +81498,12 @@
/obj/item/integrated_circuit_printer,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"gRX" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"gXY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
@@ -81895,6 +81573,13 @@
},
/turf/open/floor/plasteel/white,
/area/science/lab)
+"izM" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Pure to Ports"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"iCn" = (
/obj/machinery/vr_sleeper,
/turf/open/floor/plasteel,
@@ -81903,6 +81588,13 @@
/obj/structure/table,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"iRL" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 0;
+ name = "Mix to Engine"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"iSt" = (
/obj/machinery/door/airlock/grunge,
/obj/structure/cable/yellow{
@@ -81934,6 +81626,14 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
+"jsc" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/camera{
+ c_tag = "Atmospherics - Aft";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/atmos)
"jwW" = (
/turf/closed/wall/mineral/plastitanium,
/area/crew_quarters/fitness/recreation)
@@ -81959,6 +81659,15 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/port/aft)
+"jAj" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"jBe" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -82072,6 +81781,9 @@
dir = 1;
name = "O2 to Pure"
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"kOt" = (
@@ -82298,11 +82010,11 @@
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"njd" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
name = "Plasma to Pure"
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"nnK" = (
@@ -82343,6 +82055,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard)
+"nBn" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"nIb" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/mining{
@@ -82355,6 +82073,15 @@
},
/turf/open/floor/plasteel,
/area/construction/storage/wing)
+"nLT" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
"nWb" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -82413,6 +82140,13 @@
/obj/structure/table/reinforced,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"oms" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"omz" = (
/obj/machinery/status_display/supply,
/turf/closed/wall,
@@ -82488,6 +82222,13 @@
/obj/structure/grille,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"pbF" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"pmc" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -82673,6 +82414,12 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
+"rpR" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"rzX" = (
/obj/structure/chair/office/light{
dir = 1;
@@ -82686,6 +82433,12 @@
},
/turf/open/floor/plasteel/white,
/area/science/lab)
+"rAc" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"rLV" = (
/obj/structure/table,
/obj/item/folder,
@@ -82753,6 +82506,13 @@
/obj/structure/grille,
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"siI" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Port to Filter"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"soe" = (
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
@@ -82771,6 +82531,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
+"stP" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Port to Fuel Pipe"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"syk" = (
/obj/machinery/door/airlock{
id_tag = "AuxShower";
@@ -82919,6 +82685,10 @@
/obj/machinery/cryopod,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/cryopod)
+"uku" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"upN" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -83137,6 +82907,12 @@
/obj/machinery/vending/cola/random,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"xgC" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"xkG" = (
/obj/item/integrated_electronics/wirer,
/obj/structure/table/reinforced,
@@ -121457,7 +121233,7 @@ bFA
byN
byN
byN
-byN
+bMh
byN
bPf
byN
@@ -121705,7 +121481,7 @@ bpc
dhQ
btw
buX
-bwY
+nLT
bGp
btw
dCV
@@ -121962,7 +121738,7 @@ alq
alq
alq
buY
-alq
+dOR
alq
alq
alq
@@ -121971,7 +121747,7 @@ alq
alq
alq
bKr
-bKr
+bMi
bKr
bKr
bKr
@@ -122477,7 +122253,7 @@ bry
bry
bva
bxa
-bry
+bHr
bAy
bAy
bDN
@@ -122991,7 +122767,7 @@ bhT
bhT
bvc
bxc
-bxc
+bHs
bAA
bCg
dBK
@@ -123247,7 +123023,7 @@ bpg
brA
bep
bvd
-bxd
+bxc
byR
bAB
bCh
@@ -123265,7 +123041,7 @@ bTh
bUx
aut
bXc
-apc
+bZz
bZE
caZ
ccJ
@@ -123504,7 +123280,7 @@ bpg
brB
bep
bve
-bxd
+bxc
byS
bAC
dBJ
@@ -123520,7 +123296,7 @@ apc
aqq
apc
bUy
-alq
+bPs
bXd
apf
bZE
@@ -123761,13 +123537,13 @@ bpg
brC
bep
bCK
-bxd
+bxc
byT
bAD
bCj
bDP
-bFI
-bHr
+bFH
+bHq
bIK
bBt
atm
@@ -123777,13 +123553,13 @@ apc
bSf
apc
bxc
-bxc
+bxg
bXe
bxc
bxc
bxc
ccL
-bxl
+bQT
cft
pOP
pOP
@@ -124018,13 +123794,13 @@ bph
brD
bep
bvg
-bxd
+bFI
byU
-bAE
-bCk
-dBJ
+bDU
+bKC
+bMd
bFJ
-bHs
+bHq
bIL
cVD
atm
@@ -124040,8 +123816,8 @@ bYv
bZF
cbb
ccM
-bxc
-aaf
+bQU
+bUB
aaf
aaf
aaf
@@ -124275,15 +124051,15 @@ bpi
brE
btz
bvh
-bxd
+bxc
byV
bAF
-bCl
-bDQ
-bFK
-bxk
-bIM
-bKu
+bCk
+dBJ
+bFH
+bHq
+bCk
+bxd
bxc
bxc
bxc
@@ -124294,11 +124070,11 @@ bxc
bVG
bXg
bAO
-bZG
+bCi
cbc
cUR
cVy
-cVz
+aaf
bAR
bAR
bAR
@@ -124533,14 +124309,14 @@ brF
bep
bvi
bxc
-bxc
-bxc
+byW
+bAE
bCm
-bDR
-bza
-bxl
+dBJ
+bCl
+bCn
bIN
-bxg
+bDQ
bMa
bMa
bPo
@@ -124554,7 +124330,7 @@ bCi
bCi
cbd
ccN
-ceg
+bQV
cfu
cgA
chN
@@ -124790,28 +124566,28 @@ brG
bep
bep
bxc
-byW
+bKy
bAG
-bCn
+bFR
dBM
-bFL
-bHt
+bza
+bIW
bIO
-bKv
+bMg
bMb
-bNP
+bNS
bPp
bPp
bSg
bDS
bDS
bVI
-bXi
+jAj
bYw
bYw
cbe
ccO
-bza
+bSh
aaf
gJs
chO
@@ -125054,22 +124830,22 @@ bDT
bFM
bHu
bIP
+dLd
bKw
-bMc
bNQ
bPq
bPq
-bHu
-bTj
-bHu
-bVJ
+bPq
+bPq
+bPq
+bPq
bXj
-bYx
-bMg
+bCi
+bCi
cbf
ccP
ceh
-cfv
+cfw
cgA
chP
cje
@@ -125310,23 +125086,23 @@ bCp
bDU
bFN
bAO
-bIQ
-bKx
-bMd
-bxd
-bPr
-bQS
-bPr
-bxd
-bUA
-bVK
-bXk
-bYy
+bIS
+siI
+bCi
+rAc
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bKD
+bCi
bZH
cbg
ccQ
-bza
-aaf
+bSi
+cfx
bAR
bAR
bAR
@@ -125568,17 +125344,17 @@ bDV
bFO
bHv
bIR
-bKy
-bMe
-bNR
-bNR
-bQT
-bNR
-bNR
-bUB
-bFO
-bXl
-bIS
+nBn
+stP
+xgC
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
bZI
cbh
ccR
@@ -125818,24 +125594,24 @@ bhT
bhT
bvm
bxg
-bza
-bza
-bza
-bza
-bFP
-bza
-bIS
bKz
+bKA
+bKA
+bMe
+bFP
+bMe
bMf
-bxd
-bPs
-bPs
-bSh
-bxd
-bUC
-bVK
-bXm
-bIS
+uku
+pbF
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
bZI
cbi
ccS
@@ -126082,20 +125858,20 @@ bDW
bFQ
bHw
bIT
-bKA
-bMg
-bNS
-bPt
-bQU
-bSi
-bTk
-bDW
-bFQ
-bXm
-bYz
-bZJ
+oms
+pbF
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bZI
cbj
-ccP
+bPv
ceh
cfw
cgA
@@ -126336,24 +126112,24 @@ bzc
bAL
ddF
bDX
-bFR
+bCi
bHx
bIU
-bKB
-bMh
+uku
+pbF
bCi
bCi
bKD
bCi
bCi
-bUD
bCi
-dDm
-bIS
+bCi
+dCY
+bCi
bZK
cbk
kJW
-ceh
+bSi
cfx
bAR
bAR
@@ -126594,22 +126370,22 @@ bAM
bCt
bDY
bFS
-bHy
+bKu
bIV
-bKC
-bMi
-bNU
-bMg
-bQV
-bMg
-bMg
-bUE
-bVL
-bXn
-bYA
-bZJ
+uku
+iRL
+rpR
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bZI
cbl
-bKG
+bQS
cei
cfy
cgB
@@ -126852,21 +126628,21 @@ bCu
bDZ
bFT
bHz
-bIW
+bNR
+izM
bKD
-dhe
-dhg
-bPu
-bPu
-bPu
-bTl
-bUF
+gRX
+bCi
+bCi
+bCi
+bCi
+bCi
bKD
-bXo
+bCi
bMj
bZI
cVJ
-ccQ
+ccS
bza
aaf
gJs
@@ -127111,20 +126887,20 @@ bFU
bHy
bIX
bKE
-bKE
-dhh
-bPv
-bKE
-bKE
-bKE
-bUG
-bKE
-bXp
-bKE
+bNR
+gRX
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
+bCi
bZL
cbn
ccT
-cei
+bTk
cfy
cgC
chV
@@ -127380,8 +127156,8 @@ bXq
bNV
bZM
cbo
-ccU
-bxc
+ccS
+bTl
aaf
bAR
bAR
@@ -127628,17 +127404,17 @@ bKG
bMl
dhj
njd
-bKG
-bMl
-bKG
+jsc
+bPr
+bNU
eJq
-bKG
-bMl
+bNU
+bPt
bYB
-bKG
-bKG
+bNU
+bNU
ccV
-bxc
+bTl
aaf
aaf
aaf
@@ -127875,27 +127651,27 @@ aaa
aaf
bxc
bxc
-bxc
+bKB
bCy
-bza
+cei
bFX
-bza
-bJa
-bza
+cei
+bCy
+cei
bFX
dhk
-bJa
-bza
+bCy
+cei
bFX
-bza
-bJa
-bza
+cei
+bCy
+cei
bFX
-bxc
-bxc
-bxc
+bPu
+bPu
+bPu
ccW
-bxc
+bUA
aaf
aaa
aaa
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index 2277e4a3ff..5f3a789f6f 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -46,13 +46,13 @@
/area/engine/engineering)
"aag" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
/turf/open/floor/plating,
/area/engine/engineering)
"aah" = (
@@ -4719,9 +4719,13 @@
/area/security/warden)
"aml" = (
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "0-8"
},
-/turf/closed/wall/r_wall,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
/area/security/warden)
"amm" = (
/obj/structure/cable{
@@ -5124,14 +5128,25 @@
dir = 8;
pixel_x = 28
},
-/turf/open/floor/plasteel/showroomfloor,
-/area/security/warden)
-"ana" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/closed/wall/r_wall,
+/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
+"ana" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"anb" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -5333,19 +5348,19 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/security/brig)
-"anB" = (
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"anB" = (
/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating,
/area/security/warden)
"anC" = (
@@ -5394,17 +5409,22 @@
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"anK" = (
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/open/floor/plating,
/area/security/warden)
"anL" = (
@@ -5671,6 +5691,9 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aop" = (
@@ -5887,11 +5910,10 @@
/turf/open/floor/plasteel/dark,
/area/security/brig)
"aoQ" = (
-/obj/structure/cable,
-/obj/structure/cable{
- icon_state = "0-2"
- },
/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/open/floor/plating,
/area/security/warden)
"aoR" = (
@@ -5949,6 +5971,9 @@
/obj/item/crowbar,
/obj/item/wrench,
/obj/item/laser_pointer/red,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"aoY" = (
@@ -5956,14 +5981,17 @@
/obj/machinery/light_switch{
pixel_y = -22
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"aoZ" = (
-/obj/structure/cable{
- icon_state = "0-2"
- },
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/open/floor/plating,
/area/security/warden)
"apa" = (
@@ -6237,32 +6265,22 @@
/turf/open/floor/plasteel,
/area/security/brig)
"apI" = (
+/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "0-2"
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/closed/wall/r_wall,
+/obj/structure/cable,
+/turf/open/floor/plating,
/area/security/warden)
"apJ" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/turf/open/floor/plating,
/area/security/warden)
"apK" = (
/obj/structure/table/reinforced,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
/obj/machinery/door/window/brigdoor{
dir = 1;
name = "Armory Desk";
@@ -6282,14 +6300,11 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"apL" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/turf/open/floor/plating,
/area/security/warden)
"apM" = (
@@ -6297,26 +6312,44 @@
name = "Brig Control";
req_access_txt = "3"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/obj/structure/disposalpipe/segment,
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"apN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/closed/wall/r_wall,
-/area/security/warden)
-"apO" = (
/obj/structure/cable{
icon_state = "1-8"
},
-/turf/closed/wall/r_wall,
-/area/security/warden)
+/turf/open/floor/plasteel,
+/area/security/brig)
+"apO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"apP" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{
@@ -6437,12 +6470,12 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aqo" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -6455,6 +6488,12 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aqp" = (
@@ -6482,12 +6521,21 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aqr" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aqs" = (
@@ -6498,6 +6546,12 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aqt" = (
@@ -6510,6 +6564,12 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aqu" = (
@@ -6518,6 +6578,9 @@
},
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"aqv" = (
@@ -7469,6 +7532,9 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"asx" = (
@@ -7488,6 +7554,12 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"asy" = (
@@ -7513,10 +7585,16 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"asA" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"asB" = (
@@ -7533,6 +7611,9 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"asC" = (
@@ -7930,31 +8011,34 @@
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/structure/cable{
- icon_state = "0-4"
- },
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/turf/open/floor/plating,
/area/security/brig)
"aty" = (
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
/obj/structure/cable{
- icon_state = "1-8"
+ icon_state = "2-8"
},
-/turf/closed/wall,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
/area/security/brig)
"atz" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/structure/cable,
/turf/open/floor/plating,
/area/security/brig)
"atA" = (
@@ -7962,9 +8046,6 @@
id = "Cell 2";
name = "Cell 2"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -7972,19 +8053,19 @@
/turf/open/floor/plasteel,
/area/security/brig)
"atB" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/closed/wall,
+/turf/open/floor/plasteel,
/area/security/brig)
"atC" = (
/obj/machinery/door/window/brigdoor/security/cell{
id = "Cell 3";
name = "Cell 3"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -7992,14 +8073,12 @@
/turf/open/floor/plasteel,
/area/security/brig)
"atD" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/turf/open/floor/plating,
/area/security/brig)
"atE" = (
@@ -8009,9 +8088,6 @@
name = "Brig";
req_access_txt = "63"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/red{
@@ -8023,13 +8099,11 @@
/turf/open/floor/plasteel,
/area/security/brig)
"atF" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
/obj/structure/cable{
icon_state = "0-2"
},
/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
/turf/open/floor/plating,
/area/security/brig)
"atG" = (
@@ -8443,6 +8517,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"auA" = (
@@ -8900,6 +8977,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"avv" = (
@@ -8931,6 +9011,9 @@
/obj/effect/turf_decal/tile/green{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"avy" = (
@@ -8962,6 +9045,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/security/brig)
"avB" = (
@@ -9541,18 +9627,21 @@
/turf/open/floor/plating,
/area/security/brig)
"awK" = (
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "2-4"
},
-/obj/machinery/door/poddoor/preopen{
- id = "Secure Gate";
- name = "brig shutters"
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/security/brig)
"awL" = (
/obj/machinery/door/firedoor,
@@ -9564,9 +9653,6 @@
name = "Brig";
req_access_txt = "63"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -9577,9 +9663,6 @@
/turf/open/floor/plasteel,
/area/security/brig)
"awM" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
/obj/structure/cable,
/obj/machinery/door/poddoor/preopen{
id = "Secure Gate";
@@ -23047,7 +23130,7 @@
name = "Hydroponics Desk";
req_access_txt = "35"
},
-/obj/item/reagent_containers/food/snacks/monkeycube,
+/obj/item/reagent_containers/food/snacks/cube/monkey,
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"bce" = (
@@ -37869,6 +37952,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/pipedispenser,
/turf/open/floor/engine,
/area/science/storage)
"bII" = (
@@ -37881,12 +37965,14 @@
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
+/obj/machinery/pipedispenser/disposal,
/turf/open/floor/engine,
/area/science/storage)
"bIJ" = (
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/machinery/pipedispenser/disposal/transit_tube,
/turf/open/floor/engine,
/area/science/storage)
"bIK" = (
@@ -38840,6 +38926,8 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/structure/reagent_dispensers/watertank/high,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKT" = (
@@ -38858,6 +38946,10 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKU" = (
@@ -38905,9 +38997,6 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKW" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-8"
},
@@ -38920,11 +39009,15 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKX" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 0;
+ name = "Mix to Engine"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -38943,10 +39036,10 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bKZ" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
"bLa" = (
@@ -39329,6 +39422,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bLZ" = (
@@ -39400,6 +39496,7 @@
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
dir = 4
},
+/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMf" = (
@@ -39409,6 +39506,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMh" = (
@@ -39423,6 +39523,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMi" = (
@@ -39863,53 +39966,49 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNd" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNe" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNf" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
+/obj/item/beacon,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNg" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "Air to Distro"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 5
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNh" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Mix to Ports"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNi" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 4
},
+/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNj" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 6
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Ports"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNk" = (
@@ -39919,13 +40018,13 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNl" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bNm" = (
@@ -40316,81 +40415,75 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/vending/wardrobe/atmos_wardrobe,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOj" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
-/obj/machinery/door/firedoor/heavy,
-/obj/machinery/door/airlock/atmos/glass{
- name = "Atmospherics Monitoring";
- req_access_txt = "24"
- },
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bOk" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOl" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+ dir = 10
+ },
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOm" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOn" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOo" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Mix to Port"
- },
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOp" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Pure to Mix"
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOq" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump/on{
+/obj/machinery/atmospherics/components/binary/pump{
dir = 1;
- name = "Unfiltered to Mix"
+ name = "Pure to Mix"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOr" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bOs" = (
/obj/structure/sign/warning/fire,
@@ -40593,133 +40686,65 @@
/area/engine/atmos)
"bOQ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+ dir = 10
},
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bOR" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
},
-/turf/closed/wall/r_wall,
+/turf/open/floor/plating,
/area/engine/atmos)
"bOS" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics Monitoring";
- dir = 1
- },
-/obj/machinery/space_heater,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/vg_decals/atmos/mix,
+/turf/open/floor/engine/vacuum,
/area/engine/atmos)
"bOT" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 5
},
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bOU" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Waste to Filter"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOV" = (
-/obj/structure/table,
-/obj/item/clothing/head/welding{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/clothing/head/welding{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/multitool{
- layer = 4
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bOW" = (
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/storage/belt/utility,
-/obj/item/t_scanner,
-/obj/item/t_scanner,
-/obj/item/t_scanner,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Air to External"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOX" = (
-/obj/structure/table,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/sheet/metal/fifty{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/stack/sheet/glass,
-/obj/item/stack/rods/fifty,
-/obj/item/pipe_dispenser,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bOY" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bOZ" = (
-/obj/machinery/meter,
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPa" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bPb" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Pure to Port"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bPc" = (
-/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bPd" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -40732,14 +40757,15 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPf" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
"bPg" = (
@@ -40957,60 +40983,76 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPO" = (
-/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 6
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPP" = (
-/obj/structure/tank_dispenser,
-/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPQ" = (
/turf/closed/wall,
/area/engine/atmos)
"bPR" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- name = "Waste In"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel,
+/turf/closed/wall,
/area/engine/atmos)
"bPS" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Atmospherics Central";
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPT" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Air to Port"
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = -27
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Air to Distro"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPU" = (
/obj/machinery/atmospherics/components/binary/pump{
- name = "Mix to Port"
+ name = "Air to Ports"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPV" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPW" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPX" = (
@@ -41025,6 +41067,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bPY" = (
@@ -41039,14 +41082,14 @@
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bQa" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/machinery/atmospherics/miner/n2o,
+/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bQb" = (
/obj/machinery/light/small{
dir = 4
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bQc" = (
@@ -41349,10 +41392,6 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQF" = (
-/obj/structure/chair/office/dark{
- dir = 8
- },
-/obj/effect/landmark/start/atmospheric_technician,
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
@@ -41362,54 +41401,48 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQG" = (
-/obj/machinery/computer/atmos_control{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQH" = (
-/obj/machinery/pipedispenser,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQI" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
/area/engine/atmos)
"bQJ" = (
-/obj/structure/closet/secure_closet/atmospherics,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Ports to Filter"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQK" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
},
-/obj/machinery/portable_atmospherics/canister,
-/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQL" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bQM" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bQN" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
- dir = 1
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Unfiltered to Mix"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -41683,105 +41716,88 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bRr" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor/heavy,
-/obj/machinery/door/window/northleft{
- dir = 4;
- name = "Atmospherics Desk";
- req_access_txt = "24"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "atmos";
- name = "atmospherics security door"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel,
+/turf/closed/wall/r_wall,
/area/engine/atmos)
"bRs" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/structure/chair/office/dark{
- dir = 8
- },
-/obj/effect/landmark/start/atmospheric_technician,
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/structure/tank_dispenser,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRt" = (
/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRw" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/obj/machinery/meter,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRx" = (
+/obj/machinery/computer/atmos_control,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bRy" = (
+/obj/structure/closet/secure_closet/atmospherics,
/obj/machinery/requests_console{
department = "Atmospherics";
departmentType = 4;
name = "Atmos RC";
pixel_x = 30
},
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/computer/atmos_alert{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bRv" = (
-/obj/machinery/pipedispenser/disposal,
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics Central";
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bRw" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/effect/turf_decal/tile/yellow{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bRx" = (
-/obj/machinery/suit_storage_unit/atmos,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bRy" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRz" = (
+/obj/structure/disposalpipe/segment,
/obj/machinery/holopad,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRA" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
+/obj/structure/chair/office/dark{
+ dir = 1
},
-/obj/machinery/meter,
+/obj/effect/landmark/start/atmospheric_technician,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRB" = (
@@ -41792,6 +41808,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bRC" = (
@@ -42030,6 +42047,11 @@
id = "atmos";
name = "atmospherics security door"
},
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Atmospherics Desk";
+ req_access_txt = "24"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSb" = (
@@ -42042,76 +42064,70 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/conveyor_switch{
+ id = "atmosdeliver"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSc" = (
-/obj/structure/disposalpipe/sorting/mail/flip{
- dir = 2;
- sortType = 6
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
+/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSd" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/suit_storage_unit/atmos,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bSe" = (
+/obj/machinery/suit_storage_unit/atmos,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bSe" = (
-/obj/machinery/pipedispenser/disposal/transit_tube,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSf" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 4
- },
-/obj/item/wrench,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bSg" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/light{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSh" = (
-/obj/machinery/camera{
- c_tag = "Atmospherics Starboard";
- dir = 8
- },
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
name = "Plasma Outlet Pump"
},
/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bSi" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/atmos)
"bSj" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
dir = 8;
@@ -42383,31 +42399,42 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSR" = (
-/obj/machinery/light{
- dir = 8
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
},
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Port to Filter"
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = -27
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
+ dir = 1
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSS" = (
-/obj/item/beacon,
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/atmospheric_technician,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bST" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
+/obj/machinery/computer/atmos_alert{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/obj/structure/chair/stool,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSU" = (
/obj/machinery/atmospherics/components/unary/thermomachine/heater{
- dir = 8
+ dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -42423,6 +42450,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bSW" = (
@@ -42432,14 +42460,14 @@
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bSX" = (
-/obj/machinery/portable_atmospherics/canister/toxins,
-/obj/machinery/atmospherics/miner/toxins,
+/obj/effect/turf_decal/vg_decals/atmos/plasma,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bSY" = (
/obj/machinery/light/small{
dir = 4
},
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bSZ" = (
@@ -42775,19 +42803,22 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTI" = (
/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 6
- },
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTJ" = (
@@ -42800,6 +42831,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTK" = (
@@ -42839,87 +42873,72 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTM" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTN" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = 30;
- pixel_y = 26
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTO" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/machinery/vending/wardrobe/atmos_wardrobe,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTP" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/structure/reagent_dispensers/watertank/high,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/structure/fireaxecabinet{
- pixel_y = 32
+ pixel_x = -32
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTQ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/structure/reagent_dispensers/fueltank,
-/obj/machinery/camera{
- c_tag = "Atmospherics Mixing"
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTR" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Port to Filter"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTS" = (
-/obj/item/cigbutt,
-/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bTT" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bTU" = (
+"bTN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"bTP" = (
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{
dir = 1
},
+/obj/machinery/camera{
+ c_tag = "Atmospherics Starboard";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTQ" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "atmospherics security door"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/effect/turf_decal/delivery,
+/obj/structure/closet/firecloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTR" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bTT" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bTV" = (
@@ -43066,9 +43085,6 @@
/obj/machinery/camera{
c_tag = "Engineering Access"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
- },
/obj/item/radio/intercom{
name = "Station Intercom (General)";
pixel_y = 24
@@ -43092,89 +43108,86 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUp" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 6
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUq" = (
/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUr" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 9
},
+/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUs" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "O2 to Pure"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUt" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUu" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUv" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "incinerator mix pump"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bUw" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 4
+ dir = 5
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bUx" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
+"bUv" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"bUw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUy" = (
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bUz" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/turf/open/floor/plating,
+/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bUA" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 10
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
-/turf/open/space,
-/area/space/nearstation)
+/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"bUC" = (
/obj/structure/flora/ausbushes/fernybush,
/turf/open/floor/plating/asteroid,
@@ -43466,12 +43479,12 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
/obj/effect/turf_decal/stripes/line{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/break_room)
"bVc" = (
@@ -43483,10 +43496,8 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bVd" = (
@@ -43516,35 +43527,42 @@
/obj/structure/disposalpipe/segment{
dir = 9
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bVg" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
},
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bVh" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 6
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/engine/atmos)
"bVi" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
- dir = 1
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/engine/atmos)
"bVj" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "incinerator mix pump"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bVk" = (
@@ -43556,24 +43574,25 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bVl" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plating,
/area/engine/atmos)
"bVm" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/purple/visible,
-/turf/open/space,
-/area/space/nearstation)
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plating,
+/area/engine/atmos)
"bVn" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{
dir = 8
@@ -43861,44 +43880,21 @@
},
/turf/open/floor/plasteel,
/area/engine/break_room)
-"bVV" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Waste to Space"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bVW" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bVX" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
+/turf/closed/wall/r_wall,
+/area/maintenance/disposal/incinerator)
"bVY" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "O2 to Pure"
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 1
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bVZ" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bWa" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "N2 to Pure"
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -43910,6 +43906,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bWc" = (
@@ -43917,24 +43914,19 @@
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plating,
/area/engine/atmos)
-"bWd" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/purple/visible,
-/turf/open/space,
-/area/space/nearstation)
"bWe" = (
/obj/machinery/air_sensor/atmos/carbon_tank,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bWf" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/obj/machinery/atmospherics/miner/carbon_dioxide,
+/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bWg" = (
/obj/machinery/light/small{
dir = 4
},
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bWh" = (
@@ -44251,43 +44243,34 @@
/area/engine/break_room)
"bWI" = (
/obj/machinery/portable_atmospherics/scrubber,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bWJ" = (
/obj/machinery/portable_atmospherics/pump,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/plasteel,
/area/engine/atmos)
-"bWK" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bWL" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"bWM" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bWN" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 10
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
},
/turf/open/floor/plasteel,
/area/engine/atmos)
"bWO" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bWP" = (
@@ -44298,8 +44281,8 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bWQ" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 10
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -44311,14 +44294,6 @@
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plating,
/area/engine/atmos)
-"bWS" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/purple/visible,
-/turf/open/space,
-/area/space/nearstation)
"bWT" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{
dir = 8
@@ -44497,11 +44472,13 @@
/area/engine/engineering)
"bXr" = (
/obj/machinery/portable_atmospherics/scrubber,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Waste to Space"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXs" = (
@@ -44510,14 +44487,22 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXt" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/effect/turf_decal/tile/yellow,
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXu" = (
@@ -44528,6 +44513,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXv" = (
@@ -44536,6 +44524,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXw" = (
@@ -44544,7 +44535,10 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXx" = (
@@ -44555,6 +44549,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXy" = (
@@ -44565,17 +44562,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"bXz" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
+/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXA" = (
@@ -44606,6 +44593,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXD" = (
@@ -44622,7 +44610,6 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXE" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
@@ -44633,6 +44620,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXF" = (
@@ -44646,15 +44634,13 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXG" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 9
},
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 6
- },
/turf/closed/wall/r_wall,
/area/engine/atmos)
"bXI" = (
@@ -44851,17 +44837,11 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
-"bYq" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/engine/atmos)
"bYs" = (
/obj/machinery/atmospherics/pipe/simple/green/hidden{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
"bYt" = (
@@ -44872,9 +44852,6 @@
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
"bYu" = (
-/obj/machinery/atmospherics/pipe/simple/green/hidden{
- dir = 9
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -44882,9 +44859,16 @@
name = "Incinerator";
req_access_txt = "24"
},
+/obj/machinery/atmospherics/pipe/simple/green/hidden{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
/turf/open/floor/plasteel/dark,
/area/maintenance/disposal/incinerator)
"bYv" = (
+/obj/machinery/atmospherics/pipe/simple/green/hidden{
+ dir = 9
+ },
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
"bYw" = (
@@ -45283,16 +45267,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"bZd" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/turf/open/space,
-/area/space/nearstation)
-"bZe" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/turf/open/space,
-/area/space/nearstation)
"bZf" = (
/obj/machinery/power/apc{
dir = 8;
@@ -45332,6 +45306,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
/turf/open/floor/plasteel/dark,
/area/maintenance/disposal/incinerator)
"bZh" = (
@@ -45350,7 +45325,6 @@
/area/maintenance/disposal/incinerator)
"bZi" = (
/obj/machinery/meter,
-/obj/machinery/atmospherics/pipe/simple/purple/visible,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -45499,10 +45473,12 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"bZK" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+/obj/structure/lattice,
+/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{
dir = 1
},
-/turf/open/floor/plating/airless,
+/obj/structure/lattice/catwalk,
+/turf/open/space,
/area/engine/atmos)
"bZL" = (
/obj/machinery/atmospherics/pipe/simple,
@@ -45543,6 +45519,9 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 5
+ },
/turf/open/floor/plasteel/dark,
/area/maintenance/disposal/incinerator)
"bZQ" = (
@@ -45562,11 +45541,14 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
/area/maintenance/disposal/incinerator)
"bZR" = (
/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 5
+ dir = 4
},
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
@@ -46019,16 +46001,14 @@
/turf/open/floor/engine/n2,
/area/engine/atmos)
"cbt" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/machinery/atmospherics/miner/nitrogen,
+/obj/effect/turf_decal/vg_decals/atmos/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"cbu" = (
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cbv" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/machinery/atmospherics/miner/oxygen,
+/obj/effect/turf_decal/vg_decals/atmos/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cbw" = (
@@ -46036,8 +46016,8 @@
/turf/open/floor/engine/air,
/area/engine/atmos)
"cbx" = (
-/obj/machinery/portable_atmospherics/canister/air,
/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/vg_decals/atmos/air,
/turf/open/floor/engine/air,
/area/engine/atmos)
"cby" = (
@@ -46238,10 +46218,12 @@
/area/engine/engineering)
"ccm" = (
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"ccn" = (
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cco" = (
@@ -49946,15 +49928,15 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"cqG" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/visible{
- dir = 4
- },
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"cqH" = (
@@ -53086,6 +53068,9 @@
dir = 1;
pixel_y = -22
},
+/obj/structure/reflector/double/anchored{
+ dir = 9
+ },
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"dFJ" = (
@@ -53126,7 +53111,9 @@
/area/medical/chemistry)
"dJk" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
/turf/open/floor/plating,
/area/engine/atmos)
"dJm" = (
@@ -53829,12 +53816,6 @@
},
/turf/open/floor/wood,
/area/lawoffice)
-"fuR" = (
-/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"fvb" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -54651,10 +54632,9 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"hjk" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 6
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
"hjD" = (
@@ -54668,6 +54648,17 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/engine/engineering)
+"hka" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/camera{
+ c_tag = "Atmospherics Console";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"hkQ" = (
/obj/machinery/light{
dir = 4
@@ -55483,6 +55474,23 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"jen" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"jeq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55636,6 +55644,20 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"jxK" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"jzz" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external,
@@ -55726,10 +55748,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
-"jLW" = (
-/obj/machinery/atmospherics/pipe/simple/purple/visible,
-/turf/closed/wall/r_wall,
-/area/maintenance/disposal/incinerator)
"jOB" = (
/turf/open/floor/plating,
/area/storage/emergency/starboard)
@@ -55851,6 +55869,16 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/medical/chemistry)
+"kas" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"kaR" = (
/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
dir = 8
@@ -56378,12 +56406,6 @@
/obj/machinery/atmospherics/pipe/manifold/general/visible,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"lhP" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"liR" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
@@ -56398,12 +56420,6 @@
/obj/machinery/atmospherics/pipe/simple/general/hidden,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"ljG" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"lms" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
@@ -56439,6 +56455,16 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"loL" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4;
+ filter_type = "n2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"lqc" = (
/obj/item/toy/gun,
/obj/effect/decal/cleanable/oil,
@@ -57604,6 +57630,7 @@
/area/maintenance/department/science)
"odM" = (
/obj/effect/landmark/barthpot,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/carpet,
/area/library/lounge)
"oep" = (
@@ -58211,10 +58238,13 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
"pmB" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "N2 to Pure"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"pnU" = (
@@ -58339,9 +58369,6 @@
/turf/open/space/basic,
/area/space/nearstation)
"pCo" = (
-/obj/structure/reflector/single/anchored{
- dir = 6
- },
/obj/machinery/light/small{
dir = 1
},
@@ -59008,6 +59035,22 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
+"rdB" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"reH" = (
/obj/item/reagent_containers/food/drinks/bottle/vodka,
/obj/structure/disposalpipe/segment{
@@ -59074,6 +59117,18 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"rjF" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/brig)
"rmC" = (
/turf/open/space/basic,
/area/space/station_ruins)
@@ -59708,13 +59763,6 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"tbw" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/open/space,
-/area/space/nearstation)
"tbF" = (
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
@@ -59857,10 +59905,10 @@
/turf/open/floor/engine,
/area/engine/engineering)
"tlV" = (
-/obj/structure/reflector/double/anchored{
- dir = 9
+/obj/structure/reflector/single/anchored{
+ dir = 6
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plating,
/area/engine/engineering)
"tnP" = (
/obj/machinery/seed_extractor,
@@ -60006,13 +60054,6 @@
/obj/item/wrench,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"tDE" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Mix to Engine"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"tHk" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -60063,6 +60104,19 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
+"tTZ" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"tXn" = (
/obj/structure/sink{
dir = 4;
@@ -60708,19 +60762,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"vsG" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/door/airlock/maintenance{
- name = "Research Lab Maintenance";
- req_one_access_txt = "7;29"
- },
-/turf/open/floor/plating,
-/area/maintenance/department/engine)
"vsJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral{
@@ -61281,13 +61322,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"wJP" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/purple/visible{
- dir = 9
- },
-/turf/open/space,
-/area/space/nearstation)
"wKa" = (
/obj/machinery/light/small,
/turf/open/floor/plating,
@@ -61303,12 +61337,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/heads/cmo)
-"wLK" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"wMF" = (
/obj/effect/spawner/lootdrop/three_course_meal,
/obj/effect/spawner/lootdrop/three_course_meal,
@@ -83125,7 +83153,7 @@ amf
amR
anA
aoo
-aoo
+ana
aoo
aqn
arl
@@ -83133,7 +83161,7 @@ asw
atx
auz
avu
-awJ
+rjF
axG
ayH
aAe
@@ -83381,16 +83409,16 @@ alx
amg
amg
anB
-ana
+amg
aoQ
-apI
+amg
aqo
alv
asx
-aty
ajM
ajM
-atB
+ajM
+akA
axH
ayI
aAf
@@ -83641,13 +83669,13 @@ anC
aop
aoR
apJ
-aqp
+apN
aon
-asy
+aty
atz
aux
avv
-awK
+awI
axG
ayL
aAi
@@ -83900,7 +83928,7 @@ aoS
apJ
aqq
aon
-asv
+atB
atA
auA
avw
@@ -84157,11 +84185,11 @@ aoT
apK
aqr
arl
-asw
-atx
+awK
+atD
auz
avx
-awJ
+rjF
axG
ayJ
aAg
@@ -84415,10 +84443,10 @@ apL
aqs
aon
asz
-atB
ajM
ajM
-atB
+ajM
+akA
axI
ayL
aAh
@@ -84671,11 +84699,11 @@ aoV
apJ
aqt
arm
-asy
+rdB
atz
aux
avy
-awK
+awI
axG
ayL
aAi
@@ -85182,14 +85210,14 @@ amY
anI
aor
aoX
-apJ
-aqt
+apI
+apO
aro
-asw
+jen
atD
auz
avA
-awJ
+rjF
axG
ayL
aAi
@@ -85434,19 +85462,19 @@ ajj
ajT
akP
alA
-amj
+aml
amZ
anJ
amX
aoY
-apN
+amg
sBA
arp
asB
-atB
ajM
ajM
-atB
+ajM
+akA
axJ
ayL
aAi
@@ -85691,15 +85719,15 @@ ahL
ahL
ahL
ahL
-aml
-ana
+amg
+amg
anK
aos
aoZ
-apO
+amg
aqv
aro
-asw
+jxK
atE
auB
avB
@@ -85956,7 +85984,7 @@ apa
agP
aqw
arp
-asC
+tTZ
atF
alv
alv
@@ -86474,7 +86502,7 @@ asE
ajM
auD
avC
-ajM
+akA
axJ
axG
aAm
@@ -87502,7 +87530,7 @@ asG
ajM
auH
avG
-auH
+awR
axM
ayR
aAo
@@ -93980,7 +94008,7 @@ jZG
bpY
bpY
bpY
-vsG
+bNZ
bva
bva
bva
@@ -94012,7 +94040,7 @@ bXk
pCo
wcs
wcs
-tlV
+wcs
eyj
qkM
miw
@@ -94266,7 +94294,7 @@ bZA
cam
mgz
aac
-cbX
+tlV
wcs
wcs
dEy
@@ -94528,7 +94556,7 @@ oHa
eWi
cbX
aac
-vlC
+loL
cgx
qeY
fyO
@@ -96054,7 +96082,7 @@ bRq
bCC
bSP
bTG
-bUo
+bTQ
bVc
bUo
bWH
@@ -96570,7 +96598,7 @@ bLW
bTH
bUp
bVe
-bVV
+bUp
bWI
bXr
bKQ
@@ -96820,14 +96848,14 @@ bMZ
bOh
bOP
bPO
-bPO
+bRz
bRt
bSc
bSQ
bTI
bUq
bVf
-bQI
+bMf
bWJ
bXs
bJN
@@ -97080,12 +97108,12 @@ bPP
bQG
bRu
bSd
-bLW
+bTO
bTJ
bMf
-bUs
bMf
-fuR
+bMf
+bMf
bXt
bYp
eAZ
@@ -97332,17 +97360,17 @@ bJN
bJN
bNb
bOj
-bOR
-bJN
-bJN
-bJN
-bJN
+bPQ
+bRx
+bRA
+bSS
+bST
bJN
bTK
-bUr
-bVg
-bVW
-bWL
+bMf
+bMf
+bMf
+bMf
bXu
bLW
cui
@@ -97589,19 +97617,19 @@ bJN
bLY
bNc
bOk
-bOS
bPQ
+bRy
+hka
bQH
-bRv
bSe
bPQ
bTL
-bUs
bMf
-bVX
+bMf
+bMf
bWM
bXv
-bWc
+bVh
poP
bZL
caB
@@ -97848,18 +97876,18 @@ bNd
bOl
bOT
bPR
+bPQ
+bPQ
bQI
-bQI
-bQI
-bQI
-bTM
-bUs
-ljG
+bPQ
+bNc
+bMf
+bMf
hjk
pmB
bXw
dJk
-tbw
+cui
bJP
bJP
bJP
@@ -98105,18 +98133,18 @@ bNe
bOm
bOU
bPS
-bPS
-bRw
-bMf
-bMf
+bSf
+bUp
+bTM
+bUp
bTN
-bUt
-wLK
-bOk
-bWK
-bXt
+bMf
+bMf
+bVZ
+bOX
+bUA
bYp
-bZd
+eAZ
bZL
caC
cbu
@@ -98359,21 +98387,21 @@ bJL
bKR
bMb
bNf
-bOk
+bQJ
bOV
-bPQ
-bQJ
-bRx
-bQJ
-bPQ
-bTO
-ljG
-lhP
-bOk
-bWL
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bVZ
+bOX
bXx
-bLW
-abI
+bVi
+cui
bMi
caD
cbv
@@ -98617,20 +98645,20 @@ bJN
bMc
bNg
bOn
-bOW
-bPQ
-bPQ
-bPQ
-bPQ
-bPQ
-bTP
-wLK
-bVh
+bOX
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
bVY
-bWM
-bXy
-bWc
-bZe
+bUs
+bVg
+bVm
+poP
bZL
caE
cbu
@@ -98872,22 +98900,22 @@ bIE
bJN
bJN
bMd
-bNf
-bOk
+bPT
+bOn
bOX
-bPQ
-bQK
-bQK
-bQK
-bPQ
-bTQ
-wLK
-bKX
-bOk
-bWN
-bXz
-bYq
-abI
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bVZ
+bOX
+kas
+bNm
+cui
bJP
bJP
bJP
@@ -99131,20 +99159,20 @@ bKS
bMe
bNh
bOo
-bOY
-bPT
-bQL
-bRy
-bSf
-bSR
-bTM
-wLK
-bKX
+bOX
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
bVZ
bWO
bXA
bQO
-bZe
+poP
bZM
caF
cbw
@@ -99385,23 +99413,23 @@ aht
aaa
bJN
bKT
-bMf
+bWM
bNi
-bOk
+bQK
bOZ
bMf
bMf
-bRz
bMf
-bSS
-bTR
-tDE
-bKX
-bWa
+bMf
+bMf
+bMf
+bMf
+bMf
+bVZ
bMf
bXB
bNm
-abI
+cui
bMi
caG
cbx
@@ -99642,23 +99670,23 @@ bCP
bAA
bHw
bKU
-bMf
-bMf
-bOk
-bPa
+bOr
bPU
-bOY
-bRA
-bOY
-bST
-bTS
-bUu
-bVi
-bMe
+bRw
+bPa
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bMf
+bVY
bWP
bXy
bQO
-bZe
+poP
bZN
caH
cby
@@ -99899,23 +99927,23 @@ bCR
bIF
bHw
bKV
+bOX
+bUv
+bQL
+bPa
+bMf
bMf
bMf
-bOk
-bPb
bMf
-bQM
-bQM
-bQM
bSU
bTT
bUv
bKX
-bMf
-bMf
+bTR
+bUt
bXC
bYs
-bYw
+bVW
bYw
bYw
cBT
@@ -100159,17 +100187,17 @@ bKW
bMg
bNj
bOp
-bPc
bPV
bPV
bPV
-bSg
bPV
bPV
bUw
+bUw
+bUw
bVj
-bMg
-bMg
+bTS
+bUu
bXD
bYt
bZf
@@ -100413,19 +100441,19 @@ bCR
bIH
bHw
cqG
-bMf
+bOX
bNk
bOq
bPd
bPW
-bQN
+bPW
bPW
bPd
bPW
-bTU
-bUx
-bPd
bPW
+bPW
+bPd
+bUr
bWQ
bXE
bYu
@@ -100672,18 +100700,18 @@ bHw
bKY
bMh
bNl
-bOi
+bQM
bPe
bPX
-bNl
+bSR
bRB
bSh
bSV
-bNl
+bTP
bUy
bVk
bWb
-bNl
+bUz
bXF
bYv
bZh
@@ -100927,22 +100955,22 @@ bHv
bIJ
bHw
bKZ
-bLW
-bNm
-bOr
+bOR
+bWR
+bWc
bPf
bPY
bQO
bPY
-bSi
+bPf
bPY
bQO
-bUz
+bWc
bVl
bWc
bWR
bXG
-jLW
+bYw
bZi
bZR
caL
@@ -101194,11 +101222,11 @@ abI
bLa
abI
bNn
-bUA
-bVm
-bWd
-bWS
-wJP
+abI
+bLa
+abI
+bNn
+abI
aht
bZj
bZS
@@ -101955,7 +101983,7 @@ buz
abI
bJP
bLd
-bLe
+bOS
bLe
bJP
bPh
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index c9b81cefd9..d015547ac4 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -7639,7 +7639,7 @@
/obj/item/clothing/suit/space/hardsuit/deathsquad{
pixel_y = 5
},
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat/swat,
/obj/item/clothing/mask/gas/sechailer/swat,
/obj/effect/turf_decal/stripes/line,
@@ -16752,7 +16752,7 @@
},
/area/centcom/holding)
"Nf" = (
-/obj/machinery/autoylathe,
+/obj/machinery/autolathe/toy,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Ni" = (
diff --git a/_maps/shuttles/cargo_kilo.dmm b/_maps/shuttles/cargo_kilo.dmm
index 6d9d543842..86660a4dc7 100644
--- a/_maps/shuttles/cargo_kilo.dmm
+++ b/_maps/shuttles/cargo_kilo.dmm
@@ -3,50 +3,30 @@
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"b" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"c" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"d" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"e" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 10
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"f" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -55,18 +35,7 @@
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
-"g" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
-/turf/open/floor/mineral/titanium/yellow,
-/area/shuttle/supply)
"h" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 4
},
@@ -91,20 +60,10 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
"k" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"l" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 4
},
@@ -126,10 +85,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
"n" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -140,20 +95,12 @@
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"o" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"p" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
@@ -176,10 +123,6 @@
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"q" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 4
},
@@ -196,19 +139,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
-"s" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/mineral/titanium/yellow,
-/area/shuttle/supply)
"t" = (
/obj/machinery/door/poddoor{
id = "QMLoaddoor2";
@@ -228,28 +158,15 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
"v" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/end{
dir = 8
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"w" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"x" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 6
},
@@ -260,10 +177,6 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/supply)
"z" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
@@ -290,6 +203,27 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
+"K" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/yellow,
+/area/shuttle/supply)
+"Q" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/yellow,
+/area/shuttle/supply)
+"Z" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/yellow,
+/area/shuttle/supply)
(1,1,1) = {"
a
@@ -323,12 +257,12 @@ C
a
c
o
-g
-k
-g
+K
+Z
+w
o
-g
-s
+K
+Q
e
A
D
@@ -336,13 +270,13 @@ D
(4,1,1) = {"
a
c
-g
-g
-g
-g
-g
-g
-g
+w
+w
+w
+w
+w
+w
+w
z
A
D
@@ -350,13 +284,13 @@ D
(5,1,1) = {"
a
c
-g
-g
-g
-g
-g
-g
w
+w
+w
+w
+w
+w
+k
x
A
D
diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm
index 3c2da5ae85..c7aa1f28ce 100644
--- a/_maps/shuttles/emergency_kilo.dmm
+++ b/_maps/shuttles/emergency_kilo.dmm
@@ -144,7 +144,6 @@
pixel_y = 4
},
/obj/item/folder/blue,
-/obj/item/gun/energy/e_gun/mini,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"av" = (
@@ -172,10 +171,6 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"ax" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
},
@@ -288,10 +283,6 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"aM" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
@@ -301,10 +292,6 @@
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"aN" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -725,10 +712,6 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"bB" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
@@ -791,14 +774,6 @@
/obj/machinery/recharge_station,
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
-"bG" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/mineral/titanium/yellow,
-/area/shuttle/escape)
"bH" = (
/obj/structure/reagent_dispensers/watertank,
/obj/effect/turf_decal/bot,
@@ -1057,20 +1032,12 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"cj" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"ck" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"cm" = (
@@ -1079,27 +1046,15 @@
/area/shuttle/escape)
"cr" = (
/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"cs" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
},
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"cA" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 10
},
@@ -1159,10 +1114,6 @@
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"Xo" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
@@ -1543,7 +1494,7 @@ bn
bi
ac
cj
-bG
+cr
bR
cK
cT
diff --git a/_maps/shuttles/ferry_kilo.dmm b/_maps/shuttles/ferry_kilo.dmm
index 744d09d373..a905f8a0de 100644
--- a/_maps/shuttles/ferry_kilo.dmm
+++ b/_maps/shuttles/ferry_kilo.dmm
@@ -70,10 +70,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"m" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
@@ -115,10 +111,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"r" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -126,10 +118,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"s" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/corner{
dir = 1
diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm
index 1dffe12884..d2effaa35b 100644
--- a/_maps/shuttles/infiltrator_basic.dmm
+++ b/_maps/shuttles/infiltrator_basic.dmm
@@ -505,9 +505,7 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/syndicate/airlock)
"bd" = (
-/obj/structure/sign/warning/vacuum/external{
- layer = 4
- },
+/obj/structure/sign/warning/vacuum/external,
/turf/closed/wall/r_wall/syndicate,
/area/shuttle/syndicate/airlock)
"be" = (
@@ -808,6 +806,10 @@
"bQ" = (
/obj/structure/closet/syndicate/personal,
/obj/effect/turf_decal/bot_white,
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plasteel/dark,
/area/shuttle/syndicate/armory)
"bR" = (
@@ -848,6 +850,10 @@
"bX" = (
/obj/structure/closet/syndicate/nuclear,
/obj/effect/turf_decal/bot_white,
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plasteel/dark,
/area/shuttle/syndicate/armory)
"bY" = (
diff --git a/_maps/shuttles/labour_kilo.dmm b/_maps/shuttles/labour_kilo.dmm
index 9ee9a38f07..6b70922475 100644
--- a/_maps/shuttles/labour_kilo.dmm
+++ b/_maps/shuttles/labour_kilo.dmm
@@ -29,10 +29,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"f" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 9
},
@@ -47,10 +43,6 @@
req_access_txt = "1"
},
/obj/machinery/light,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -63,10 +55,6 @@
pixel_x = 30;
pixel_y = 30
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -111,10 +99,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"l" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
@@ -127,10 +111,6 @@
/obj/machinery/light{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -141,17 +121,12 @@
machinedir = 1;
pixel_x = 30
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"o" = (
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -164,10 +139,6 @@
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"p" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
@@ -177,9 +148,6 @@
pixel_x = 25
},
/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
/obj/structure/chair/comfy/shuttle{
dir = 8
},
@@ -189,31 +157,12 @@
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"r" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/structure/closet/crate,
/obj/effect/turf_decal/delivery,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/labor)
-"s" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
-/obj/effect/turf_decal/loading_area{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/mineral/titanium/yellow,
-/area/shuttle/labor)
"t" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/labor)
@@ -284,7 +233,7 @@ g
a
m
p
-s
+t
w
y
"}
diff --git a/_maps/shuttles/mining_kilo.dmm b/_maps/shuttles/mining_kilo.dmm
index 1de45c713c..5609ecfc06 100644
--- a/_maps/shuttles/mining_kilo.dmm
+++ b/_maps/shuttles/mining_kilo.dmm
@@ -15,7 +15,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"d" = (
-/obj/effect/turf_decal/bot,
/obj/machinery/computer/shuttle/mining,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
@@ -31,10 +30,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"f" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 9
},
@@ -48,10 +43,6 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"h" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -61,20 +52,12 @@
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"i" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"j" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/machinery/status_display/evac{
pixel_x = -32
},
@@ -114,10 +97,6 @@
/turf/open/floor/plating,
/area/shuttle/mining)
"m" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -134,10 +113,6 @@
/turf/open/floor/plating/airless,
/area/shuttle/mining)
"p" = (
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 1
- },
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm
index c002e66d53..9bd9d335c9 100644
--- a/_maps/shuttles/pirate_default.dmm
+++ b/_maps/shuttles/pirate_default.dmm
@@ -943,6 +943,9 @@
/obj/item/grenade/smokebomb{
pixel_x = 5
},
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/pickaxe/drill/diamonddrill,
+/obj/item/pickaxe/drill/diamonddrill,
/turf/open/floor/pod/light,
/area/shuttle/pirate)
"ep" = (
diff --git a/byond-extools.dll b/byond-extools.dll
new file mode 100644
index 0000000000..a83ea1e543
Binary files /dev/null and b/byond-extools.dll differ
diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm
index 65be8258a1..bad64846d6 100644
--- a/code/__DEFINES/MC.dm
+++ b/code/__DEFINES/MC.dm
@@ -25,35 +25,38 @@
//SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)
//subsystem does not initialize.
-#define SS_NO_INIT 1
+#define SS_NO_INIT (1<<0)
//subsystem does not fire.
// (like can_fire = 0, but keeps it from getting added to the processing subsystems list)
// (Requires a MC restart to change)
-#define SS_NO_FIRE 2
+#define SS_NO_FIRE (1<<1)
//subsystem only runs on spare cpu (after all non-background subsystems have ran that tick)
// SS_BACKGROUND has its own priority bracket
-#define SS_BACKGROUND 4
+#define SS_BACKGROUND (1<<2)
//subsystem does not tick check, and should not run unless there is enough time (or its running behind (unless background))
-#define SS_NO_TICK_CHECK 8
+#define SS_NO_TICK_CHECK (1<<3)
//Treat wait as a tick count, not DS, run every wait ticks.
// (also forces it to run first in the tick, above even SS_NO_TICK_CHECK subsystems)
// (implies all runlevels because of how it works)
// (overrides SS_BACKGROUND)
// This is designed for basically anything that works as a mini-mc (like SStimer)
-#define SS_TICKER 16
+#define SS_TICKER (1<<4)
//keep the subsystem's timing on point by firing early if it fired late last fire because of lag
// ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
-#define SS_KEEP_TIMING 32
+#define SS_KEEP_TIMING (1<<5)
//Calculate its next fire after its fired.
// (IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be)
// This flag overrides SS_KEEP_TIMING
-#define SS_POST_FIRE_TIMING 64
+#define SS_POST_FIRE_TIMING (1<<6)
+
+/// Show in stat() by default even if SS_NO_FIRE
+#define SS_ALWAYS_SHOW_STAT (1<<7)
//SUBSYSTEM STATES
#define SS_IDLE 0 //aint doing shit.
diff --git a/code/__DEFINES/__513_compatibility.dm b/code/__DEFINES/__513_compatibility.dm
deleted file mode 100644
index 12577fb68b..0000000000
--- a/code/__DEFINES/__513_compatibility.dm
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#if DM_VERSION < 513
-
-#define ismovableatom(A) (istype(A, /atom/movable))
-
-#define islist(L) (istype(L, /list))
-
-#define CLAMP01(x) (CLAMP(x, 0, 1))
-
-#define CLAMP(CLVALUE,CLMIN,CLMAX) ( max( (CLMIN), min((CLVALUE), (CLMAX)) ) )
-
-#define ATAN2(x, y) ( !(x) && !(y) ? 0 : (y) >= 0 ? arccos((x) / sqrt((x)*(x) + (y)*(y))) : -arccos((x) / sqrt((x)*(x) + (y)*(y))) )
-
-#define TAN(x) (sin(x) / cos(x))
-
-#define arctan(x) (arcsin(x/sqrt(1+x*x)))
-
-//////////////////////////////////////////////////
-
-#else
-
-#define ismovableatom(A) ismovable(A)
-
-#define CLAMP01(x) clamp(x, 0, 1)
-
-#define CLAMP(CLVALUE, CLMIN, CLMAX) clamp(CLVALUE, CLMIN, CLMAX)
-
-#define TAN(x) tan(x)
-
-#define ATAN2(x, y) arctan(x, y)
-
-#endif
diff --git a/code/__DEFINES/_tick.dm b/code/__DEFINES/_tick.dm
index 10b815e547..fc6147c430 100644
--- a/code/__DEFINES/_tick.dm
+++ b/code/__DEFINES/_tick.dm
@@ -1,13 +1,28 @@
-#define TICK_LIMIT_RUNNING 80
+/// Percentage of tick to leave for master controller to run
+#define MAPTICK_MC_MIN_RESERVE 70
+/// internal_tick_usage is updated every tick by extools
+#define MAPTICK_LAST_INTERNAL_TICK_USAGE ((GLOB.internal_tick_usage / world.tick_lag) * 100)
+/// Tick limit while running normally
+#define TICK_BYOND_RESERVE 2
+#define TICK_LIMIT_RUNNING (max(100 - TICK_BYOND_RESERVE - MAPTICK_LAST_INTERNAL_TICK_USAGE, MAPTICK_MC_MIN_RESERVE))
+/// Tick limit used to resume things in stoplag
#define TICK_LIMIT_TO_RUN 70
+/// Tick limit for MC while running
#define TICK_LIMIT_MC 70
-#define TICK_LIMIT_MC_INIT_DEFAULT 98
+/// Tick limit while initializing
+#define TICK_LIMIT_MC_INIT_DEFAULT (100 - TICK_BYOND_RESERVE)
-#define TICK_USAGE world.tick_usage //for general usage
-#define TICK_USAGE_REAL world.tick_usage //to be used where the result isn't checked
+/// for general usage of tick_usage
+#define TICK_USAGE world.tick_usage
+/// to be used where the result isn't checked
+#define TICK_USAGE_REAL world.tick_usage
+/// Returns true if tick_usage is above the limit
#define TICK_CHECK ( TICK_USAGE > Master.current_ticklimit )
+/// runs stoplag if tick_usage is above the limit
#define CHECK_TICK ( TICK_CHECK ? stoplag() : 0 )
+/// Returns true if tick usage is above 95, for high priority usage
#define TICK_CHECK_HIGH_PRIORITY ( TICK_USAGE > 95 )
+/// runs stoplag if tick_usage is above 95, for high priority usage
#define CHECK_TICK_HIGH_PRIORITY ( TICK_CHECK_HIGH_PRIORITY? stoplag() : 0 )
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index e728d49956..2b19b557b2 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -161,10 +161,14 @@
#define ATMOS_TANK_O2 "o2=100000;TEMP=293.15"
#define ATMOS_TANK_N2 "n2=100000;TEMP=293.15"
#define ATMOS_TANK_AIRMIX "o2=2644;n2=10580;TEMP=293.15"
+
//LAVALAND
#define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //what pressure you have to be under to increase the effect of equipment meant for lavaland
#define LAVALAND_DEFAULT_ATMOS "o2=14;n2=23;TEMP=300"
+//SNOSTATION
+#define ICEMOON_DEFAULT_ATMOS "o2=17;n2=63;TEMP=180"
+
//ATMOSIA GAS MONITOR TAGS
#define ATMOS_GAS_MONITOR_INPUT_O2 "o2_in"
#define ATMOS_GAS_MONITOR_OUTPUT_O2 "o2_out"
@@ -255,10 +259,10 @@
//HELPERS
#define PIPING_LAYER_SHIFT(T, PipingLayer) \
- if(T.dir & NORTH || T.dir & SOUTH) { \
+ if(T.dir & (NORTH|SOUTH)) { \
T.pixel_x = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_X;\
} \
- if(T.dir & WEST || T.dir & EAST) { \
+ if(T.dir & (WEST|EAST)) { \
T.pixel_y = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y;\
}
@@ -294,6 +298,8 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0))
#define ARCHIVE_TEMPERATURE(gas) gas.temperature_archived = gas.temperature
+#define ARCHIVE(gas) gas.temperature_archived = gas.temperature; gas.gas_archive = gas.gases.Copy();
+
GLOBAL_LIST_INIT(pipe_paint_colors, list(
"amethyst" = rgb(130,43,255), //supplymain
"blue" = rgb(0,0,255),
diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm
index cc2cd8834a..3d15412efe 100644
--- a/code/__DEFINES/colors.dm
+++ b/code/__DEFINES/colors.dm
@@ -43,6 +43,7 @@
#define COLOR_RED_GRAY "#B4696A"
#define COLOR_PALE_BLUE_GRAY "#98C5DF"
#define COLOR_PALE_GREEN_GRAY "#B7D993"
+#define COLOR_PALE_ORANGE "#FFC066"
#define COLOR_PALE_RED_GRAY "#D59998"
#define COLOR_PALE_PURPLE_GRAY "#CBB1CA"
#define COLOR_PURPLE_GRAY "#AE8CA8"
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 14c78f90d0..6ef8b07ddd 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -35,9 +35,9 @@
/// Default combat flags for those affected by ((stamina combat))
#define COMBAT_FLAGS_DEFAULT NONE
/// Default combat flags for everyone else (so literally everyone but humans)
-#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED)
+#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_SPRINT_FORCED | COMBAT_FLAG_COMBAT_FORCED)
/// Default combat flags for those only affected by sprint (so just silicons)
-#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED)
+#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_COMBAT_FORCED)
/// The user wants combat mode on
#define COMBAT_FLAG_COMBAT_TOGGLED (1<<0)
@@ -57,6 +57,10 @@
#define COMBAT_FLAG_INTENTIONALLY_RESTING (1<<7)
/// Currently stamcritted but not as violently
#define COMBAT_FLAG_SOFT_STAMCRIT (1<<8)
+/// Force combat mode on at all times, overrides everything including combat disable traits.
+#define COMBAT_FLAG_COMBAT_FORCED (1<<9)
+/// Force sprint mode on at all times, overrides everything including sprint disable traits.
+#define COMBAT_FLAG_SPRINT_FORCED (1<<10)
// Helpers for getting someone's stamcrit state. Cast to living.
#define NOT_STAMCRIT 0
@@ -111,9 +115,6 @@
#define GRAB_NECK 2
#define GRAB_KILL 3
-//slowdown when in softcrit
-#define SOFTCRIT_ADD_SLOWDOWN 6
-
/// Attack types for check_block()/run_block(). Flags, combinable.
/// Attack was melee, whether or not armed.
#define ATTACK_TYPE_MELEE (1<<0)
@@ -251,13 +252,32 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
#define TOTAL_MASS_MEDIEVAL_WEAPON 3.6 //very, very generic average sword/warpick/etc. weight in pounds.
#define TOTAL_MASS_TOY_SWORD 1.5
+//stamina cost defines.
+#define STAM_COST_ATTACK_OBJ_MULT 1.2
+#define STAM_COST_ATTACK_MOB_MULT 0.8
+#define STAM_COST_BATON_MOB_MULT 1
+#define STAM_COST_NO_COMBAT_MULT 1.25
+#define STAM_COST_W_CLASS_MULT 1.25
+#define STAM_COST_THROW_MULT 2
+
+
//bullet_act() return values
#define BULLET_ACT_HIT "HIT" //It's a successful hit, whatever that means in the context of the thing it's hitting.
#define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting.
#define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default.
#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs.
-/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
+/// Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields.
+/// Wrapper for do_run_block(). The arguments on that means the same as for this.
+#define mob_check_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
+ do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
+
+/// Runs a block "sequence", effectively checking and then doing effects if necessary.
+/// Wrapper for do_run_block(). The arguments on that means the same as for this.
+#define mob_run_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
+ do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
+
+/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
/// Attack was not blocked
#define BLOCK_NONE NONE
/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION!
@@ -302,8 +322,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
/// Block priorities
#define BLOCK_PRIORITY_HELD_ITEM 100
-#define BLOCK_PRIORITY_CLOTHING 50
#define BLOCK_PRIORITY_WEAR_SUIT 75
+#define BLOCK_PRIORITY_CLOTHING 50
#define BLOCK_PRIORITY_UNIFORM 25
#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM
diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm
index 2f54d066a0..77ec97f47e 100644
--- a/code/__DEFINES/construction.dm
+++ b/code/__DEFINES/construction.dm
@@ -59,8 +59,6 @@
//let's just pretend fulltile windows being children of border windows is fine
#define FULLTILE_WINDOW_DIR NORTHEAST
-//The amount of materials you get from a sheet of mineral like iron/diamond/glass etc
-#define MINERAL_MATERIAL_AMOUNT 2000
//The maximum size of a stack object.
#define MAX_STACK_SIZE 50
//maximum amount of cable in a coil
diff --git a/code/__DEFINES/dcs/flags.dm b/code/__DEFINES/dcs/flags.dm
index 3210341cc3..59c0c58b8d 100644
--- a/code/__DEFINES/dcs/flags.dm
+++ b/code/__DEFINES/dcs/flags.dm
@@ -40,6 +40,7 @@
#define CALTROP_BYPASS_SHOES 1
#define CALTROP_IGNORE_WALKERS 2
+// Spellcasting
#define SPELL_SKIP_ALL_REQS (1<<0)
#define SPELL_SKIP_CENTCOM (1<<1)
#define SPELL_SKIP_STAT (1<<2)
@@ -53,3 +54,24 @@
#define SPELL_CULT_ARMOR (1<<10)
#define SPELL_WIZARD_GARB (SPELL_WIZARD_HAT|SPELL_WIZARD_ROBE)
#define SPELL_CULT_GARB (SPELL_CULT_HELMET|SPELL_CULT_ARMOR)
+
+//// Identification ////
+// /datum/component/identification/identification_flags
+/// Delete on successful broad identification (so the main way we "uncover" how an object works, since this won't be on it to obfuscate it)
+#define ID_COMPONENT_DEL_ON_IDENTIFY (1<<0)
+/// We've already been successfully deepscanned by a deconstructive analyzer
+#define ID_COMPONENT_DECONSTRUCTOR_DEEPSCANNED (1<<1)
+
+// /datum/component/identification/identification_effect_flags
+/// Block user from getting actions if they don't know how to use this. Triggered on equip.
+#define ID_COMPONENT_EFFECT_NO_ACTIONS (1<<0)
+
+// /datum/component/identification/identification_method_flags
+/// Can be identified in a deconstructive analyzer
+#define ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR (1<<0)
+
+// Return values for /datum/component/deitnfication/check_knowledge()
+/// Has no knowledge, default
+#define ID_COMPONENT_KNOWLEDGE_NONE 0
+/// Has full knowledge
+#define ID_COMPONENT_KNOWLEDGE_FULL 1
diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index 53348b3467..c74a8cdb05 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -30,7 +30,7 @@
#define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params)
#define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called
#define COMSIG_ATOM_HULK_ATTACK "hulk_attack" //from base of atom/attack_hulk(): (/mob/living/carbon/human)
-#define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob)
+#define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob, list/examine_return_text)
#define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" //from base of atom/get_examine_name(): (/mob, list/overrides)
//Positions for overrides list
#define EXAMINE_POSITION_ARTICLE 1
@@ -110,7 +110,8 @@
#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" //from base of turf/New(): (turf/source, direction)
// /atom/movable signals
-#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" //from base of atom/movable/Moved(): (/atom)
+#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" ///from base of atom/movable/Moved(): (/atom)
+ #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE 1
#define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir)
#define COMSIG_MOVABLE_CROSS "movable_cross" //from base of atom/movable/Cross(): (/atom/movable)
#define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable)
@@ -119,6 +120,8 @@
#define COMSIG_MOVABLE_UNCROSSED "movable_uncrossed" //from base of atom/movable/Uncrossed(): (/atom/movable)
#define COMSIG_MOVABLE_BUMP "movable_bump" //from base of atom/movable/Bump(): (/atom)
#define COMSIG_MOVABLE_IMPACT "movable_impact" //from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum)
+ #define COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH 1 ///if true, flip if the impact will push what it hits
+ #define COMPONENT_MOVABLE_IMPACT_NEVERMIND 2 ///return true if you destroyed whatever it was you're impacting and there won't be anything for hitby() to run on
#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" //from base of mob/living/hitby(): (mob/living/target, hit_zone)
#define COMSIG_MOVABLE_BUCKLE "buckle" //from base of atom/movable/buckle_mob(): (mob, force)
#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" //from base of atom/movable/unbuckle_mob(): (mob, force)
@@ -138,7 +141,6 @@
#define HEARING_SOURCE 8*/
#define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source)
#define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination)
-
// /mind signals
#define COMSIG_PRE_MIND_TRANSFER "pre_mind_transfer" //from base of mind/transfer_to() before it's done: (new_character, old_character)
#define COMPONENT_STOP_MIND_TRANSFER 1 //stops the mind transfer from happening.
@@ -148,6 +150,8 @@
#define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/A)
#define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed)
#define COMPONENT_BLOCK_DEATH_BROADCAST 1 //stops the death from being broadcasted in deadchat.
+#define COMSIG_MOB_CLICKON "mob_clickon" //from base of mob/clickon(): (atom/A, params)
+ #define COMSIG_MOB_CANCEL_CLICKON 1
#define COMSIG_MOB_GHOSTIZE "mob_ghostize" //from base of mob/Ghostize(): (can_reenter_corpse, special, penalize)
#define COMPONENT_BLOCK_GHOSTING (1<<0)
#define COMPONENT_DO_NOT_PENALIZE_GHOSTING (1<<1)
@@ -179,7 +183,28 @@
// #define SPEECH_FORCED 7
#define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum)
-#define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //called from base of /obj/effect/proc_holder/spell/can_cast(): (spell)
+#define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //from base of /obj/effect/proc_holder/spell/can_cast(): (spell)
+
+#define COMSIG_MOB_ACTION_SKILL_MOD "mob_action_skill_mod" //from base of /datum/skill_holder/action_skills_mod() : (proc args list, list/mod_values)
+ #define ACTION_SKILL_MOD_SKILL 1 //redundancy.
+ #define ACTION_SKILL_MOD_VALUE 2
+ #define ACTION_SKILL_MOD_THRESHOLD 3
+ #define ACTION_SKILL_MOD_IS_MULTI 4
+ //other mod values, kept separate from the args
+ #define MOD_VALUES_SKILL_MOD 1
+
+#define COMSIG_MOB_ITEM_ACTION_SKILLS_MOD "mob_item_action_skills_mod" //from base of /datum/skill_holder/item_action_skills_mod() : (proc args list, mod_values)
+ #define ITEM_SKILLS_MOD_ITEM 1 //redundancy
+ #define ITEM_SKILLS_MOD_VALUE 2
+ #define ITEM_SKILLS_MOD_FLAGS 3
+ #define ITEM_SKILLS_MOD_BAD_FLAGS 4
+ #define ITEM_SKILLS_MOD_IS_MULTI 5
+ //other mod values, kept separate from the args
+ #define MOD_VALUES_ITEM_SKILLS_SUM 1
+ #define MOD_VALUES_ITEM_SKILLS_DIV 2
+ #define MOD_VALUES_ITEM_SKILLS_CHECKED 3
+
+#define COMSIG_MOB_SKILL_GET_AFFINITY "mob_skill_get_affinity" //from base of /datum/skill_holder/get_skill_affinity(): (skill_path, list/return_value)
// /mob/living signals
#define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs)
@@ -197,6 +222,7 @@
#define COMSIG_LIVING_RUN_BLOCK "living_do_run_block" //from base of mob/living/do_run_block(): (real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone)
#define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of mob/living/enable_combat_mode() (was_forced)
#define COMSIG_LIVING_COMBAT_DISABLED "combatmode_disabled" //from base of mob/living/disable_combat_mode() (was_forced)
+#define COMSIG_LIVING_GET_BLOCKING_ITEMS "get_blocking_items" //from base of mob/living/get_blocking_items(): (list/items)
//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS!
#define COMSIG_LIVING_STATUS_STUN "living_stun" //from base of mob/living/Stun() (amount, update, ignore)
@@ -212,7 +238,7 @@
// /mob/living/carbon signals
#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" //from base of mob/living/carbon/soundbang_act(): (list(intensity))
#define COMSIG_CARBON_IDENTITY_TRANSFERRED_TO "carbon_id_transferred_to" //from datum/dna/transfer_identity(): (datum/dna, transfer_SE)
-
+#define COMSIG_CARBON_TACKLED "carbon_tackled" //sends from tackle.dm on tackle completion
// /mob/living/simple_animal/hostile signals
#define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget"
#define COMPONENT_HOSTILE_NO_ATTACK 1
@@ -237,7 +263,11 @@
#define COMSIG_ITEM_AFTERATTACK "item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, params)
#define COMSIG_ITEM_ALT_AFTERATTACK "item_alt_afterattack" //from base of obj/item/altafterattack(): (atom/target, mob/user, proximity, params)
#define COMSIG_ITEM_EQUIPPED "item_equip" //from base of obj/item/equipped(): (/mob/equipper, slot)
+ // Do not grant actions on equip.
+ #define COMPONENT_NO_GRANT_ACTIONS 1
#define COMSIG_ITEM_DROPPED "item_drop" //from base of obj/item/dropped(): (mob/user)
+ // relocated, tell inventory procs if those called this that the item isn't available anymore.
+ #define COMPONENT_DROPPED_RELOCATION 1
#define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker)
#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user)
@@ -247,6 +277,9 @@
// THE FOLLOWING TWO BLOCKS SHOULD RETURN BLOCK FLAGS AS DEFINED IN __DEFINES/combat.dm!
#define COMSIG_ITEM_CHECK_BLOCK "check_block" //from base of obj/item/check_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
#define COMSIG_ITEM_RUN_BLOCK "run_block" //from base of obj/item/run_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+#define COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN "deconstructor_deepscan" //Called by deconstructive analyzers deepscanning an item: (obj/machinery/rnd/destructive_analyzer/analyzer_machine, mob/user, list/information_list)
+ // Uncovered information
+ #define COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION 1
// /obj/item/clothing signals
#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): ()
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index b8fe76fb1d..649e0a029b 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -132,7 +132,7 @@
#define FEMALE_UNIFORM_FULL 1
#define FEMALE_UNIFORM_TOP 2
-//flags for outfits that have mutantrace variants: These are hard sprited too.
+//flags for outfits that have mutant race variants: Most of these require additional sprites to work.
#define STYLE_DIGITIGRADE (1<<0) //jumpsuits, suits and shoes
#define STYLE_MUZZLE (1<<1) //hats or masks
#define STYLE_SNEK_TAURIC (1<<2) //taur-friendly suits
@@ -140,6 +140,9 @@
#define STYLE_HOOF_TAURIC (1<<4)
#define STYLE_ALL_TAURIC (STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC|STYLE_HOOF_TAURIC)
#define STYLE_NO_ANTHRO_ICON (1<<5) //When digis fit the default sprite fine and need no copypasted states. This is the case of skirts and winter coats, for example.
+#define USE_SNEK_CLIP_MASK (1<<6)
+#define USE_QUADRUPED_CLIP_MASK (1<<7)
+#define USE_TAUR_CLIP_MASK (USE_SNEK_CLIP_MASK|USE_QUADRUPED_CLIP_MASK)
//digitigrade legs settings.
#define NOT_DIGITIGRADE 0
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 378667cd82..122ba67402 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -174,7 +174,10 @@ GLOBAL_LIST_INIT(clawfootmob, typecacheof(list(
/mob/living/simple_animal/pet/fox,
/mob/living/simple_animal/chicken,
/mob/living/simple_animal/hostile/bear,
- /mob/living/simple_animal/hostile/jungle/mega_arachnid
+ /mob/living/simple_animal/hostile/jungle/mega_arachnid,
+ /mob/living/simple_animal/hostile/asteroid/ice_whelp,
+ /mob/living/simple_animal/hostile/asteroid/wolf,
+ /mob/living/simple_animal/hostile/asteroid/polarbear
)))
GLOBAL_LIST_INIT(barefootmob, typecacheof(list(
diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm
index dc2ac19e65..add4a8e277 100644
--- a/code/__DEFINES/language.dm
+++ b/code/__DEFINES/language.dm
@@ -3,5 +3,24 @@
#define LANGUAGE_HIDE_ICON_IF_UNDERSTOOD 4
#define LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD 8
-#define LANGUAGE_KNOWN "language_known"
-#define LANGUAGE_SHADOWED "language_shadowed"
+// LANGUAGE SOURCE DEFINES
+#define LANGUAGE_ALL "all" // For use in full removal only.
+#define LANGUAGE_ATOM "atom"
+#define LANGUAGE_MIND "mind"
+
+#define LANGUAGE_ABSORB "absorb"
+#define LANGUAGE_APHASIA "aphasia"
+#define LANGUAGE_BLOODSUCKER "bloodsucker"
+#define LANGUAGE_CLOCKIE "clockie"
+#define LANGUAGE_CULTIST "cultist"
+#define LANGUAGE_CURATOR "curator"
+#define LANGUAGE_DEVIL "devil"
+#define LANGUAGE_GLAND "gland"
+#define LANGUAGE_HAT "hat"
+#define LANGUAGE_HIGH "high"
+#define LANGUAGE_MALF "malf"
+#define LANGUAGE_MASTER "master"
+#define LANGUAGE_SOFTWARE "software"
+#define LANGUAGE_STONER "stoner"
+#define LANGUAGE_VASSAL "vassal"
+#define LANGUAGE_VOICECHANGE "voicechange"
diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm
index d0f9f8bc28..a6c31bf965 100644
--- a/code/__DEFINES/layers_planes.dm
+++ b/code/__DEFINES/layers_planes.dm
@@ -1,6 +1,8 @@
//Defines for atom layers and planes
//KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE
+#define PLANE_VOID -100
+
#define CLICKCATCHER_PLANE -99
#define PLANE_SPACE -95
@@ -8,6 +10,10 @@
#define PLANE_SPACE_PARALLAX -90
#define PLANE_SPACE_PARALLAX_RENDER_TARGET "PLANE_SPACE_PARALLAX"
+#define OPENSPACE_LAYER 17 //Openspace layer over all
+#define OPENSPACE_PLANE -4 //Openspace plane below all turfs
+#define OPENSPACE_BACKDROP_PLANE -3 //Black square just over openspace plane to guaranteed cover all in openspace turf
+
#define FLOOR_PLANE -2
#define FLOOR_PLANE_RENDER_TARGET "FLOOR_PLANE"
#define GAME_PLANE -1
@@ -61,7 +67,9 @@
#define BELOW_MOB_LAYER 3.7
#define LYING_MOB_LAYER 3.8
+#define MOB_LOWER_LAYER 3.95
//#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define
+#define MOB_UPPER_LAYER 4.05
#define ABOVE_MOB_LAYER 4.1
#define WALL_OBJ_LAYER 4.25
#define EDGED_TURF_LAYER 4.3
@@ -83,6 +91,8 @@
#define MASSIVE_OBJ_LAYER 11
#define POINT_LAYER 12
+#define CHAT_LAYER 12.1
+
#define EMISSIVE_BLOCKER_PLANE 12
#define EMISSIVE_BLOCKER_LAYER 12
#define EMISSIVE_BLOCKER_RENDER_TARGET "*EMISSIVE_BLOCKER_PLANE"
@@ -103,10 +113,6 @@
#define ABOVE_LIGHTING_LAYER 16
#define ABOVE_LIGHTING_RENDER_TARGET "ABOVE_LIGHTING_PLANE"
-#define FLOOR_OPENSPACE_PLANE 17
-#define OPENSPACE_LAYER 17
-#define OPENSPACE_RENDER_TARGET "OPENSPACE_PLANE"
-
#define BYOND_LIGHTING_PLANE 18
#define BYOND_LIGHTING_LAYER 18
#define BYOND_LIGHTING_RENDER_TARGET "BYOND_LIGHTING_PLANE"
diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm
index eee0676dec..5a26feb624 100644
--- a/code/__DEFINES/machines.dm
+++ b/code/__DEFINES/machines.dm
@@ -22,14 +22,14 @@
//used in design to specify which machine can build it
#define IMPRINTER (1<<0) //For circuits. Uses glass/chemicals.
-#define PROTOLATHE (1<<1) //New stuff. Uses glass/metal/chemicals
-#define AUTOLATHE (1<<2) //Uses glass/metal only.
-#define CRAFTLATHE (1<<3) //Uses fuck if I know. For use eventually.
-#define MECHFAB (1<<4) //Remember, objects utilising this flag should have construction_time and construction_cost vars.
-#define BIOGENERATOR (1<<5) //Uses biomass
-#define LIMBGROWER (1<<6) //Uses synthetic flesh
-#define SMELTER (1<<7) //uses various minerals
-#define AUTOYLATHE (1<<8) // CITADEL ADD
+#define PROTOLATHE (1<<1) //New stuff. Uses materials/chemicals
+#define AUTOLATHE (1<<2) //Uses materials only.
+#define TOYLATHE (1<<3) //Glass/metal/plastic. Meant for toys.
+#define NO_PUBLIC_LATHE (1<<4) //prevents the design from being auto-unlocked by public auto(y)lathes.
+#define MECHFAB (1<<5) //Remember, objects utilising this flag should have construction_time and construction_cost vars.
+#define BIOGENERATOR (1<<6) //Uses biomass
+#define LIMBGROWER (1<<7) //Uses synthetic flesh
+#define SMELTER (1<<8) //uses various minerals
#define NANITE_COMPILER (1<<9) //Prints nanite disks
#define AUTOBOTTLER (1<<10) //Uses booze, for printing
//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable.
diff --git a/code/__DEFINES/mapping/maploader.dm b/code/__DEFINES/mapping/maploader.dm
new file mode 100644
index 0000000000..e225e68867
--- /dev/null
+++ b/code/__DEFINES/mapping/maploader.dm
@@ -0,0 +1,3 @@
+//map template annihilate_bounds
+#define MAP_TEMPLATE_ANNIHILATE_PRELOAD 1 //annihilate bounds before starting loading
+#define MAP_TEMPLATE_ANNIHILATE_LOADING 2 //"sweeping" delete during loading
diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm
index 73e900226e..47546cac30 100644
--- a/code/__DEFINES/maps.dm
+++ b/code/__DEFINES/maps.dm
@@ -35,10 +35,18 @@ require only minor tweaks.
#define ZTRAIT_REEBE "Reebe"
#define ZTRAIT_RESERVED "Transit/Reserved"
#define ZTRAIT_AWAY "Away Mission"
+#define ZTRAIT_VR "Virtual Reality"
#define ZTRAIT_SPACE_RUINS "Space Ruins"
#define ZTRAIT_LAVA_RUINS "Lava Ruins"
+#define ZTRAIT_ICE_RUINS "Ice Ruins"
+#define ZTRAIT_ICE_RUINS_UNDERGROUND "Ice Ruins Underground"
#define ZTRAIT_ISOLATED_RUINS "Isolated Ruins" //Placing ruins on z levels with this trait will use turf reservation instead of usual placement.
+//boolean - weather types that occur on the level
+#define ZTRAIT_SNOWSTORM "Weather_Snowstorm"
+#define ZTRAIT_ASHSTORM "Weather_Ashstorm"
+#define ZTRAIT_ACIDRAIN "Weather_Acidrain"
+
// number - bombcap is multiplied by this before being applied to bombs
#define ZTRAIT_BOMBCAP_MULTIPLIER "Bombcap Multiplier"
@@ -67,6 +75,7 @@ require only minor tweaks.
#define ZTRAITS_SPACE list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_SPACE_RUINS = TRUE)
#define ZTRAITS_LAVALAND list(\
ZTRAIT_MINING = TRUE, \
+ ZTRAIT_ASHSTORM = TRUE, \
ZTRAIT_LAVA_RUINS = TRUE, \
ZTRAIT_BOMBCAP_MULTIPLIER = 5, \
ZTRAIT_BASETURF = /turf/open/lava/smooth/lava_land_surface)
@@ -101,4 +110,8 @@ require only minor tweaks.
#define PLACE_BELOW "below" //On z levl below - centered on same tile
#define PLACE_ISOLATED "isolated" //On isolated ruin z level
//Map type stuff.
-#define MAP_TYPE_STATION "station"
\ No newline at end of file
+#define MAP_TYPE_STATION "station"
+
+//Random z-levels name defines.
+#define AWAY_MISSION_NAME "Away Mission"
+#define VIRT_REALITY_NAME "Virtual Reality"
diff --git a/code/__DEFINES/material/worth.dm b/code/__DEFINES/material/worth.dm
new file mode 100644
index 0000000000..db79d7317b
--- /dev/null
+++ b/code/__DEFINES/material/worth.dm
@@ -0,0 +1,2 @@
+/// cm3 of material matter per sheet
+#define MINERAL_MATERIAL_AMOUNT 2000
diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm
index 89553d9c6c..e2ae22345f 100644
--- a/code/__DEFINES/materials.dm
+++ b/code/__DEFINES/materials.dm
@@ -7,5 +7,5 @@
/// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes.
#define MATERIAL_COLOR (1<<0)
#define MATERIAL_ADD_PREFIX (1<<1)
-#define MATERIAL_NO_EFFECTS (1<<2)
+#define MATERIAL_EFFECTS (1<<2)
#define MATERIAL_AFFECT_STATISTICS (1<<3)
\ No newline at end of file
diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm
index f37efd694c..e418b8b4c6 100644
--- a/code/__DEFINES/maths.dm
+++ b/code/__DEFINES/maths.dm
@@ -17,6 +17,8 @@
#define PERCENT(val) (round((val)*100, 0.1))
+#define CLAMP01(x) clamp(x, 0, 1)
+
//time of day but automatically adjusts to the server going into the next day within the same round.
//for when you need a reliable time number that doesn't depend on byond time.
#define REALTIMEOFDAY (world.timeofday + (MIDNIGHT_ROLLOVER * MIDNIGHT_ROLLOVER_CHECK))
@@ -30,13 +32,13 @@
#define FLOOR(x, y) ( round((x) / (y)) * (y) )
// Similar to clamp but the bottom rolls around to the top and vice versa. min is inclusive, max is exclusive
-#define WRAP(val, min, max) CLAMP(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max-1)
+#define WRAP(val, min, max) clamp(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max-1)
// Real modulus that handles decimals
#define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) )
// Cotangent
-#define COT(x) (1 / TAN(x))
+#define COT(x) (1 / tan(x))
// Secant
#define SEC(x) (1 / cos(x))
@@ -169,8 +171,8 @@
while(pixel_y < -16)
pixel_y += 32
new_y--
- new_x = CLAMP(new_x, 0, world.maxx)
- new_y = CLAMP(new_y, 0, world.maxy)
+ new_x = clamp(new_x, 0, world.maxx)
+ new_y = clamp(new_y, 0, world.maxy)
return locate(new_x, new_y, starting.z)
// Returns a list where [1] is all x values and [2] is all y values that overlap between the given pair of rectangles
@@ -195,7 +197,7 @@
#define EXP_DISTRIBUTION(desired_mean) ( -(1/(1/desired_mean)) * log(rand(1, 1000) * 0.001) )
-#define LORENTZ_DISTRIBUTION(x, s) ( s*TAN(TODEGREES(PI*(rand()-0.5))) + x )
+#define LORENTZ_DISTRIBUTION(x, s) ( s*tan(TODEGREES(PI*(rand()-0.5))) + x )
#define LORENTZ_CUMULATIVE_DISTRIBUTION(x, y, s) ( (1/PI)*TORADIANS(arctan((x-y)/s)) + 1/2 )
#define RULE_OF_THREE(a, b, x) ((a*x)/b)
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 843ce2ab8a..55aec7022f 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -35,15 +35,15 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define BODY_ADJ_LAYER 27 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define GENITALS_FRONT_LAYER 26 //Draws some genitalia above clothes and the TAUR body if need be.
#define BODY_LAYER 25 //underwear, undershirts, socks, eyes, lips(makeup)
-#define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
-#define DAMAGE_LAYER 23 //damage indicators (cuts and burns)
-#define UNIFORM_LAYER 22
-#define ID_LAYER 21
-#define HANDS_PART_LAYER 20
-#define SHOES_LAYER 19
-#define GLOVES_LAYER 18
-#define EARS_LAYER 17
-#define BODY_TAUR_LAYER 16
+#define BODY_ADJ_UPPER_LAYER 24
+#define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
+#define DAMAGE_LAYER 22 //damage indicators (cuts and burns)
+#define UNIFORM_LAYER 21
+#define ID_LAYER 20
+#define HANDS_PART_LAYER 19
+#define SHOES_LAYER 18
+#define GLOVES_LAYER 17
+#define EARS_LAYER 16
#define SUIT_LAYER 15
#define GENITALS_EXPOSED_LAYER 14
#define GLASSES_LAYER 13
@@ -71,14 +71,6 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define ABOVE_SHOES_LAYER (SHOES_LAYER-1)
#define ABOVE_BODY_FRONT_LAYER (BODY_FRONT_LAYER-1)
-
-//Security levels
-#define SEC_LEVEL_GREEN 0
-#define SEC_LEVEL_BLUE 1
-#define SEC_LEVEL_AMBER 2
-#define SEC_LEVEL_RED 3
-#define SEC_LEVEL_DELTA 4
-
//some arbitrary defines to be used by self-pruning global lists. (see master_controller)
#define PROCESS_KILL 26 //Used to trigger removal from a processing list
@@ -524,4 +516,18 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define UNTIL(X) while(!(X)) stoplag()
+
+//Scavenging element defines for special loot "events".
+#define SCAVENGING_FOUND_NOTHING "found_nothing"
+#define SCAVENGING_SPAWN_MOUSE "spawn_mouse"
+#define SCAVENGING_SPAWN_MICE "spawn_mice"
+#define SCAVENGING_SPAWN_TOM "spawn_tom_the_mouse"
+
+//Scavenging element defines for ckey/mind restrictions.
+#define NO_LOOT_RESTRICTION 0
+#define LOOT_RESTRICTION_MIND 1
+#define LOOT_RESTRICTION_CKEY 2
+#define LOOT_RESTRICTION_MIND_PILE 3 //limited to the current pile.
+#define LOOT_RESTRICTION_CKEY_PILE 4 //Idem
+
#define WANTED_FILE "wanted_message.json"
diff --git a/code/__DEFINES/misc/return_values.dm b/code/__DEFINES/misc/return_values.dm
new file mode 100644
index 0000000000..d55f603de9
--- /dev/null
+++ b/code/__DEFINES/misc/return_values.dm
@@ -0,0 +1,3 @@
+// obj/item/dropped
+/// dropped() relocated this item, return FALSE for doUnEquip.
+#define ITEM_RELOCATED_BY_DROPPED "relocated_by_dropped"
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index e5f817614b..e0df69bfe9 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -138,6 +138,7 @@
#define MOOD_LEVEL_SAD4 -25
//Sanity levels for humans
+#define SANITY_AMAZING 150
#define SANITY_GREAT 125
#define SANITY_NEUTRAL 100
#define SANITY_DISTURBED 75
@@ -265,6 +266,7 @@
#define WIZARD_AGE_MIN 30 //youngest a wizard can be
#define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be
#define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up
+#define SHOES_SPEED_SLIGHT SHOES_SLOWDOWN - 1 // slightest speed boost to movement
#define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets
#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you
@@ -288,6 +290,8 @@
#define HUMAN_FIRE_STACK_ICON_NUM 3
-#define PULL_PRONE_SLOWDOWN 0.6
-#define FIREMAN_CARRY_SLOWDOWN 0
-#define PIGGYBACK_CARRY_SLOWDOWN 1
+#define GRAB_PIXEL_SHIFT_PASSIVE 6
+#define GRAB_PIXEL_SHIFT_AGGRESSIVE 12
+#define GRAB_PIXEL_SHIFT_NECK 16
+
+#define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return;
diff --git a/code/__DEFINES/mobs/slowdowns.dm b/code/__DEFINES/mobs/slowdowns.dm
new file mode 100644
index 0000000000..2d858e9509
--- /dev/null
+++ b/code/__DEFINES/mobs/slowdowns.dm
@@ -0,0 +1,10 @@
+/// How much someone is slowed from pulling a prone human
+#define PULL_PRONE_SLOWDOWN 0.6
+/// How much someone is slowed from fireman carrying a human
+#define FIREMAN_CARRY_SLOWDOWN 0
+/// How much someone is slowed by piggybacking a human
+#define PIGGYBACK_CARRY_SLOWDOWN 1
+/// slowdown when in softcrit. Note that crawling slowdown will also apply at the same time!
+#define SOFTCRIT_ADD_SLOWDOWN 2
+/// slowdown when crawling
+#define CRAWLING_ADD_SLOWDOWN 4
diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm
index 4d40474a3c..1f3ae63940 100644
--- a/code/__DEFINES/movespeed_modification.dm
+++ b/code/__DEFINES/movespeed_modification.dm
@@ -1,12 +1,3 @@
-#define MOVESPEED_DATA_INDEX_PRIORITY 1
-#define MOVESPEED_DATA_INDEX_FLAGS 2
-#define MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN 3
-#define MOVESPEED_DATA_INDEX_MOVETYPE 4
-#define MOVESPEED_DATA_INDEX_BL_MOVETYPE 5
-#define MOVESPEED_DATA_INDEX_CONFLICT 6
-
-#define MOVESPEED_DATA_INDEX_MAX 6
-
//flags
#define IGNORE_NOSLOW (1 << 0)
@@ -15,70 +6,7 @@
#define MOVE_CONFLICT_JETPACK "JETPACK"
//ids
+#define MOVESPEED_ID_SANITY "mood_sanity"
-#define MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED "MOB_WALK_RUN"
-#define MOVESPEED_ID_MOB_GRAB_STATE "MOB_GRAB_STATE"
-#define MOVESPEED_ID_MOB_EQUIPMENT "MOB_EQUIPMENT"
-#define MOVESPEED_ID_MOB_GRAVITY "MOB_GRAVITY"
-#define MOVESPEED_ID_CONFIG_SPEEDMOD "MOB_CONFIG_MODIFIER"
-
-#define MOVESPEED_ID_SLIME_REAGENTMOD "SLIME_REAGENT_MODIFIER"
-#define MOVESPEED_ID_SLIME_HEALTHMOD "SLIME_HEALTH_MODIFIER"
-#define MOVESPEED_ID_SLIME_TEMPMOD "SLIME_TEMPERATURE_MODIFIER"
-
-#define MOVESPEED_ID_SLIME_STATUS "SLIME_STATUS"
-
-#define MOVESPEED_ID_TARANTULA_WEB "TARANTULA_WEB"
-
-#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD"
-#define MOVESPEED_ID_LIVING_LIMBLESS "LIVING_LIMBLESS"
-
-#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT"
-#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED"
-
-#define MOVESPEED_ID_DNA_VAULT "DNA_VAULT"
-
-#define MOVESPEED_ID_YELLOW_ORB "YELLOW_ORB"
-
-#define MOVESPEED_ID_TARFOOT "TARFOOT"
-
-#define MOVESPEED_ID_SEPIA "SEPIA"
-
-#define MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD "MONKEY_REAGENT_SPEEDMOD"
-#define MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD "MONKEY_TEMPERATURE_SPEEDMOD"
-#define MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD "MONKEY_HEALTH_SPEEDMOD"
-
-#define MOVESPEED_ID_CHANGELING_MUSCLES "CHANGELING_MUSCLES"
-
-#define MOVESPEED_ID_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER"
-#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER"
-
-#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER"
-
-#define MOVESPEED_ID_SANITY "MOOD_SANITY"
-
-#define MOVESPEED_ID_SPECIES "SPECIES_SPEED_MOD"
-
-#define MOVESPEED_ID_SMALL_STRIDE "SMALL_STRIDE"
-#define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG"
-#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
-#define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER"
-
-#define MOVESPEED_ID_SLAUGHTER "SLAUGHTER"
-
-#define MOVESPEED_ID_CYBER_THRUSTER "CYBER_IMPLANT_THRUSTER"
-#define MOVESPEED_ID_JETPACK "JETPACK"
-
-#define MOVESPEED_ID_MKULTRA "MKULTRA"
-
-#define MOVESPEED_ID_TASED_STATUS "TASED"
-#define MOVESPEED_ID_ELECTROSTAFF "ELECTROSTAFF"
-
-#define MOVESPEED_ID_SHOVE "SHOVE"
-#define MOVESPEED_ID_FAT "FAT"
-#define MOVESPEED_ID_COLD "COLD"
-#define MOVESPEED_ID_HUNGRY "HUNGRY"
-#define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE"
-#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING"
-
-#define MOVESPEED_ID_CIRRHOSIS "CIRRHOSIS"
\ No newline at end of file
+#define MOVESPEED_ID_MOB_GRAB_STATE "mob_grab_state"
+#define MOVESPEED_ID_MOB_WALK_RUN "mob_walk_run"
diff --git a/code/__DEFINES/nanites.dm b/code/__DEFINES/nanites.dm
index ed15e972ab..05c3501609 100644
--- a/code/__DEFINES/nanites.dm
+++ b/code/__DEFINES/nanites.dm
@@ -12,6 +12,10 @@
#define NANITE_CLOUD_DISABLE 2
#define NANITE_CLOUD_ENABLE 3
+///Nanite Protocol types
+#define NANITE_PROTOCOL_REPLICATION "nanite_replication"
+#define NANITE_PROTOCOL_STORAGE "nanite_storage"
+
///Nanite extra settings types: used to help uis know what type an extra setting is
#define NESTYPE_TEXT "text"
#define NESTYPE_NUMBER "number"
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index d78de86d25..507126867f 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -38,11 +38,12 @@
#define BLOCK_GAS_SMOKE_EFFECT (1<<2) //blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
#define ALLOWINTERNALS (1<<3) //mask allows internals
#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc
-#define THICKMATERIAL (1<<5) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
-#define VOICEBOX_TOGGLABLE (1<<6) //The voicebox in this clothing can be toggled.
-#define VOICEBOX_DISABLED (1<<7) //The voicebox is currently turned off.
-#define IGNORE_HAT_TOSS (1<<8) //Hats with negative effects when worn (i.e the tinfoil hat).
-#define SCAN_REAGENTS (1<<9) // Allows helmets and glasses to scan reagents.
+#define NOSLIP_ICE (1<<5) //prevents from slipping on frozen floors
+#define THICKMATERIAL (1<<6) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
+#define VOICEBOX_TOGGLABLE (1<<7) //The voicebox in this clothing can be toggled.
+#define VOICEBOX_DISABLED (1<<8) //The voicebox is currently turned off.
+#define IGNORE_HAT_TOSS (1<<9) //Hats with negative effects when worn (i.e the tinfoil hat).
+#define SCAN_REAGENTS (1<<10) // Allows helmets and glasses to scan reagents.
// Flags for the organ_flags var on /obj/item/organ
@@ -52,3 +53,4 @@
#define ORGAN_EXTERNAL (1<<3) //Was this organ implanted/inserted/etc, if true will not be removed during species change.
#define ORGAN_VITAL (1<<4) //Currently only the brain
#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances
+#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment.
diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm
index 928f364a81..a0db416fa6 100644
--- a/code/__DEFINES/radio.dm
+++ b/code/__DEFINES/radio.dm
@@ -65,6 +65,7 @@
#define FREQ_ENGINEERING 1357 // Engineering comms frequency, orange
#define FREQ_SECURITY 1359 // Security comms frequency, red
+#define FREQ_HOLOGRID_SOLUTION 1433
#define FREQ_STATUS_DISPLAYS 1435
#define FREQ_ATMOS_ALARMS 1437 // air alarms <-> alert computers
#define FREQ_ATMOS_CONTROL 1439 // air alarms <-> vents and scrubbers
diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm
index 97ae7b8e95..f4beef7ee8 100644
--- a/code/__DEFINES/reagents.dm
+++ b/code/__DEFINES/reagents.dm
@@ -22,11 +22,23 @@
// Is an open container for all intents and purposes.
#define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT)
-//reagents_value defines, for cargo stuff.
+//reagents_value defines, basically a multiplier used in reagent containers cargo selling.
#define DEFAULT_REAGENTS_VALUE 1
#define NO_REAGENTS_VALUE 0
#define HARVEST_REAGENTS_VALUE 0.3
+/// Standard reagents value defines.
+/// Take a grain of salt, only "rare" reagents should have a decent value here, for balance reasons.
+/// TL;DR Think of it also like general market request price more than rarity.
+#define REAGENT_VALUE_NONE 0 //all the stuff pretty much available in potentially unlimited quantities.
+#define REAGENT_VALUE_VERY_COMMON 0.1 //same as above, just not so unlimited.
+#define REAGENT_VALUE_COMMON 0.5
+#define REAGENT_VALUE_UNCOMMON 1
+#define REAGENT_VALUE_RARE 2.5
+#define REAGENT_VALUE_VERY_RARE 5
+#define REAGENT_VALUE_EXCEPTIONAL 10 //extremely rare or tedious to craft, possibly unsynthetizable, reagents.
+#define REAGENT_VALUE_AMAZING 30 //reserved ONLY for non-mass produceable, unsynthetizable reagents.
+#define REAGENT_VALUE_GLORIOUS 300 //reagents that shouldn't be possible to get or farm under normal conditions. e.g. Romerol, fungal TB, adminordrazine...
#define TOUCH 1 // splashing
#define INGEST 2 // ingestion
diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm
index 9feb5f40c5..60effc7265 100644
--- a/code/__DEFINES/research.dm
+++ b/code/__DEFINES/research.dm
@@ -60,7 +60,8 @@
#define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN"
-#define RESEARCH_MATERIAL_RECLAMATION_ID "__materials"
+#define RESEARCH_MATERIAL_RECLAMATION_ID "__materials"
+#define RESEARCH_DEEP_SCAN_ID "__deepscan"
//When adding new types, update the list below!
#define TECHWEB_POINT_TYPE_GENERIC "General Research"
diff --git a/code/__DEFINES/research/stock_parts.dm b/code/__DEFINES/research/stock_parts.dm
new file mode 100644
index 0000000000..457e3b632e
--- /dev/null
+++ b/code/__DEFINES/research/stock_parts.dm
@@ -0,0 +1,5 @@
+// the clamps are just sanity checks.
+/// Efficiency scaling for stock part level to material usage. All code concerning lathing and production from raw material sheet should be using this.
+#define STANDARD_PART_LEVEL_LATHE_COEFFICIENT(level) clamp(1 - (level * 0.1), 0, 1)
+/// Efficiency scaling for stock part level to ore factor. All code concerning lathing and production from raw ores to raw material sheets should be using this.
+#define STANDARD_PART_LEVEL_ORE_COEFFICIENT(level) clamp(1 + (level * 0.125), 1, 10)
diff --git a/code/__DEFINES/security_levels.dm b/code/__DEFINES/security_levels.dm
new file mode 100644
index 0000000000..19c66d9125
--- /dev/null
+++ b/code/__DEFINES/security_levels.dm
@@ -0,0 +1,10 @@
+//Security levels
+#define SEC_LEVEL_GREEN 1
+#define SEC_LEVEL_BLUE 2
+#define SEC_LEVEL_AMBER 3
+#define SEC_LEVEL_RED 4
+#define SEC_LEVEL_DELTA 5
+
+//Macro helpers.
+#define SECLEVEL2NUM(text) (GLOB.all_security_levels.Find(text))
+#define NUM2SECLEVEL(num) (ISINRANGE(num, 1, length(GLOB.all_security_levels)) ? GLOB.all_security_levels[num] : null)
diff --git a/code/__DEFINES/skills/defines.dm b/code/__DEFINES/skills/defines.dm
new file mode 100644
index 0000000000..73be86e128
--- /dev/null
+++ b/code/__DEFINES/skills/defines.dm
@@ -0,0 +1,77 @@
+
+/// true/false
+#define SKILL_PROGRESSION_BINARY 1
+/// numerical
+#define SKILL_PROGRESSION_NUMERICAL 2
+/// Enum
+#define SKILL_PROGRESSION_ENUM 3
+/// Levels
+#define SKILL_PROGRESSION_LEVEL 4
+
+
+/// Max value of skill for numerical skills
+#define SKILL_NUMERICAL_MAX 100
+/// Min value of skill for numerical skills
+#define SKILL_NUMERICAL_MIN 0
+
+// Standard values for job starting skills
+
+#define STARTING_SKILL_SURGERY_MEDICAL 35 //out of SKILL_NUMERICAL_MAX
+
+// Standard values for job starting skill affinities
+
+#define STARTING_SKILL_AFFINITY_SURGERY_MEDICAL 1.2
+
+#define STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO 1.2
+
+// Standard values for skill gain (this is multiplied by affinity)
+
+#define DEF_SKILL_GAIN 1
+#define SKILL_GAIN_SURGERY_PER_STEP 0.25
+
+#define SKILL_AFFINITY_MOOD_BONUS 1.25
+
+///Items skill_flags and other defines
+#define SKILL_USE_TOOL (1<<0)
+#define SKILL_TRAINING_TOOL (1<<1)
+#define SKILL_ATTACK_MOB (1<<2)
+#define SKILL_TRAIN_ATTACK_MOB (1<<3)
+#define SKILL_ATTACK_OBJ (1<<4)
+#define SKILL_TRAIN_ATTACK_OBJ (1<<5)
+#define SKILL_STAMINA_COST (1<<6) //Influences the stamina cost from weapon usage.
+#define SKILL_THROW_STAM_COST (1<<7)
+#define SKILL_COMBAT_MODE (1<<8) //The user must have combat mode on.
+#define SKILL_USE_MOOD (1<<9) //Is the skill negatively affected by bad mood.
+#define SKILL_TRAIN_MOOD (1<<10) //Is this skill training affected by good mood.
+
+///competency_threshold index defines
+#define THRESHOLD_COMPETENT 1
+#define THRESHOLD_EXPERT 2
+#define THRESHOLD_MASTER 3
+
+/// Level/Experience skills defines.
+#define STD_XP_LVL_UP 100
+#define STD_XP_LVL_MULTI 2
+#define STD_MAX_LVL 4
+
+#define RPG_MAX_LVL 100
+
+#define DORF_XP_LVL_UP 400
+#define DORF_XP_LVL_MULTI 100
+#define DORF_MAX_LVL 20 // Dabbling, novice, adequate, [...], legendary +3, legendary +4, legendary +5
+
+//level up methods defines
+#define STANDARD_LEVEL_UP "standard_level_up"
+#define DWARFY_LEVEL_UP "dwarfy_level_up"
+
+//job skill level defines
+#define JOB_SKILL_UNTRAINED 0
+#define JOB_SKILL_BASIC 1
+#define JOB_SKILL_TRAINED 2
+#define JOB_SKILL_EXPERT 3
+#define JOB_SKILL_MASTER 4
+
+//other skill level defines, not an exhaustive catalogue, only contains be most relevant ones.
+#define DORF_SKILL_COMPETENT 3
+#define DORF_SKILL_EXPERT 8
+#define DORF_SKILL_MASTER 12
diff --git a/code/__DEFINES/skills/helpers.dm b/code/__DEFINES/skills/helpers.dm
new file mode 100644
index 0000000000..23669b3739
--- /dev/null
+++ b/code/__DEFINES/skills/helpers.dm
@@ -0,0 +1,8 @@
+
+//How experience levels are calculated.
+#define XP_LEVEL(std, multi, lvl) (std*((multi**lvl)/(multi-1))-std/(multi-1)) //don't use 1 as multi, you'll get division by zero errors
+#define DORF_XP_LEVEL(std, extra, lvl) (std*lvl+extra*(lvl*(lvl/2+0.5)))
+
+//More experience value getter macros
+#define GET_STANDARD_LVL(lvl) XP_LEVEL(STD_XP_LVL_UP, STD_XP_LVL_MULTI, lvl)
+#define GET_DORF_LVL(lvl) DORF_XP_LEVEL(DORF_XP_LVL_UP, DORF_XP_LVL_MULTI, lvl)
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index 9a9133c196..593edf4705 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -34,6 +34,8 @@
#define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost
+#define STATUS_EFFECT_REGENERATIVE_CORE /datum/status_effect/regenerative_core //removes damage slowdown while giving a slow regenerating effect
+
/////////////
// DEBUFFS //
/////////////
@@ -78,7 +80,7 @@
#define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage
-#define STATUS_EFFECT_SAWBLEED /datum/status_effect/saw_bleed //if the bleed builds up enough, takes a ton of damage
+#define STATUS_EFFECT_SAWBLEED /datum/status_effect/stacking/saw_bleed //if the bleed builds up enough, takes a ton of damage
#define STATUS_EFFECT_NECKSLICE /datum/status_effect/neck_slice //Creates the flavor messages for the neck-slice
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index cadc1113c5..3abef3a61c 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -132,8 +132,15 @@
#define RUNLEVELS_DEFAULT (RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME)
-
-
+// SSair run section
+#define SSAIR_PIPENETS 1
+#define SSAIR_ATMOSMACHINERY 2
+#define SSAIR_REACTQUEUE 3
+#define SSAIR_EXCITEDGROUPS 4
+#define SSAIR_HIGHPRESSURE 5
+#define SSAIR_HOTSPOTS 6
+#define SSAIR_SUPERCONDUCTIVITY 7
+#define SSAIR_REBUILD_PIPENETS 8
#define COMPILE_OVERLAYS(A)\
if (TRUE) {\
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index e70e0ba743..91a4a6f2c3 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -78,6 +78,7 @@
#define TRAIT_MONKEYLIKE "monkeylike" //sets IsAdvancedToolUser to FALSE
#define TRAIT_PACIFISM "pacifism"
#define TRAIT_IGNORESLOWDOWN "ignoreslow"
+#define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown"
#define TRAIT_DEATHCOMA "deathcoma" //Causes death-like unconsciousness
#define TRAIT_FAKEDEATH "fakedeath" //Makes the owner appear as dead to most forms of medical examination
#define TRAIT_DISFIGURED "disfigured"
@@ -150,6 +151,44 @@
#define TRAIT_PUGILIST "pugilist" //This guy punches people for a living
#define TRAIT_KI_VAMPIRE "ki-vampire" //when someone with this trait rolls maximum damage on a punch and stuns the target, they regain some stamina and do clone damage
#define TRAIT_PASSTABLE "passtable"
+#define TRAIT_GIANT "giant"
+#define TRAIT_DWARF "dwarf"
+#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
+#define TRAIT_AGEUSIA "ageusia"
+#define TRAIT_HEAVY_SLEEPER "heavy_sleeper"
+#define TRAIT_NIGHT_VISION "night_vision"
+#define TRAIT_LIGHT_STEP "light_step"
+#define TRAIT_SILENT_STEP "silent_step"
+#define TRAIT_SPEEDY_STEP "speedy_step"
+#define TRAIT_SPIRITUAL "spiritual"
+#define TRAIT_VORACIOUS "voracious"
+#define TRAIT_SELF_AWARE "self_aware"
+#define TRAIT_FREERUNNING "freerunning"
+#define TRAIT_SKITTISH "skittish"
+#define TRAIT_POOR_AIM "poor_aim"
+#define TRAIT_PROSOPAGNOSIA "prosopagnosia"
+#define TRAIT_DRUNK_HEALING "drunk_healing"
+#define TRAIT_TAGGER "tagger"
+#define TRAIT_PHOTOGRAPHER "photographer"
+#define TRAIT_MUSICIAN "musician"
+#define TRAIT_PERMABONER "permanent_arousal"
+#define TRAIT_NEVERBONER "never_aroused"
+#define TRAIT_MASO "masochism"
+#define TRAIT_HIGH_BLOOD "high_blood"
+#define TRAIT_PARA "paraplegic"
+#define TRAIT_EMPATH "empath"
+#define TRAIT_FRIENDLY "friendly"
+#define TRAIT_CULT_EYES "cult_eyes"
+#define TRAIT_AUTO_CATCH_ITEM "auto_catch_item"
+#define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman.
+#define TRAIT_FREESPRINT "free_sprinting"
+#define TRAIT_XRAY_VISION "xray_vision"
+#define TRAIT_THERMAL_VISION "thermal_vision"
+#define TRAIT_NO_TELEPORT "no-teleport" //you just can't
+#define TRAIT_NO_INTERNALS "no-internals"
+#define TRAIT_NO_ALCOHOL "alcohol_intolerance"
+#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing.
+#define TRAIT_FAST_PUMP "fast_pump"
// mobility flag traits
// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)
@@ -183,43 +222,6 @@
// item traits
#define TRAIT_NODROP "nodrop"
-#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
-#define TRAIT_AGEUSIA "ageusia"
-#define TRAIT_HEAVY_SLEEPER "heavy_sleeper"
-#define TRAIT_NIGHT_VISION "night_vision"
-#define TRAIT_LIGHT_STEP "light_step"
-#define TRAIT_SILENT_STEP "silent_step"
-#define TRAIT_SPEEDY_STEP "speedy_step"
-#define TRAIT_SPIRITUAL "spiritual"
-#define TRAIT_VORACIOUS "voracious"
-#define TRAIT_SELF_AWARE "self_aware"
-#define TRAIT_FREERUNNING "freerunning"
-#define TRAIT_SKITTISH "skittish"
-#define TRAIT_POOR_AIM "poor_aim"
-#define TRAIT_PROSOPAGNOSIA "prosopagnosia"
-#define TRAIT_DRUNK_HEALING "drunk_healing"
-#define TRAIT_TAGGER "tagger"
-#define TRAIT_PHOTOGRAPHER "photographer"
-#define TRAIT_MUSICIAN "musician"
-#define TRAIT_PERMABONER "permanent_arousal"
-#define TRAIT_NEVERBONER "never_aroused"
-#define TRAIT_NYMPHO "nymphomania"
-#define TRAIT_MASO "masochism"
-#define TRAIT_HIGH_BLOOD "high_blood"
-#define TRAIT_PARA "paraplegic"
-#define TRAIT_EMPATH "empath"
-#define TRAIT_FRIENDLY "friendly"
-#define TRAIT_CULT_EYES "cult_eyes"
-#define TRAIT_AUTO_CATCH_ITEM "auto_catch_item"
-#define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman.
-#define TRAIT_FREESPRINT "free_sprinting"
-#define TRAIT_XRAY_VISION "xray_vision"
-#define TRAIT_THERMAL_VISION "thermal_vision"
-#define TRAIT_NO_TELEPORT "no-teleport" //you just can't
-#define TRAIT_NO_INTERNALS "no-internals"
-#define TRAIT_NO_ALCOHOL "alcohol_intolerance"
-#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing.
-
// common trait sources
#define TRAIT_GENERIC "generic"
#define EYE_DAMAGE "eye_damage"
@@ -244,6 +246,7 @@
#define BLOODSUCKER_TRAIT "bloodsucker"
#define SHOES_TRAIT "shoes" //inherited from your sweet kicks
#define GLOVE_TRAIT "glove" //inherited by your cool gloves
+#define BOOK_TRAIT "granter (book)" // knowledge is power
// unique trait sources, still defines
#define STATUE_MUTE "statue"
diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm
index de58523831..32bf4b66f9 100644
--- a/code/__DEFINES/vv.dm
+++ b/code/__DEFINES/vv.dm
@@ -73,6 +73,7 @@
#define VV_HK_EXPOSE "expose"
#define VV_HK_CALLPROC "proc_call"
#define VV_HK_MARK "mark"
+#define VV_HK_ADDCOMPONENT "addcomponent"
#define VV_HK_MODIFY_TRAITS "modtraits"
// /atom
diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm
index a34b3ce67c..ad977ec493 100644
--- a/code/__HELPERS/_lists.dm
+++ b/code/__HELPERS/_lists.dm
@@ -11,6 +11,7 @@
#define LAZYINITLIST(L) if (!L) L = list()
#define UNSETEMPTY(L) if (L && !length(L)) L = null
+#define LAZYCOPY(L) (L ? L.Copy() : list() )
#define LAZYREMOVE(L, I) if(L) { L -= I; if(!length(L)) { L = null; } }
#define LAZYADD(L, I) if(!L) { L = list(); } L += I;
#define LAZYOR(L, I) if(!L) { L = list(); } L |= I;
@@ -21,34 +22,47 @@
#define LAZYCLEARLIST(L) if(L) L.Cut()
#define SANITIZE_LIST(L) ( islist(L) ? L : list() )
#define reverseList(L) reverseRange(L.Copy())
+#define LAZYADDASSOC(L, K, V) if(!L) { L = list(); } L[K] += list(V);
+#define LAZYREMOVEASSOC(L, K, V) if(L) { if(L[K]) { L[K] -= V; if(!length(L[K])) L -= K; } if(!length(L)) L = null; }
-// binary search sorted insert
-// IN: Object to be inserted
-// LIST: List to insert object into
-// TYPECONT: The typepath of the contents of the list
-// COMPARE: The variable on the objects to compare
-#define BINARY_INSERT(IN, LIST, TYPECONT, COMPARE) \
- var/__BIN_CTTL = length(LIST);\
- if(!__BIN_CTTL) {\
- LIST += IN;\
- } else {\
- var/__BIN_LEFT = 1;\
- var/__BIN_RIGHT = __BIN_CTTL;\
- var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\
- var/##TYPECONT/__BIN_ITEM;\
- while(__BIN_LEFT < __BIN_RIGHT) {\
- __BIN_ITEM = LIST[__BIN_MID];\
- if(__BIN_ITEM.##COMPARE <= IN.##COMPARE) {\
- __BIN_LEFT = __BIN_MID + 1;\
- } else {\
- __BIN_RIGHT = __BIN_MID;\
+/// Passed into BINARY_INSERT to compare keys
+#define COMPARE_KEY __BIN_LIST[__BIN_MID]
+/// Passed into BINARY_INSERT to compare values
+#define COMPARE_VALUE __BIN_LIST[__BIN_LIST[__BIN_MID]]
+
+/****
+ * Binary search sorted insert
+ * INPUT: Object to be inserted
+ * LIST: List to insert object into
+ * TYPECONT: The typepath of the contents of the list
+ * COMPARE: The object to compare against, usualy the same as INPUT
+ * COMPARISON: The variable on the objects to compare
+ */
+#define BINARY_INSERT(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \
+ do {\
+ var/list/__BIN_LIST = LIST;\
+ var/__BIN_CTTL = length(__BIN_LIST);\
+ if(!__BIN_CTTL) {\
+ __BIN_LIST += INPUT;\
+ } else {\
+ var/__BIN_LEFT = 1;\
+ var/__BIN_RIGHT = __BIN_CTTL;\
+ var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\
+ var/##TYPECONT/__BIN_ITEM;\
+ while(__BIN_LEFT < __BIN_RIGHT) {\
+ __BIN_ITEM = COMPTYPE;\
+ if(__BIN_ITEM.##COMPARISON <= COMPARE.##COMPARISON) {\
+ __BIN_LEFT = __BIN_MID + 1;\
+ } else {\
+ __BIN_RIGHT = __BIN_MID;\
+ };\
+ __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\
};\
- __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\
+ __BIN_ITEM = COMPTYPE;\
+ __BIN_MID = __BIN_ITEM.##COMPARISON > COMPARE.##COMPARISON ? __BIN_MID : __BIN_MID + 1;\
+ __BIN_LIST.Insert(__BIN_MID, INPUT);\
};\
- __BIN_ITEM = LIST[__BIN_MID];\
- __BIN_MID = __BIN_ITEM.##COMPARE > IN.##COMPARE ? __BIN_MID : __BIN_MID + 1;\
- LIST.Insert(__BIN_MID, IN);\
- }
+ } while(FALSE)
//Returns a list in plain english as a string
/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" )
@@ -231,40 +245,77 @@
//Picks a random element from a list based on a weighting system:
//1. Adds up the total of weights for each element
-//2. Gets a number between 1 and that total
+//2. Gets the total from 0% to 100% of previous total value.
//3. For each element in the list, subtracts its weighting from that number
//4. If that makes the number 0 or less, return that element.
-/proc/pickweight(list/L)
+/proc/pickweight(list/L, base_weight = 1)
var/total = 0
var/item
for (item in L)
if (!L[item])
- L[item] = 1
+ L[item] = base_weight
total += L[item]
- total = rand(1, total)
+ total = rand() * total
for (item in L)
- total -=L [item]
+ total -= L[item]
if (total <= 0)
return item
- return null
-
-/proc/pickweightAllowZero(list/L) //The original pickweight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be.
+//Picks a number of elements from a list based on weight.
+//This is highly optimised and good for things like grabbing 200 items from a list of 40,000
+//Much more efficient than many pickweight calls
+/proc/pickweight_mult(list/L, quantity, base_weight = 1)
+ //First we total the list as normal
var/total = 0
var/item
for (item in L)
if (!L[item])
- L[item] = 0
+ L[item] = base_weight
total += L[item]
- total = rand(0, total)
- for (item in L)
- total -=L [item]
- if (total <= 0 && L[item])
- return item
+ //Next we will make a list of randomly generated numbers, called Requests
+ //It is critical that this list be sorted in ascending order, so we will build it in that order
+ //First one is free, so we start counting at 2
+ var/list/requests = list(rand(1, total))
+ for (var/i in 2 to quantity)
+ //Each time we generate the next request
+ var/newreq = rand()* total
+ //We will loop through all existing requests
+ for (var/j in 1 to requests.len)
+ //We keep going through the list until we find an element which is bigger than the one we want to add
+ if (requests[j] > newreq)
+ //And then we insert the newqreq at that point, pushing everything else forward
+ requests.Insert(j, newreq)
+ break
- return null
+
+
+ //Now when we get here, we have a list of random numbers sorted in ascending order.
+ //The length of that list is equal to Quantity passed into this function
+ //Next we make a list to store results
+ var/list/results = list()
+
+ //Zero the total, we'll reuse it
+ total = 0
+
+ //Now we will iterate forward through the items list, adding each weight to the total
+ for (item in L)
+ total += L[item]
+
+ //After each item we do a while loop
+ while (requests.len && total >= requests[1])
+ //If the total is higher than the value of the first request
+ results += item //We add this item to the results list
+ requests.Cut(1,2) //And we cut off the top of the requests list
+
+ //This while loop will repeat until the next request is higher than the total.
+ //The current item might be added to the results list many times, in this process
+
+ //By the time we get here:
+ //Requests will be empty
+ //Results will have a length of quality
+ return results
//Pick a random element from the list and remove it from the list.
/proc/pick_n_take(list/L)
@@ -274,6 +325,13 @@
. = L[picked]
L.Cut(picked,picked+1) //Cut is far more efficient that Remove()
+//Pick a random element from the list by weight and remove it from the list.
+//Result is returned as a list in the format list(key, value)
+/proc/pickweight_n_take(list/L, base_weight = 1)
+ if (L.len)
+ . = pickweight(L, base_weight)
+ L.Remove(.)
+
//Returns the top(last) element from the list and removes it from the list (typical stack function)
/proc/pop(list/L)
if(L.len)
diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm
index 715f17af92..8e4c363227 100644
--- a/code/__HELPERS/areas.dm
+++ b/code/__HELPERS/areas.dm
@@ -58,6 +58,11 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(/area/engine/eng
else if(isarea(areatype))
var/area/areatemp = areatype
areatype = areatemp.type
+ else if(islist(areatype))
+ var/list/turfs = list()
+ for(var/A in areatype)
+ turfs += get_area_turfs(A)
+ return turfs
else if(!ispath(areatype))
return null
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 38e25b04c5..bcfaa1bed2 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -88,6 +88,7 @@
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL()
+ INVOKE_ASYNC(GLOBAL_PROC, /proc/setupGenetics)
//creates every subtype of prototype (excluding prototype) and adds it to list L.
//if no list/L is provided, one is created.
@@ -113,3 +114,25 @@
UNTIL(C.flags_1 & INITIALIZED_1) //we want to make sure the value is calculated and not null.
GLOB.coin_values[path] = C.value
qdel(C)
+
+/proc/setupGenetics()
+ var/list/mutations = subtypesof(/datum/mutation/human)
+ shuffle_inplace(mutations)
+ for(var/A in subtypesof(/datum/generecipe))
+ var/datum/generecipe/GR = A
+ GLOB.mutation_recipes[initial(GR.required)] = initial(GR.result)
+ for(var/i in 1 to LAZYLEN(mutations))
+ var/path = mutations[i] //byond gets pissy when we do it in one line
+ var/datum/mutation/human/B = new path ()
+ B.alias = "Mutation #[i]"
+ GLOB.all_mutations[B.type] = B
+ GLOB.full_sequences[B.type] = generate_gene_sequence(B.blocks)
+ if(B.locked)
+ continue
+ if(B.quality == POSITIVE)
+ GLOB.good_mutations |= B
+ else if(B.quality == NEGATIVE)
+ GLOB.bad_mutations |= B
+ else if(B.quality == MINOR_NEGATIVE)
+ GLOB.not_good_mutations |= B
+ CHECK_TICK
\ No newline at end of file
diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm
index 7e52fbe273..801a2cd431 100644
--- a/code/__HELPERS/icon_smoothing.dm
+++ b/code/__HELPERS/icon_smoothing.dm
@@ -61,7 +61,7 @@
var/adjacencies = 0
var/atom/movable/AM
- if(ismovableatom(A))
+ if(ismovable(A))
AM = A
if(AM.can_be_unanchored && !AM.anchored)
return 0
diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm
index 3e6e88c8fa..030a324614 100644
--- a/code/__HELPERS/level_traits.dm
+++ b/code/__HELPERS/level_traits.dm
@@ -12,3 +12,5 @@
#define is_reserved_level(z) SSmapping.level_trait(z, ZTRAIT_RESERVED)
#define is_away_level(z) SSmapping.level_trait(z, ZTRAIT_AWAY)
+
+#define is_vr_level(z) SSmapping.level_trait(z, ZTRAIT_VR)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 2827e40120..e0714a87b3 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -47,7 +47,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/socks, GLOB.socks_list)
return pick(GLOB.socks_list)
-/proc/random_features(intendedspecies)
+/proc/random_features(intendedspecies, intended_gender)
if(!GLOB.tails_list_human.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
if(!GLOB.tails_list_lizard.len)
@@ -149,7 +149,13 @@
var/color2 = random_short_color()
var/color3 = random_short_color()
- //CIT CHANGE - changes this entire return to support cit's snowflake parts
+ var/body_model = MALE
+ switch(intended_gender)
+ if(MALE, FEMALE)
+ body_model = intended_gender
+ if(PLURAL)
+ body_model = pick(MALE,FEMALE)
+
return(list(
"mcolor" = color1,
"mcolor2" = color2,
@@ -157,9 +163,11 @@
"tail_lizard" = pick(GLOB.tails_list_lizard),
"tail_human" = "None",
"wings" = "None",
+ "wings_color" = "FFF",
"deco_wings" = "None",
"snout" = pick(GLOB.snouts_list),
- "horns" = pick(GLOB.horns_list),
+ "horns" = "None",
+ "horns_color" = "85615a",
"ears" = "None",
"frills" = pick(GLOB.frills_list),
"spines" = pick(GLOB.spines_list),
@@ -168,7 +176,7 @@
"caps" = pick(GLOB.caps_list),
"insect_wings" = pick(GLOB.insect_wings_list),
"insect_fluff" = "None",
- "insect_markings" = pick(GLOB.insect_markings_list),
+ "insect_markings" = pick(GLOB.insect_markings_list),
"taur" = "None",
"mam_body_markings" = snowflake_markings_list.len ? pick(snowflake_markings_list) : "None",
"mam_ears" = snowflake_ears_list ? pick(snowflake_ears_list) : "None",
@@ -209,7 +217,7 @@
"ipc_antenna" = "None",
"flavor_text" = "",
"meat_type" = "Mammalian",
- "body_model" = MALE,
+ "body_model" = body_model,
"body_size" = RESIZE_DEFAULT_SIZE
))
@@ -311,7 +319,7 @@ GLOBAL_LIST_EMPTY(species_list)
else
return "unknown"
-/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = 0)
+/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = FALSE, resume_time = 0 SECONDS)
if(!user || !target)
return 0
var/user_loc = user.loc
@@ -330,10 +338,10 @@ GLOBAL_LIST_EMPTY(species_list)
var/endtime = world.time+time
var/starttime = world.time
. = 1
- while (world.time < endtime)
+ while (world.time + resume_time < endtime)
stoplag(1)
if (progress)
- progbar.update(world.time - starttime)
+ progbar.update(world.time - starttime + resume_time)
if(QDELETED(user) || QDELETED(target))
. = 0
break
@@ -365,7 +373,7 @@ GLOBAL_LIST_EMPTY(species_list)
checked_health["health"] = health
return ..()
-/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE))
+/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE), resume_time = 0 SECONDS)
if(!user)
return 0
var/atom/Tloc = null
@@ -394,10 +402,10 @@ GLOBAL_LIST_EMPTY(species_list)
var/starttime = world.time
. = 1
var/mob/living/L = isliving(user) && user //evals to last thing eval'd
- while (world.time < endtime)
+ while (world.time + resume_time < endtime)
stoplag(1)
if (progress)
- progbar.update(world.time - starttime)
+ progbar.update(world.time - starttime + resume_time)
if(drifting && !user.inertia_dir)
drifting = 0
diff --git a/code/__HELPERS/mouse_control.dm b/code/__HELPERS/mouse_control.dm
index a69c139d80..10fe976c26 100644
--- a/code/__HELPERS/mouse_control.dm
+++ b/code/__HELPERS/mouse_control.dm
@@ -11,7 +11,7 @@
var/screenviewY = screenview[2] * world.icon_size
var/ox = round(screenviewX/2) - client.pixel_x //"origin" x
var/oy = round(screenviewY/2) - client.pixel_y //"origin" y
- var/angle = SIMPLIFY_DEGREES(ATAN2(y - oy, x - ox))
+ var/angle = SIMPLIFY_DEGREES(arctan(y - oy, x - ox))
return angle
//Wow, specific name!
diff --git a/code/__HELPERS/radio.dm b/code/__HELPERS/radio.dm
index 5fe87bdf5b..dc52299025 100644
--- a/code/__HELPERS/radio.dm
+++ b/code/__HELPERS/radio.dm
@@ -2,9 +2,9 @@
/proc/sanitize_frequency(frequency, free = FALSE)
frequency = round(frequency)
if(free)
- . = CLAMP(frequency, MIN_FREE_FREQ, MAX_FREE_FREQ)
+ . = clamp(frequency, MIN_FREE_FREQ, MAX_FREE_FREQ)
else
- . = CLAMP(frequency, MIN_FREQ, MAX_FREQ)
+ . = clamp(frequency, MIN_FREQ, MAX_FREQ)
if(!(. % 2)) // Ensure the last digit is an odd number
. += 1
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index 7cbfbd040a..aa388d7413 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -563,7 +563,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- objective_parts += "Objective #[count] : [objective.explanation_text] Success! "
+ objective_parts += "Objective #[count] : [objective.explanation_text] Success! "
else if(completion <= 0)
objective_parts += "Objective #[count] : [objective.explanation_text] Fail. "
else
diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm
index faa8c22f38..dadd4322fb 100644
--- a/code/__HELPERS/sanitize_values.dm
+++ b/code/__HELPERS/sanitize_values.dm
@@ -6,6 +6,13 @@
return number
return default
+/proc/sanitize_num_clamp(number, min=0, max=1, default=0, quantize=0)
+ if(!isnum(number))
+ return default
+ . = clamp(number, min, max)
+ if(quantize)
+ . = round(number, quantize)
+
/proc/sanitize_text(text, default="")
if(istext(text))
return text
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 4db9658263..ac68692ebe 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -434,6 +434,29 @@ Turf and target are separate in case you want to teleport some distance from a t
return locate(x,y,A.z)
+/**
+ * Get ranged target turf, but with direct targets as opposed to directions
+ *
+ * Starts at atom A and gets the exact angle between A and target
+ * Moves from A with that angle, Range amount of times, until it stops, bound to map size
+ * Arguments:
+ * * A - Initial Firer / Position
+ * * target - Target to aim towards
+ * * range - Distance of returned target turf from A
+ * * offset - Angle offset, 180 input would make the returned target turf be in the opposite direction
+ */
+/proc/get_ranged_target_turf_direct(atom/A, atom/target, range, offset)
+ var/angle = arctan(target.x - A.x, target.y - A.y)
+ if(offset)
+ angle += offset
+ var/turf/T = get_turf(A)
+ for(var/i in 1 to range)
+ var/turf/check = locate(A.x + cos(angle) * i, A.y + sin(angle) * i, A.z)
+ if(!check)
+ break
+ T = check
+
+ return T
// returns turf relative to A offset in dx and dy tiles
// bound to map limits
@@ -777,8 +800,8 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list(
tX = splittext(tX[1], ":")
tX = tX[1]
var/list/actual_view = getviewsize(C ? C.view : world.view)
- tX = CLAMP(origin.x + text2num(tX) - round(actual_view[1] / 2) - 1, 1, world.maxx)
- tY = CLAMP(origin.y + text2num(tY) - round(actual_view[2] / 2) - 1, 1, world.maxy)
+ tX = clamp(origin.x + text2num(tX) - round(actual_view[1] / 2) - 1, 1, world.maxx)
+ tY = clamp(origin.y + text2num(tY) - round(actual_view[2] / 2) - 1, 1, world.maxy)
return locate(tX, tY, tZ)
/proc/screen_loc2turf(text, turf/origin, client/C)
@@ -791,8 +814,8 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list(
tX = text2num(tX[2])
tZ = origin.z
var/list/actual_view = getviewsize(C ? C.view : world.view)
- tX = CLAMP(origin.x + round(actual_view[1] / 2) - tX, 1, world.maxx)
- tY = CLAMP(origin.y + round(actual_view[2] / 2) - tY, 1, world.maxy)
+ tX = clamp(origin.x + round(actual_view[1] / 2) - tX, 1, world.maxx)
+ tY = clamp(origin.y + round(actual_view[2] / 2) - tY, 1, world.maxy)
return locate(tX, tY, tZ)
/proc/IsValidSrc(datum/D)
@@ -1570,7 +1593,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/proc/blood_sucking_checks(var/mob/living/carbon/target, check_neck, check_blood)
//Bypass this if the target isnt carbon.
if(!iscarbon(target))
- return TRUE
+ return TRUE
if(check_neck)
if(istype(target.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace))
return FALSE
diff --git a/code/_compile_options.dm b/code/_compile_options.dm
index fe4761ddcd..9a36c626ba 100644
--- a/code/_compile_options.dm
+++ b/code/_compile_options.dm
@@ -32,31 +32,12 @@
#endif
//Update this whenever you need to take advantage of more recent byond features
-#define MIN_COMPILER_VERSION 512
-#if DM_VERSION < MIN_COMPILER_VERSION
+#define MIN_COMPILER_VERSION 513
+#define MIN_COMPILER_BUILD 1508
+#if DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD
//Don't forget to update this part
#error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update.
-#error You need version 512 or higher
-#endif
-
-//Compatability -- These procs were added in 513.1493, not 513.1490
-//Which really shoulda bumped us up to 514 right then and there but instead Lummox is a dumb dumb
-#if DM_BUILD < 1493
-#define length_char(args...) length(args)
-#define text2ascii_char(args...) text2ascii(args)
-#define copytext_char(args...) copytext(args)
-#define splittext_char(args...) splittext(args)
-#define spantext_char(args...) spantext(args)
-#define nonspantext_char(args...) nonspantext(args)
-#define findtext_char(args...) findtext(args)
-#define findtextEx_char(args...) findtextEx(args)
-#define findlasttext_char(args...) findlasttext(args)
-#define findlasttextEx_char(args...) findlasttextEx(args)
-#define replacetext_char(args...) replacetext(args)
-#define replacetextEx_char(args...) replacetextEx(args)
-// /regex procs
-#define Find_char(args...) Find(args)
-#define Replace_char(args...) Replace(args)
+#error You need version 513.1508 or higher
#endif
//Additional code for the above flags.
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index c1ca671044..52eff15492 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -265,5 +265,25 @@ GLOBAL_LIST_INIT(bitfields, list(
"STORAGE_LIMIT_MAX_W_CLASS" = STORAGE_LIMIT_MAX_W_CLASS,
"STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS,
"STORAGE_LIMIT_VOLUME" = STORAGE_LIMIT_VOLUME
+ ),
+ "mutantrace_variation" = list(
+ "STYLE_DIGITIGRADE" = STYLE_DIGITIGRADE,
+ "STYLE_MUZZLE" = STYLE_MUZZLE,
+ "STYLE_SNEK_TAURIC" = STYLE_SNEK_TAURIC,
+ "STYLE_PAW_TAURIC" = STYLE_PAW_TAURIC,
+ "STYLE_HOOF_TAURIC" = STYLE_HOOF_TAURIC,
+ "STYLE_NO_ANTHRO_ICON" = STYLE_NO_ANTHRO_ICON,
+ "USE_SNEK_CLIP_MASK" = USE_SNEK_CLIP_MASK,
+ "USE_QUADRUPED_CLIP_MASK" = USE_QUADRUPED_CLIP_MASK
+ ),
+ "vis_flags" = list(
+ "VIS_INHERIT_ICON" = VIS_INHERIT_ICON,
+ "VIS_INHERIT_ICON_STATE" = VIS_INHERIT_ICON_STATE,
+ "VIS_INHERIT_DIR" = VIS_INHERIT_DIR,
+ "VIS_INHERIT_LAYER" = VIS_INHERIT_LAYER,
+ "VIS_INHERIT_PLANE" = VIS_INHERIT_PLANE,
+ "VIS_INHERIT_ID" = VIS_INHERIT_ID,
+ "VIS_UNDERLAY" = VIS_UNDERLAY,
+ "VIS_HIDE" = VIS_HIDE
)
))
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 968995e81d..aacb1737a2 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -137,8 +137,8 @@ GLOBAL_LIST_INIT(jumpsuitlist, list(PREF_SUIT, PREF_SKIRT))
#define UPLINK_PEN "Pen" //like a real spy!
GLOBAL_LIST_INIT(uplink_spawn_loc_list, list(UPLINK_PDA, UPLINK_RADIO, UPLINK_PEN))
- //Female Uniforms
-GLOBAL_LIST_EMPTY(female_clothing_icons)
+//List of cached alpha masked icons.
+GLOBAL_LIST_EMPTY(alpha_masked_worn_icons)
//radical shit
GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF"))
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index f85503a678..632904202d 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -115,5 +115,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/autosurgeon/penis = 1,
/obj/item/autosurgeon/testicles = 1,
/obj/item/storage/box/marshmallow = 2,
+ /obj/item/clothing/gloves/tackler/offbrand = 1,
"" = 3
))
diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm
index 1f4a03d996..94b0338412 100644
--- a/code/_globalvars/lists/mapping.dm
+++ b/code/_globalvars/lists/mapping.dm
@@ -49,3 +49,8 @@ GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area)
GLOBAL_LIST_EMPTY(all_abstract_markers)
GLOBAL_LIST_EMPTY(stationroom_landmarks) //List of all spawns for stationrooms
+
+///Away missions, VR, random z levels stuff.
+GLOBAL_LIST_EMPTY(random_zlevels_generated)
+GLOBAL_LIST_INIT(potential_away_levels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt"))
+GLOBAL_LIST_INIT(potential_vr_levels, generateMapList(filename = "[global.config.directory]/vr_config.txt"))
diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm
index 04d4c2888a..959a62ebf8 100644
--- a/code/_globalvars/lists/mobs.dm
+++ b/code/_globalvars/lists/mobs.dm
@@ -43,15 +43,26 @@ GLOBAL_LIST_EMPTY(mob_config_movespeed_type_lookup)
GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traitor-target purposes.
/proc/update_config_movespeed_type_lookup(update_mobs = TRUE)
- var/list/mob_types = list()
+ // NOTE: This is entirely based on the fact that byond typesof/subtypesof gets longer/deeper paths before shallower ones.
+ // If that ever breaks this entire proc breaks.
+ var/list/mob_types = typesof(/mob)
var/list/entry_value = CONFIG_GET(keyed_list/multiplicative_movespeed)
+ var/list/configured_types = list()
for(var/path in entry_value)
var/value = entry_value[path]
- if(!value)
+ if(isnull(value))
continue
+ // associative list sets for elements that already exist preserve order
+ mob_types[path] = value
+ // now go back up through it to set everything, making absolute sure that base paths are overridden by child paths all the way down the path tree.
+ for(var/i in length(mob_types) to 1 step -1)
+ var/path = mob_types[i]
+ if(isnull(mob_types[path]))
+ continue
+ // we're going from bottom to top so it should be safe to do this without further checks..
for(var/subpath in typesof(path))
- mob_types[subpath] = value
- GLOB.mob_config_movespeed_type_lookup = mob_types
+ configured_types[subpath] = mob_types[path]
+ GLOB.mob_config_movespeed_type_lookup = configured_types
if(update_mobs)
update_mob_config_movespeeds()
diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm
index af483bf888..b039e6d114 100644
--- a/code/_globalvars/misc.dm
+++ b/code/_globalvars/misc.dm
@@ -33,3 +33,5 @@ GLOBAL_VAR(bible_icon_state)
GLOBAL_VAR(bible_item_state)
GLOBAL_VAR(holy_weapon_type)
GLOBAL_VAR(holy_armor_type)
+
+GLOBAL_VAR_INIT(internal_tick_usage, 0.2 * world.tick_lag)
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
new file mode 100644
index 0000000000..dd8b9f0d94
--- /dev/null
+++ b/code/_globalvars/traits.dm
@@ -0,0 +1,138 @@
+/*
+ FUN ZONE OF ADMIN LISTINGS
+ Try to keep this in sync with __DEFINES/traits.dm
+ quirks have it's own panel so we don't need them here.
+*/
+
+GLOBAL_LIST_INIT(traits_by_type, list(
+ /mob = list(
+ "TRAIT_BLIND" = TRAIT_BLIND,
+ "TRAIT_MUTE" = TRAIT_MUTE,
+ "TRAIT_EMOTEMUTE " = TRAIT_EMOTEMUTE,
+ "TRAIT_DEAF" = TRAIT_DEAF,
+ "TRAIT_NEARSIGHT" = TRAIT_NEARSIGHT,
+ "TRAIT_FAT" = TRAIT_FAT,
+ "TRAIT_HUSK" = TRAIT_HUSK,
+ "TRAIT_NOCLONE" = TRAIT_NOCLONE,
+ "TRAIT_CLUMSY" = TRAIT_CLUMSY,
+ "TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS,
+ "TRAIT_DUMB" = TRAIT_DUMB,
+ "TRAIT_MONKEYLIKE" = TRAIT_MONKEYLIKE,
+ "TRAIT_PACIFISM" = TRAIT_PACIFISM,
+ "TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN,
+ "TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA,
+ "TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH,
+ "TRAIT_DISFIGURED" = TRAIT_DISFIGURED,
+ "TRAIT_XENO_HOST" = TRAIT_XENO_HOST,
+ "TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE,
+ "TRAIT_TASED_RESISTANCE" = TRAIT_TASED_RESISTANCE,
+ "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE,
+ "TRAIT_PUSHIMMUNE" = TRAIT_PUSHIMMUNE,
+ "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE,
+ "TRAIT_STABLEHEART" = TRAIT_STABLEHEART,
+ "TRAIT_STABLELIVER" = TRAIT_STABLELIVER,
+ "TRAIT_RESISTHEAT" = TRAIT_RESISTHEAT,
+ "TRAIT_RESISTHEATHANDS" = TRAIT_RESISTHEATHANDS,
+ "TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD,
+ "TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE,
+ "TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE,
+ "TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE,
+ "TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE,
+ "TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE,
+ "TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER,
+ "TRAIT_NOFIRE" = TRAIT_NOFIRE,
+ "TRAIT_NOGUNS" = TRAIT_NOGUNS,
+ "TRAIT_NOHUNGER" = TRAIT_NOHUNGER,
+ "TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER,
+ "TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT,
+ "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE,
+ "TRAIT_EASYLIMBDISABLE" = TRAIT_EASYLIMBDISABLE,
+ "TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER,
+ "TRAIT_NOBREATH" = TRAIT_NOBREATH,
+ "TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC,
+ "TRAIT_HOLY" = TRAIT_HOLY,
+ "TRAIT_DEPRESSION" = TRAIT_DEPRESSION,
+ "TRAIT_JOLLY" = TRAIT_JOLLY,
+ "TRAIT_NOCRITDAMAGE" = TRAIT_NOCRITDAMAGE,
+ "TRAIT_NOSLIPWATER" = TRAIT_NOSLIPWATER,
+ "TRAIT_NOSLIPALL" = TRAIT_NOSLIPALL,
+ "TRAIT_NODEATH" = TRAIT_NODEATH,
+ "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT,
+ "TRAIT_NOSOFTCRIT" = TRAIT_NOSOFTCRIT,
+ "TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD,
+ "TRAIT_HIJACKER" = TRAIT_HIJACKER,
+ "TRAIT_DISSECTED" = TRAIT_DISSECTED,
+ "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
+ "TRAIT_FEARLESS" = TRAIT_FEARLESS,
+ "TRAIT_PARALYSIS_L_ARM" = TRAIT_PARALYSIS_L_ARM,
+ "TRAIT_PARALYSIS_R_ARM" = TRAIT_PARALYSIS_R_ARM,
+ "TRAIT_PARALYSIS_L_LEG" = TRAIT_PARALYSIS_L_LEG,
+ "TRAIT_PARALYSIS_R_LEG" = TRAIT_PARALYSIS_R_LEG,
+ "TRAIT_DISK_VERIFIER" = TRAIT_DISK_VERIFIER,
+ "TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION,
+ "TRAIT_THERMAL_VISION" = TRAIT_THERMAL_VISION,
+ "TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING,
+ "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING,
+ "TRAIT_SURGEON" = TRAIT_SURGEON,
+ "TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER,
+ "TRAIT_MAGIC_CHOKE" = TRAIT_MAGIC_CHOKE,
+ "TRAIT_SOOTHED_THROAT" = TRAIT_SOOTHED_THROAT,
+ "TRAIT_LAW_ENFORCEMENT_METABOLISM" = TRAIT_LAW_ENFORCEMENT_METABOLISM,
+ "TRAIT_UNINTELLIGIBLE_SPEECH" = TRAIT_UNINTELLIGIBLE_SPEECH,
+ "TRAIT_UNSTABLE" = TRAIT_UNSTABLE,
+ "TRAIT_COLDBLOODED" = TRAIT_COLDBLOODED,
+ "TRAIT_NONATURALHEAL" = TRAIT_NONATURALHEAL,
+ "TRAIT_NORUNNING" = TRAIT_NORUNNING,
+ "TRAIT_NOMARROW" = TRAIT_NOMARROW,
+ "TRAIT_NOPULSE" = TRAIT_NOPULSE,
+ "TRAIT_EXEMPT_HEALTH_EVENTS" = TRAIT_EXEMPT_HEALTH_EVENTS,
+ "TRAIT_NO_MIDROUND_ANTAG" = TRAIT_NO_MIDROUND_ANTAG,
+ "TRAIT_PUGILIST" = TRAIT_PUGILIST,
+ "TRAIT_KI_VAMPIRE" = TRAIT_KI_VAMPIRE,
+ "TRAIT_PASSTABLE" = TRAIT_PASSTABLE,
+ "TRAIT_GIANT" = TRAIT_GIANT,
+ "TRAIT_DWARF" = TRAIT_DWARF,
+ "TRAIT_COMBAT_MODE_LOCKED" = TRAIT_COMBAT_MODE_LOCKED,
+ "TRAIT_SPRINT_LOCKED" = TRAIT_SPRINT_LOCKED,
+ "TRAIT_AUTO_CATCH_ITEM" = TRAIT_AUTO_CATCH_ITEM,
+ "TRAIT_FREESPRINT" = TRAIT_FREESPRINT,
+ "TRAIT_NO_INTERNALS" = TRAIT_NO_INTERNALS,
+ "TRAIT_NO_ALCOHOL" = TRAIT_NO_ALCOHOL,
+ "TRAIT_MUTATION_STASIS" = TRAIT_MUTATION_STASIS,
+ "TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER,
+ "TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP,
+ "TRAIT_SILENT_STEP" = TRAIT_SILENT_STEP,
+ "TRAIT_VORACIOUS" = TRAIT_VORACIOUS,
+ "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE,
+ "TRAIT_FREERUNNING" = TRAIT_FREERUNNING,
+ "TRAIT_SKITTISH" = TRAIT_SKITTISH,
+ "TRAIT_POOR_AIM" = TRAIT_POOR_AIM,
+ "TRAIT_PROSOPAGNOSIA" = TRAIT_PROSOPAGNOSIA,
+ "TRAIT_DRUNK_HEALING" = TRAIT_DRUNK_HEALING,
+ "TRAIT_TAGGER" = TRAIT_TAGGER,
+ "TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER,
+ "TRAIT_MUSICIAN" = TRAIT_MUSICIAN,
+ "TRAIT_MASO" = TRAIT_MASO,
+ "TRAIT_HIGH_BLOOD" = TRAIT_HIGH_BLOOD,
+ "TRAIT_EMPATH" = TRAIT_EMPATH,
+ "TRAIT_FRIENDLY" = TRAIT_FRIENDLY
+ ),
+ /obj/item/bodypart = list(
+ "TRAIT_PARALYSIS" = TRAIT_PARALYSIS
+ ),
+ /obj/item = list(
+ "TRAIT_NODROP" = TRAIT_NODROP,
+ "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT
+ )
+ ))
+
+
+/// value -> trait name, generated on use from trait_by_type global
+GLOBAL_LIST(trait_name_map)
+
+/proc/generate_trait_name_map()
+ . = list()
+ for(var/key in GLOB.traits_by_type)
+ for(var/tname in GLOB.traits_by_type[key])
+ var/val = GLOB.traits_by_type[key][tname]
+ .[val] = tname
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 46c2c919f4..9ce96585d3 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -75,6 +75,9 @@
if(notransform)
return
+ if(SEND_SIGNAL(src, COMSIG_MOB_CLICKON, A, params) & COMSIG_MOB_CANCEL_CLICKON)
+ return
+
var/list/modifiers = params2list(params)
if(modifiers["shift"] && modifiers["middle"])
ShiftMiddleClickOn(A)
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 28fd7397b0..4b963c730d 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -162,7 +162,7 @@
#define ui_ghost_orbit "SOUTH:6,CENTER-1:24"
#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:24"
#define ui_ghost_teleport "SOUTH:6,CENTER+1:24"
-#define ui_ghost_pai "SOUTH: 6, CENTER+2:24"
+#define ui_ghost_spawners "SOUTH: 6, CENTER+2:24"
//UI position overrides for 1:1 screen layout. (default is 7:5)
diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm
index 14da637f18..0cdac111b0 100644
--- a/code/_onclick/hud/ghost.dm
+++ b/code/_onclick/hud/ghost.dm
@@ -36,13 +36,13 @@
var/mob/dead/observer/G = usr
G.dead_tele()
-/obj/screen/ghost/pai
- name = "pAI Candidate"
- icon_state = "pai"
+/obj/screen/ghost/spawners
+ name = "Ghost role spawners"
+ icon_state = "spawners"
-/obj/screen/ghost/pai/Click()
+/obj/screen/ghost/spawners/Click()
var/mob/dead/observer/G = usr
- G.register_pai()
+ G.open_spawners_menu()
/datum/hud/ghost/New(mob/owner)
..()
@@ -68,8 +68,8 @@
using.hud = src
static_inventory += using
- using = new /obj/screen/ghost/pai()
- using.screen_loc = ui_ghost_pai
+ using = new /obj/screen/ghost/spawners()
+ using.screen_loc = ui_ghost_spawners
using.hud = src
static_inventory += using
diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm
index e028212e96..5e474331f6 100644
--- a/code/_onclick/hud/picture_in_picture.dm
+++ b/code/_onclick/hud/picture_in_picture.dm
@@ -102,8 +102,8 @@
add_overlay(standard_background)
/obj/screen/movable/pic_in_pic/proc/set_view_size(width, height, do_refresh = TRUE)
- width = CLAMP(width, 0, max_dimensions)
- height = CLAMP(height, 0, max_dimensions)
+ width = clamp(width, 0, max_dimensions)
+ height = clamp(height, 0, max_dimensions)
src.width = width
src.height = height
diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm
index 7a8cc20d76..a0dade37bd 100644
--- a/code/_onclick/hud/plane_master.dm
+++ b/code/_onclick/hud/plane_master.dm
@@ -19,7 +19,7 @@
///Things rendered on "openspace"; holes in multi-z
/obj/screen/plane_master/openspace
name = "open space plane master"
- plane = FLOOR_OPENSPACE_PLANE
+ plane = OPENSPACE_BACKDROP_PLANE
appearance_flags = PLANE_MASTER
blend_mode = BLEND_MULTIPLY
alpha = 255
@@ -106,8 +106,8 @@
*
* You really shouldn't be directly using this, use atom helpers instead
*/
-/obj/screen/plane_master/emissive_unblockable
- name = "emissive mob plane master"
+/obj/screen/plane_master/emissive_blocker
+ name = "emissive blocker plane master"
plane = EMISSIVE_BLOCKER_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
render_target = EMISSIVE_BLOCKER_RENDER_TARGET
diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm
index df91223ed1..1dce4ecc42 100644
--- a/code/_onclick/hud/radial.dm
+++ b/code/_onclick/hud/radial.dm
@@ -255,6 +255,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
current_user = M.client
//Blank
menu_holder = image(icon='icons/effects/effects.dmi',loc=anchor,icon_state="nothing",layer = ABOVE_HUD_LAYER)
+ menu_holder.plane = ABOVE_HUD_PLANE
menu_holder.appearance_flags |= KEEP_APART
menu_holder.vis_contents += elements + close_button
current_user.images += menu_holder
@@ -285,13 +286,16 @@ GLOBAL_LIST_EMPTY(radial_menus)
Choices should be a list where list keys are movables or text used for element names and return value
and list values are movables/icons/images used for element icons
*/
-/proc/show_radial_menu(mob/user, atom/anchor, list/choices, uniqueid, radius, datum/callback/custom_check, require_near = FALSE, tooltips = FALSE)
+/proc/show_radial_menu(mob/user, atom/anchor, list/choices, uniqueid, radius, datum/callback/custom_check, require_near = FALSE, tooltips = FALSE, no_repeat_close = FALSE)
if(!user || !anchor || !length(choices))
return
if(!uniqueid)
uniqueid = "defmenu_[REF(user)]_[REF(anchor)]"
if(GLOB.radial_menus[uniqueid])
+ if(!no_repeat_close)
+ var/datum/radial_menu/menu = GLOB.radial_menus[uniqueid]
+ menu.finished = TRUE
return
var/datum/radial_menu/menu = new
@@ -308,4 +312,9 @@ GLOBAL_LIST_EMPTY(radial_menus)
var/answer = menu.selected_choice
qdel(menu)
GLOB.radial_menus -= uniqueid
+ if(require_near && !in_range(anchor, user))
+ return
+ if(istype(custom_check))
+ if(!custom_check.Invoke())
+ return
return answer
\ No newline at end of file
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index b0e1d39d9a..33cfef03c7 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -91,7 +91,7 @@
log_combat(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
add_fingerprint(user)
- user.adjustStaminaLossBuffered(getweight()*0.8)//CIT CHANGE - makes attacking things cause stamina loss
+ user.adjustStaminaLossBuffered(getweight(user, STAM_COST_ATTACK_MOB_MULT))//CIT CHANGE - makes attacking things cause stamina loss
//the equivalent of the standard version of attack() but for object targets.
/obj/item/proc/attack_obj(obj/O, mob/living/user)
@@ -102,7 +102,7 @@
if(IS_STAMCRIT(user)) // CIT CHANGE - makes it impossible to attack in stamina softcrit
to_chat(user, "You're too exhausted. ") // CIT CHANGE - ditto
return // CIT CHANGE - ditto
- user.adjustStaminaLossBuffered(getweight()*1.2)//CIT CHANGE - makes attacking things cause stamina loss
+ user.adjustStaminaLossBuffered(getweight(user, STAM_COST_ATTACK_OBJ_MULT))//CIT CHANGE - makes attacking things cause stamina loss
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(O)
O.attacked_by(src, user)
@@ -111,26 +111,32 @@
return
/obj/attacked_by(obj/item/I, mob/living/user)
- if(I.force)
+ var/totitemdamage = I.force
+ var/bad_flag = NONE
+ if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user))
+ totitemdamage *= 0.5
+ bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills.
+ if(I.used_skills && user.mind)
+ if(totitemdamage)
+ totitemdamage = user.mind.skill_holder.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_flag)
+ for(var/skill in I.used_skills)
+ if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_OBJ))
+ continue
+ user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain)
+ if(totitemdamage)
visible_message("[user] has hit [src] with [I]! ", null, null, COMBAT_MESSAGE_RANGE)
//only witnesses close by and the victim see a hit message.
log_combat(user, src, "attacked", I)
- take_damage(I.force, I.damtype, "melee", 1)
+ take_damage(totitemdamage, I.damtype, "melee", 1)
/mob/living/attacked_by(obj/item/I, mob/living/user)
- //CIT CHANGES START HERE - combatmode and resting checks
- var/totitemdamage = I.force
- if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
- totitemdamage *= 0.5
- if(!CHECK_MOBILITY(user, MOBILITY_STAND))
- totitemdamage *= 0.5
- //CIT CHANGES END HERE
- if((user != src) && run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user) & BLOCK_SUCCESS)
+ var/totitemdamage = pre_attacked_by(I, user)
+ if((user != src) && mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, null, null) & BLOCK_SUCCESS)
return FALSE
send_item_attack_message(I, user)
- I.do_stagger_action(src, user)
+ I.do_stagger_action(src, user, totitemdamage)
if(I.force)
- apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage
+ apply_damage(totitemdamage, I.damtype)
if(I.damtype == BRUTE)
if(prob(33))
I.add_mob_blood(src)
@@ -146,6 +152,28 @@
else
return ..()
+/mob/living/proc/pre_attacked_by(obj/item/I, mob/living/user)
+ . = I.force
+ var/bad_flag = NONE
+ if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user))
+ . *= 0.5
+ bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills.
+ if(!CHECK_MOBILITY(user, MOBILITY_STAND))
+ . *= 0.5
+ if(!user.mind || !I.used_skills)
+ return
+ if(.)
+ . = user.mind.skill_holder.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_flag)
+ for(var/skill in I.used_skills)
+ if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_MOB))
+ continue
+ user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain)
+
+/mob/living/carbon/pre_attacked_by(obj/item/I, mob/living/user)
+ . = ..()
+ if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
+ . *= 1.5
+
// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person.
// Click parameters is the params string from byond Click() code, see that documentation.
/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
@@ -155,9 +183,9 @@
/obj/item/proc/get_clamped_volume()
if(w_class)
if(force)
- return CLAMP((force + w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100
+ return clamp((force + w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100
else
- return CLAMP(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100
+ return clamp(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100
/mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area)
var/message_verb = "attacked"
@@ -179,22 +207,30 @@
return 1
/// How much stamina this takes to swing this is not for realism purposes hecc off.
-/obj/item/proc/getweight()
- return total_mass || w_class * 1.25
+/obj/item/proc/getweight(mob/living/user, multiplier = 1, flags = SKILL_STAMINA_COST)
+ . = (total_mass || w_class * STAM_COST_W_CLASS_MULT) * multiplier
+ if(!user)
+ return
+ var/bad_flag = NONE
+ if(iscarbon(user) && !(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
+ . *= STAM_COST_NO_COMBAT_MULT
+ bad_flag |= SKILL_COMBAT_MODE
+ if(used_skills && user.mind)
+ . = user.mind.skill_holder.item_action_skills_mod(src, ., skill_difficulty, flags, bad_flag, FALSE)
/// How long this staggers for. 0 and negatives supported.
-/obj/item/proc/melee_stagger_duration()
+/obj/item/proc/melee_stagger_duration(force_override)
if(!isnull(stagger_force))
return stagger_force
/// totally not an untested, arbitrary equation.
- return clamp((1.5 + (w_class/7.5)) * (force / 2), 0, 10 SECONDS)
+ return clamp((1.5 + (w_class/7.5)) * ((force_override || force) / 2), 0, 10 SECONDS)
-/obj/item/proc/do_stagger_action(mob/living/target, mob/living/user)
+/obj/item/proc/do_stagger_action(mob/living/target, mob/living/user, force_override)
if(!CHECK_BITFIELD(target.status_flags, CANSTAGGER))
return FALSE
if(target.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
target.do_staggered_animation()
- var/duration = melee_stagger_duration()
+ var/duration = melee_stagger_duration(force_override)
if(!duration) //0
return FALSE
else if(duration > 0)
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index b6782f883a..ed7384697c 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -5,7 +5,7 @@
return // seems legit.
// Things you might plausibly want to follow
- if(ismovableatom(A))
+ if(ismovable(A))
ManualFollow(A)
// Otherwise jump
diff --git a/code/controllers/admin.dm b/code/controllers/admin.dm
index 19fef28597..28803f0979 100644
--- a/code/controllers/admin.dm
+++ b/code/controllers/admin.dm
@@ -3,9 +3,7 @@
name = "Initializing..."
var/target
-INITIALIZE_IMMEDIATE(/obj/effect/statclick)
-
-/obj/effect/statclick/Initialize(mapload, text, target) //Don't port this to Initialize it's too critical
+/obj/effect/statclick/New(loc, text, target) //Don't port this to Initialize it's too critical
. = ..()
name = text
src.target = target
@@ -33,6 +31,14 @@ INITIALIZE_IMMEDIATE(/obj/effect/statclick)
usr.client.debug_variables(target)
message_admins("Admin [key_name_admin(usr)] is debugging the [target] [class].")
+/obj/effect/statclick/misc_subsystems/Click()
+ if(!usr.client.holder)
+ return
+ var/subsystem = input(usr, "Debug which subsystem?", "Debug nonprocessing subsystem") as null|anything in (Master.subsystems - Master.statworthy_subsystems)
+ if(!subsystem)
+ return
+ usr.client.debug_variables(subsystem)
+ message_admins("Admin [key_name_admin(usr)] is debugging the [subsystem] subsystem.")
// Debug verbs.
/client/proc/restart_controller(controller in list("Master", "Failsafe"))
diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm
index d7323700e4..4647b83cd7 100644
--- a/code/controllers/configuration/config_entry.dm
+++ b/code/controllers/configuration/config_entry.dm
@@ -103,7 +103,7 @@
return FALSE
var/temp = text2num(trim(str_val))
if(!isnull(temp))
- config_entry_value = CLAMP(integer ? round(temp) : temp, min_val, max_val)
+ config_entry_value = clamp(integer ? round(temp) : temp, min_val, max_val)
if(config_entry_value != temp && !(datum_flags & DF_VAR_EDITED))
log_config("Changing [name] from [temp] to [config_entry_value]!")
return TRUE
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index cb18d37f21..2eefb82f97 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -35,6 +35,13 @@
/datum/config_entry/keyed_list/midround_antag/ValidateListEntry(key_name, key_value)
return key_name in config.modes
+/datum/config_entry/keyed_list/force_antag_count
+ key_mode = KEY_MODE_TEXT
+ value_mode = VALUE_MODE_FLAG
+
+/datum/config_entry/keyed_list/force_antag_count/ValidateListEntry(key_name, key_value)
+ return key_name in config.modes
+
/datum/config_entry/keyed_list/policy
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_TEXT
@@ -217,7 +224,8 @@
config_entry_value = list( //DEFAULTS
/mob/living/simple_animal = 1,
/mob/living/silicon/pai = 1,
- /mob/living/carbon/alien/humanoid/hunter = -1,
+ /mob/living/carbon/alien/humanoid/sentinel = 0.25,
+ /mob/living/carbon/alien/humanoid/drone = 0.5,
/mob/living/carbon/alien/humanoid/royal/praetorian = 1,
/mob/living/carbon/alien/humanoid/royal/queen = 3
)
@@ -248,8 +256,18 @@
/datum/config_entry/number/movedelay/run_delay
+/datum/config_entry/number/movedelay/run_delay/ValidateAndSet()
+ . = ..()
+ var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/run)
+ M.sync()
+
/datum/config_entry/number/movedelay/walk_delay
+/datum/config_entry/number/movedelay/walk_delay/ValidateAndSet()
+ . = ..()
+ var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk)
+ M.sync()
+
/datum/config_entry/number/movedelay/sprint_speed_increase
config_entry_value = 1
@@ -288,6 +306,8 @@
/datum/config_entry/flag/roundstart_away //Will random away mission be loaded.
+/datum/config_entry/flag/roundstart_vr //Will virtual reality missions be loaded?
+
/datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled.
config_entry_value = 18000
min_val = 0
@@ -335,6 +355,11 @@
config_entry_value = 16
min_val = 0
+/datum/config_entry/number/icemoon_budget
+ config_entry_value = 90
+ integer = FALSE
+ min_val = 0
+
/datum/config_entry/number/station_space_budget
config_entry_value = 10
min_val = 0
@@ -455,10 +480,12 @@
config_entry_value = RESIZE_DEFAULT_SIZE
min_val = 0.1 //to avoid issues with zeros and negative values.
max_val = RESIZE_DEFAULT_SIZE
+ integer = FALSE
/datum/config_entry/number/body_size_max
config_entry_value = RESIZE_DEFAULT_SIZE
min_val = RESIZE_DEFAULT_SIZE
+ integer = FALSE
//Pun-Pun movement slowdown given to characters with a body size smaller than this value,
//to compensate for their smaller hitbox.
@@ -467,13 +494,14 @@
config_entry_value = RESIZE_DEFAULT_SIZE * 0.85
min_val = 0
max_val = RESIZE_DEFAULT_SIZE
+ integer = FALSE
//multiplicative slowdown multiplier. See 'dna.update_body_size' for the operation.
//doesn't apply to floating or crawling mobs
/datum/config_entry/number/body_size_slowdown_multiplier
config_entry_value = 0.25
min_val = 0.1 //To encourage folks to disable the slowdown through the above config instead.
+ integer = FALSE
//Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones.
-/datum/config_entry/number/allow_custom_skintones
- config_entry_value = 1
+/datum/config_entry/flag/allow_custom_skintones
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index 8772fac5af..cdbea1de85 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -28,6 +28,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
// List of subsystems to process().
var/list/subsystems
+ /// List of subsystems to include in the MC stat panel.
+ var/list/statworthy_subsystems
// Vars for keeping track of tick drift.
var/init_timeofday
@@ -36,6 +38,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
var/sleep_delta = 1
+ ///Only run ticker subsystems for the next n ticks.
+ var/skip_ticks = 0
+
var/make_runtime = 0
var/initializations_finished_with_no_players_logged_in //I wonder what this could be?
@@ -62,6 +67,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
//used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits
var/static/current_ticklimit = TICK_LIMIT_RUNNING
+ /// Statclick for misc subsystems
+ var/obj/effect/statclick/misc_subsystems/misc_statclick
+
/datum/controller/master/New()
if(!config)
config = new
@@ -84,6 +92,11 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
_subsystems += new I
Master = src
+ // We want to see all subsystems during init.
+ statworthy_subsystems = subsystems.Copy()
+
+ misc_statclick = new(null, "Debug")
+
if(!GLOB)
new /datum/controller/global_vars
@@ -254,10 +267,14 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
var/list/tickersubsystems = list()
var/list/runlevel_sorted_subsystems = list(list()) //ensure we always have at least one runlevel
var/timer = world.time
+ statworthy_subsystems = list()
for (var/thing in subsystems)
var/datum/controller/subsystem/SS = thing
if (SS.flags & SS_NO_FIRE)
+ if(SS.flags & SS_ALWAYS_SHOW_STAT)
+ statworthy_subsystems += SS
continue
+ statworthy_subsystems += SS
SS.queued_time = 0
SS.queue_next = null
SS.queue_prev = null
@@ -335,7 +352,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
new/datum/controller/failsafe() // (re)Start the failsafe.
//now do the actual stuff
- if (!queue_head || !(iteration % 3))
+ if (!skip_ticks)
var/checking_runlevel = current_runlevel
if(cached_runlevel != checking_runlevel)
//resechedule subsystems
@@ -381,6 +398,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
iteration++
last_run = world.time
+ if (skip_ticks)
+ skip_ticks--
src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta)
current_ticklimit = TICK_LIMIT_RUNNING
if (processing * sleep_delta <= world.tick_lag)
@@ -444,10 +463,12 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
while (queue_node)
if (ran && TICK_USAGE > TICK_LIMIT_RUNNING)
break
-
queue_node_flags = queue_node.flags
queue_node_priority = queue_node.queued_priority
+ if (!(queue_node_flags & SS_TICKER) && skip_ticks)
+ queue_node = queue_node.queue_next
+ continue
//super special case, subsystems where we can't make them pause mid way through
//if we can't run them this tick (without going over a tick)
//we bump up their priority and attempt to run them next tick
@@ -455,14 +476,15 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
// in those cases, so we just let them run)
if (queue_node_flags & SS_NO_TICK_CHECK)
if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_ticker)
- queue_node.queued_priority += queue_priority_count * 0.1
- queue_priority_count -= queue_node_priority
- queue_priority_count += queue_node.queued_priority
- current_tick_budget -= queue_node_priority
- queue_node = queue_node.queue_next
+ if (!(queue_node_flags & SS_BACKGROUND))
+ queue_node.queued_priority += queue_priority_count * 0.1
+ queue_priority_count -= queue_node_priority
+ queue_priority_count += queue_node.queued_priority
+ current_tick_budget -= queue_node_priority
+ queue_node = queue_node.queue_next
continue
- if ((queue_node_flags & SS_BACKGROUND) && !bg_calc)
+ if (!bg_calc && (queue_node_flags & SS_BACKGROUND))
current_tick_budget = queue_priority_count_bg
bg_calc = TRUE
@@ -515,7 +537,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
queue_node.paused_ticks = 0
queue_node.paused_tick_usage = 0
- if (queue_node_flags & SS_BACKGROUND) //update our running total
+ if (bg_calc) //update our running total
queue_priority_count_bg -= queue_node_priority
else
queue_priority_count -= queue_node_priority
@@ -583,14 +605,19 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
log_world("MC: SoftReset: Finished.")
. = 1
+/// Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick.
+/datum/controller/master/proc/laggy_byond_map_update_incoming()
+ if (!skip_ticks)
+ skip_ticks = 1
/datum/controller/master/stat_entry()
if(!statclick)
statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
- stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))")
- stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration])"))
+ stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)")
+ stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration]) (TickLimit: [round(Master.current_ticklimit, 0.1)])"))
+ stat("Misc Subsystems", misc_statclick)
/datum/controller/master/StartLoadingMap()
//disallow more than one map to load at once, multithreading it will just cause race conditions
diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm
index 13facc7666..d8c7724333 100644
--- a/code/controllers/subsystem/air.dm
+++ b/code/controllers/subsystem/air.dm
@@ -1,11 +1,3 @@
-#define SSAIR_PIPENETS 1
-#define SSAIR_ATMOSMACHINERY 2
-#define SSAIR_REACTQUEUE 3
-#define SSAIR_EXCITEDGROUPS 4
-#define SSAIR_HIGHPRESSURE 5
-#define SSAIR_HOTSPOTS 6
-#define SSAIR_SUPERCONDUCTIVITY 7
-
SUBSYSTEM_DEF(air)
name = "Atmospherics"
init_order = INIT_ORDER_AIR
@@ -20,6 +12,7 @@ SUBSYSTEM_DEF(air)
var/cost_hotspots = 0
var/cost_superconductivity = 0
var/cost_pipenets = 0
+ var/cost_rebuilds = 0
var/cost_atmos_machinery = 0
var/list/excited_groups = list()
@@ -27,6 +20,7 @@ SUBSYSTEM_DEF(air)
var/list/turf_react_queue = list()
var/list/hotspots = list()
var/list/networks = list()
+ var/list/pipenets_needing_rebuilt = list()
var/list/obj/machinery/atmos_machinery = list()
var/list/pipe_init_dirs_cache = list()
@@ -39,7 +33,7 @@ SUBSYSTEM_DEF(air)
var/list/currentrun = list()
- var/currentpart = SSAIR_PIPENETS
+ var/currentpart = SSAIR_REBUILD_PIPENETS
var/map_loading = TRUE
var/list/queued_for_activation
@@ -52,6 +46,7 @@ SUBSYSTEM_DEF(air)
msg += "HS:[round(cost_hotspots,1)]|"
msg += "SC:[round(cost_superconductivity,1)]|"
msg += "PN:[round(cost_pipenets,1)]|"
+ msg += "RB:[round(cost_rebuilds,1)]|"
msg += "AM:[round(cost_atmos_machinery,1)]"
msg += "} "
msg += "AT:[active_turfs.len]|"
@@ -77,6 +72,18 @@ SUBSYSTEM_DEF(air)
/datum/controller/subsystem/air/fire(resumed = 0)
var/timer = TICK_USAGE_REAL
+ if(currentpart == SSAIR_REBUILD_PIPENETS)
+ var/list/pipenet_rebuilds = pipenets_needing_rebuilt
+ for(var/thing in pipenet_rebuilds)
+ var/obj/machinery/atmospherics/AT = thing
+ AT.build_network()
+ cost_rebuilds = MC_AVERAGE(cost_rebuilds, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
+ pipenets_needing_rebuilt.Cut()
+ if(state != SS_RUNNING)
+ return
+ resumed = FALSE
+ currentpart = SSAIR_PIPENETS
+
if(currentpart == SSAIR_PIPENETS || !resumed)
process_pipenets(resumed)
cost_pipenets = MC_AVERAGE(cost_pipenets, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
@@ -137,9 +144,7 @@ SUBSYSTEM_DEF(air)
if(state != SS_RUNNING)
return
resumed = 0
- currentpart = SSAIR_PIPENETS
-
-
+ currentpart = SSAIR_REBUILD_PIPENETS
/datum/controller/subsystem/air/proc/process_pipenets(resumed = 0)
if (!resumed)
@@ -156,6 +161,9 @@ SUBSYSTEM_DEF(air)
if(MC_TICK_CHECK)
return
+/datum/controller/subsystem/air/proc/add_to_rebuild_queue(atmos_machine)
+ if(istype(atmos_machine, /obj/machinery/atmospherics))
+ pipenets_needing_rebuilt += atmos_machine
/datum/controller/subsystem/air/proc/process_atmos_machinery(resumed = 0)
var/seconds = wait * 0.1
diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm
index 5332a9a8b8..5dde6c6985 100644
--- a/code/controllers/subsystem/atoms.dm
+++ b/code/controllers/subsystem/atoms.dm
@@ -16,7 +16,6 @@ SUBSYSTEM_DEF(atoms)
/datum/controller/subsystem/atoms/Initialize(timeofday)
GLOB.fire_overlay.appearance_flags = RESET_COLOR
- setupGenetics() //to set the mutations' sequence.
initialized = INITIALIZATION_INNEW_MAPLOAD
InitializeAtoms()
return ..()
diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm
index 12b467b624..c6e6a84bcf 100644
--- a/code/controllers/subsystem/lighting.dm
+++ b/code/controllers/subsystem/lighting.dm
@@ -6,7 +6,6 @@ SUBSYSTEM_DEF(lighting)
name = "Lighting"
wait = 2
init_order = INIT_ORDER_LIGHTING
- flags = SS_TICKER
/datum/controller/subsystem/lighting/stat_entry()
..("L:[GLOB.lighting_update_lights.len]|C:[GLOB.lighting_update_corners.len]|O:[GLOB.lighting_update_objects.len]")
@@ -85,4 +84,4 @@ SUBSYSTEM_DEF(lighting)
/datum/controller/subsystem/lighting/Recover()
initialized = SSlighting.initialized
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 1b0c185ba5..b234c4c4f2 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -1,3 +1,5 @@
+#define INIT_ANNOUNCE(X) to_chat(world, "[X] "); log_world(X)
+
SUBSYSTEM_DEF(mapping)
name = "Mapping"
init_order = INIT_ORDER_MAPPING
@@ -14,6 +16,8 @@ SUBSYSTEM_DEF(mapping)
var/list/ruins_templates = list()
var/list/space_ruins_templates = list()
var/list/lava_ruins_templates = list()
+ var/list/ice_ruins_templates = list()
+ var/list/ice_ruins_underground_templates = list()
var/list/station_ruins_templates = list()
var/datum/space_level/isolated_ruins_z //Created on demand during ruin loading.
@@ -40,6 +44,13 @@ SUBSYSTEM_DEF(mapping)
var/stat_map_name = "Loading..."
+ /// Lookup list for random generated IDs.
+ var/list/random_generated_ids_by_original = list()
+ /// next id for separating obfuscated ids.
+ var/obfuscation_next_id = 1
+ /// "secret" key
+ var/obfuscation_secret
+
//dlete dis once #39770 is resolved
/datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig()
if(!config)
@@ -50,6 +61,10 @@ SUBSYSTEM_DEF(mapping)
#endif
stat_map_name = config.map_name
+/datum/controller/subsystem/mapping/PreInit()
+ if(!obfuscation_secret)
+ obfuscation_secret = md5(GUID()) //HAH! Guess this!
+
/datum/controller/subsystem/mapping/Initialize(timeofday)
HACK_LoadMapConfig()
if(initialized)
@@ -81,25 +96,40 @@ SUBSYSTEM_DEF(mapping)
// Pick a random away mission.
if(CONFIG_GET(flag/roundstart_away))
createRandomZlevel()
-
+ // Pick a random VR level.
+ if(CONFIG_GET(flag/roundstart_vr))
+ createRandomZlevel(VIRT_REALITY_NAME, list(ZTRAIT_AWAY = TRUE, ZTRAIT_VR = TRUE), GLOB.potential_vr_levels)
// Generate mining ruins
loading_ruins = TRUE
var/list/lava_ruins = levels_by_trait(ZTRAIT_LAVA_RUINS)
if (lava_ruins.len)
- seedRuins(lava_ruins, CONFIG_GET(number/lavaland_budget), /area/lavaland/surface/outdoors/unexplored, lava_ruins_templates)
+ seedRuins(lava_ruins, CONFIG_GET(number/lavaland_budget), list(/area/lavaland/surface/outdoors/unexplored), lava_ruins_templates)
for (var/lava_z in lava_ruins)
spawn_rivers(lava_z)
+ var/list/ice_ruins = levels_by_trait(ZTRAIT_ICE_RUINS)
+ if (ice_ruins.len)
+ // needs to be whitelisted for underground too so place_below ruins work
+ seedRuins(ice_ruins, CONFIG_GET(number/icemoon_budget), list(/area/icemoon/surface/outdoors/unexplored, /area/icemoon/underground/unexplored), ice_ruins_templates)
+ for (var/ice_z in ice_ruins)
+ spawn_rivers(ice_z, 4, /turf/open/openspace/icemoon, /area/icemoon/surface/outdoors/unexplored/rivers)
+
+ var/list/ice_ruins_underground = levels_by_trait(ZTRAIT_ICE_RUINS_UNDERGROUND)
+ if (ice_ruins_underground.len)
+ seedRuins(ice_ruins_underground, CONFIG_GET(number/icemoon_budget), list(/area/icemoon/underground/unexplored), ice_ruins_underground_templates)
+ for (var/ice_z in ice_ruins_underground)
+ spawn_rivers(ice_z, 4, level_trait(ice_z, ZTRAIT_BASETURF), /area/icemoon/underground/unexplored/rivers)
+
// Generate deep space ruins
var/list/space_ruins = levels_by_trait(ZTRAIT_SPACE_RUINS)
if (space_ruins.len)
- seedRuins(space_ruins, CONFIG_GET(number/space_budget), /area/space, space_ruins_templates)
+ seedRuins(space_ruins, CONFIG_GET(number/space_budget), list(/area/space), space_ruins_templates)
// Generate station space ruins
var/list/station_ruins = levels_by_trait(ZTRAIT_STATION)
if (station_ruins.len)
- seedRuins(station_ruins, CONFIG_GET(number/station_space_budget), /area/space/station_ruins, station_ruins_templates)
+ seedRuins(station_ruins, (SSmapping.config.station_ruin_budget < 0) ? CONFIG_GET(number/station_space_budget) : SSmapping.config.station_ruin_budget, list(/area/space/station_ruins), station_ruins_templates)
SSmapping.seedStation()
loading_ruins = FALSE
#endif
@@ -167,6 +197,8 @@ SUBSYSTEM_DEF(mapping)
ruins_templates = SSmapping.ruins_templates
space_ruins_templates = SSmapping.space_ruins_templates
lava_ruins_templates = SSmapping.lava_ruins_templates
+ ice_ruins_templates = SSmapping.ice_ruins_templates
+ ice_ruins_underground_templates = SSmapping.ice_ruins_underground_templates
station_ruins_templates = SSmapping.station_ruins_templates
shuttle_templates = SSmapping.shuttle_templates
shelter_templates = SSmapping.shelter_templates
@@ -181,8 +213,7 @@ SUBSYSTEM_DEF(mapping)
z_list = SSmapping.z_list
-#define INIT_ANNOUNCE(X) to_chat(world, "[X] "); log_world(X)
-/datum/controller/subsystem/mapping/proc/LoadGroup(list/errorList, name, path, files, list/traits, list/default_traits, silent = FALSE)
+/datum/controller/subsystem/mapping/proc/LoadGroup(list/errorList, name, path, files, list/traits, list/default_traits, silent = FALSE, orientation = SOUTH)
. = list()
var/start_time = REALTIMEOFDAY
@@ -222,7 +253,7 @@ SUBSYSTEM_DEF(mapping)
// load the maps
for (var/P in parsed_maps)
var/datum/parsed_map/pm = P
- if (!pm.load(1, 1, start_z + parsed_maps[P], no_changeturf = TRUE))
+ if (!pm.load(1, 1, start_z + parsed_maps[P], no_changeturf = TRUE, orientation = orientation))
errorList |= pm.original_path
if(!silent)
INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!")
@@ -238,7 +269,7 @@ SUBSYSTEM_DEF(mapping)
// load the station
station_start = world.maxz + 1
INIT_ANNOUNCE("Loading [config.map_name]...")
- LoadGroup(FailedZs, "Station", config.map_path, config.map_file, config.traits, ZTRAITS_STATION)
+ LoadGroup(FailedZs, "Station", config.map_path, config.map_file, config.traits, ZTRAITS_STATION, FALSE, config.orientation)
if(SSdbcore.Connect())
var/datum/DBQuery/query_round_map_name = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET map_name = '[config.map_name]' WHERE id = [GLOB.round_id]")
@@ -254,7 +285,7 @@ SUBSYSTEM_DEF(mapping)
// load mining
if(config.minetype == "lavaland")
LoadGroup(FailedZs, "Lavaland", "map_files/Mining", "Lavaland.dmm", default_traits = ZTRAITS_LAVALAND)
- else if (!isnull(config.minetype))
+ else if (!isnull(config.minetype) && config.minetype != "none")
INIT_ANNOUNCE("WARNING: An unknown minetype '[config.minetype]' was set! This is being ignored! Update the maploader code!")
#endif
@@ -265,7 +296,6 @@ SUBSYSTEM_DEF(mapping)
msg += ", [FailedZs[I]]"
msg += ". Yell at your server host!"
INIT_ANNOUNCE(msg)
-#undef INIT_ANNOUNCE
GLOBAL_LIST_EMPTY(the_station_areas)
@@ -359,6 +389,7 @@ GLOBAL_LIST_EMPTY(the_station_areas)
// Still supporting bans by filename
var/list/banned = generateMapList("[global.config.directory]/lavaruinblacklist.txt")
banned += generateMapList("[global.config.directory]/spaceruinblacklist.txt")
+ banned += generateMapList("[global.config.directory]/iceruinblacklist.txt")
banned += generateMapList("[global.config.directory]/stationruinblacklist.txt")
for(var/item in sortList(subtypesof(/datum/map_template/ruin), /proc/cmp_ruincost_priority))
@@ -376,6 +407,10 @@ GLOBAL_LIST_EMPTY(the_station_areas)
if(istype(R, /datum/map_template/ruin/lavaland))
lava_ruins_templates[R.name] = R
+ else if(istype(R, /datum/map_template/ruin/icemoon/underground))
+ ice_ruins_underground_templates[R.name] = R
+ else if(istype(R, /datum/map_template/ruin/icemoon))
+ ice_ruins_templates[R.name] = R
else if(istype(R, /datum/map_template/ruin/space))
space_ruins_templates[R.name] = R
else if(istype(R, /datum/map_template/ruin/station))
@@ -410,46 +445,69 @@ GLOBAL_LIST_EMPTY(the_station_areas)
//Manual loading of away missions.
/client/proc/admin_away()
- set name = "Load Away Mission"
+ set name = "Load Away Mission / Virtual Reality"
set category = "Fun"
if(!holder ||!check_rights(R_FUN))
return
+ var/choice = alert(src, "What kind of level would you like to load?", "Load Away/VR", AWAY_MISSION_NAME, VIRT_REALITY_NAME, "Cancel")
- if(!GLOB.the_gateway)
- if(alert("There's no home gateway on the station. You sure you want to continue ?", "Uh oh", "Yes", "No") != "Yes")
+ var/list/possible_options
+ var/list/ztraits
+ switch(choice)
+ if(VIRT_REALITY_NAME)
+ possible_options = GLOB.potential_vr_levels
+ ztraits = list(ZTRAIT_AWAY = TRUE, ZTRAIT_VR = TRUE)
+ if(AWAY_MISSION_NAME)
+ if(!GLOB.the_gateway)
+ if(alert("There's no home gateway on the station. You sure you want to continue ?", "Uh oh", "Yes", "No") != "Yes")
+ return
+ possible_options = GLOB.potential_away_levels
+ ztraits = list(ZTRAIT_AWAY = TRUE)
+ else
return
- var/list/possible_options = GLOB.potentialRandomZlevels + "Custom"
- var/away_name
- var/datum/space_level/away_level
+ possible_options += "Custom"
+ var/lvl_name
+ var/datum/space_level/level
- var/answer = input("What kind ? ","Away") as null|anything in possible_options
+ var/answer = input("What kind ? ","Away/VR") as null|anything in possible_options
switch(answer)
+ if(null)
+ return
if("Custom")
var/mapfile = input("Pick file:", "File") as null|file
if(!mapfile)
return
- away_name = "[mapfile] custom"
- to_chat(usr,"Loading [away_name]... ")
- var/datum/map_template/template = new(mapfile, "Away Mission")
- away_level = template.load_new_z()
+ lvl_name = "[mapfile] custom"
+ to_chat(usr,"Loading [lvl_name]... ")
+ var/datum/map_template/template = new(mapfile, choice, ztraits)
+ level = template.load_new_z(ztraits)
else
- if(answer in GLOB.potentialRandomZlevels)
- away_name = answer
- to_chat(usr,"Loading [away_name]... ")
- var/datum/map_template/template = new(away_name, "Away Mission")
- away_level = template.load_new_z()
- else
- return
+ lvl_name = answer
+ to_chat(usr,"Loading [lvl_name]... ")
+ var/datum/map_template/template = new(lvl_name, choice)
+ level = template.load_new_z(ztraits)
- message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.")
- log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.")
- if(!away_level)
- message_admins("Loading [away_name] failed!")
+ message_admins("Admin [key_name_admin(usr)] has loaded [lvl_name] [choice].")
+ log_admin("Admin [key_name(usr)] has loaded [lvl_name] [choice].")
+ if(!level)
+ message_admins("Loading [lvl_name] failed!")
return
+
+ if(choice == AWAY_MISSION_NAME && GLOB.the_gateway)
+ //Link any found away gate with station gate
+ var/obj/machinery/gateway/centeraway/new_gate
+ for(var/obj/machinery/gateway/centeraway/G in GLOB.machines)
+ if(G.z == level.z_value) //I'll have to refactor gateway shitcode before multi-away support.
+ new_gate = G
+ break
+ //Link station gate with away gate and remove wait time.
+ GLOB.the_gateway.awaygate = new_gate
+ GLOB.the_gateway.wait = world.time
+
/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override, border_type_override)
UNTIL((!z || reservation_ready["[z]"]) && !clearing_reserved_turfs)
var/datum/turf_reservation/reserve = new type
@@ -543,3 +601,15 @@ GLOBAL_LIST_EMPTY(the_station_areas)
LM.load()
if(GLOB.stationroom_landmarks.len)
seedStation() //I'm sure we can trust everyone not to insert a 1x1 rooms which loads a landmark which loads a landmark which loads a la...
+
+/**
+ * Generates an obfuscated but constant id for an original id for cases where you don't want players codediving for an id.
+ * WARNING: MAKE SURE PLAYERS ARE NOT ABLE TO ACCESS THIS. To save performance, it's just secret + an incrementing number. Very guessable if you know what the secret is.
+ */
+/datum/controller/subsystem/mapping/proc/get_obfuscated_id(original, id_type = "GENERAL")
+ if(!original)
+ return //no.
+ var/key = "[original]%[id_type]"
+ if(random_generated_ids_by_original[key])
+ return random_generated_ids_by_original[key]
+ . = random_generated_ids_by_original[key] = "[obfuscation_secret]%[obfuscation_next_id++]"
diff --git a/code/controllers/subsystem/processing/flightpacks.dm b/code/controllers/subsystem/processing/flightpacks.dm
deleted file mode 100644
index a462e2b645..0000000000
--- a/code/controllers/subsystem/processing/flightpacks.dm
+++ /dev/null
@@ -1,25 +0,0 @@
-PROCESSING_SUBSYSTEM_DEF(flightpacks)
- name = "Flightpack Movement"
- priority = FIRE_PRIORITY_FLIGHTPACKS
- wait = 2
- stat_tag = "FM"
- flags = SS_NO_INIT|SS_TICKER|SS_KEEP_TIMING
-
- var/flightsuit_processing = FLIGHTSUIT_PROCESSING_FULL
-
-/datum/controller/subsystem/processing/flightpacks/Initialize()
- sync_flightsuit_processing()
-
-/datum/controller/subsystem/processing/flightpacks/vv_edit_var(var_name, var_value)
- ..()
- switch(var_name)
- if("flightsuit_processing")
- sync_flightsuit_processing()
-
-/datum/controller/subsystem/processing/flightpacks/proc/sync_flightsuit_processing()
- for(var/obj/item/flightpack/FP in processing)
- FP.sync_processing(src)
- if(flightsuit_processing == FLIGHTSUIT_PROCESSING_NONE) //Don't even bother firing.
- can_fire = FALSE
- else
- can_fire = TRUE
diff --git a/code/controllers/subsystem/processing/projectiles.dm b/code/controllers/subsystem/processing/projectiles.dm
index 4171b5f8c1..8cd63c6949 100644
--- a/code/controllers/subsystem/processing/projectiles.dm
+++ b/code/controllers/subsystem/processing/projectiles.dm
@@ -3,7 +3,6 @@ PROCESSING_SUBSYSTEM_DEF(projectiles)
wait = 1
stat_tag = "PP"
flags = SS_NO_INIT|SS_TICKER
- var/global_max_tick_moves = 10
var/global_pixel_speed = 2
var/global_iterations_per_move = 16
diff --git a/code/controllers/subsystem/profiler.dm b/code/controllers/subsystem/profiler.dm
index ec8b243073..ef10e0626c 100644
--- a/code/controllers/subsystem/profiler.dm
+++ b/code/controllers/subsystem/profiler.dm
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(profiler)
init_order = INIT_ORDER_PROFILER
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
wait = 3000
- flags = SS_NO_TICK_CHECK
+ flags = SS_NO_TICK_CHECK
var/fetch_cost = 0
var/write_cost = 0
@@ -31,23 +31,12 @@ SUBSYSTEM_DEF(profiler)
return ..()
/datum/controller/subsystem/profiler/proc/StartProfiling()
-#if DM_BUILD < 1506 || DM_VERSION < 513
- stack_trace("Auto profiling unsupported on this byond version")
- CONFIG_SET(flag/auto_profile, FALSE)
-#else
world.Profile(PROFILE_START)
-#endif
/datum/controller/subsystem/profiler/proc/StopProfiling()
-#if DM_BUILD >= 1506 && DM_VERSION >= 513
world.Profile(PROFILE_STOP)
-#endif
/datum/controller/subsystem/profiler/proc/DumpFile()
-#if DM_BUILD < 1506 || DM_VERSION < 513
- stack_trace("Auto profiling unsupported on this byond version")
- CONFIG_SET(flag/auto_profile, FALSE)
-#else
var/timer = TICK_USAGE_REAL
var/current_profile_data = world.Profile(PROFILE_REFRESH,format="json")
fetch_cost = MC_AVERAGE(fetch_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
@@ -60,4 +49,3 @@ SUBSYSTEM_DEF(profiler)
timer = TICK_USAGE_REAL
WRITE_FILE(json_file, current_profile_data)
write_cost = MC_AVERAGE(write_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
-#endif
diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm
index 985551558d..02a74bccc3 100644
--- a/code/controllers/subsystem/shuttle.dm
+++ b/code/controllers/subsystem/shuttle.dm
@@ -231,13 +231,13 @@ SUBSYSTEM_DEF(shuttle)
call_reason = trim(html_encode(call_reason))
- if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH && seclevel2num(get_security_level()) > SEC_LEVEL_GREEN)
+ if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH && GLOB.security_level > SEC_LEVEL_GREEN)
to_chat(user, "You must provide a reason. ")
return
var/area/signal_origin = get_area(user)
var/emergency_reason = "\nNature of emergency:\n\n[call_reason]"
- var/security_num = seclevel2num(get_security_level())
+ var/security_num = GLOB.security_level
switch(security_num)
if(SEC_LEVEL_RED,SEC_LEVEL_DELTA)
emergency.request(null, signal_origin, html_decode(emergency_reason), 1) //There is a serious threat we gotta move no time to give them five minutes.
@@ -299,7 +299,7 @@ SUBSYSTEM_DEF(shuttle)
/datum/controller/subsystem/shuttle/proc/canRecall()
if(!emergency || emergency.mode != SHUTTLE_CALL || emergencyNoRecall || SSticker.mode.name == "meteor")
return
- var/security_num = seclevel2num(get_security_level())
+ var/security_num = GLOB.security_level
switch(security_num)
if(SEC_LEVEL_GREEN)
if(emergency.timeLeft(1) < emergencyCallTime)
@@ -664,7 +664,7 @@ SUBSYSTEM_DEF(shuttle)
/datum/controller/subsystem/shuttle/proc/autoEnd() //CIT CHANGE - allows shift to end without being a proper shuttle call?
if(EMERGENCY_IDLE_OR_RECALLED)
SSshuttle.emergency.request(silent = TRUE)
- priority_announce("The shift has come to an end and the shuttle called. [seclevel2num(get_security_level()) == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, "shuttlecalled", "Priority")
+ priority_announce("The shift has come to an end and the shuttle called. [GLOB.security_level == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, "shuttlecalled", "Priority")
log_game("Round end vote passed. Shuttle has been auto-called.")
message_admins("Round end vote passed. Shuttle has been auto-called.")
emergencyNoRecall = TRUE
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index a7be36abc2..8042631b7b 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -387,6 +387,9 @@ SUBSYSTEM_DEF(ticker)
for(var/mob/dead/new_player/N in GLOB.player_list)
var/mob/living/carbon/human/player = N.new_character
if(istype(player) && player.mind && player.mind.assigned_role)
+ var/datum/job/J = SSjob.GetJob(player.mind.assigned_role)
+ if(J)
+ J.standard_assign_skills(player.mind)
if(player.mind.assigned_role == "Captain")
captainless=0
if(player.mind.assigned_role != player.mind.special_role)
diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm
index bd2fb854af..36bf992cfb 100644
--- a/code/controllers/subsystem/timer.dm
+++ b/code/controllers/subsystem/timer.dm
@@ -94,7 +94,7 @@ SUBSYSTEM_DEF(timer)
if(ctime_timer.flags & TIMER_LOOP)
ctime_timer.spent = 0
ctime_timer.timeToRun = REALTIMEOFDAY + ctime_timer.wait
- BINARY_INSERT(ctime_timer, clienttime_timers, datum/timedevent, timeToRun)
+ BINARY_INSERT(ctime_timer, clienttime_timers, datum/timedevent, ctime_timer, timeToRun, COMPARE_KEY)
else
qdel(ctime_timer)
@@ -423,7 +423,7 @@ SUBSYSTEM_DEF(timer)
L = SStimer.second_queue
if(L)
- BINARY_INSERT(src, L, datum/timedevent, timeToRun)
+ BINARY_INSERT(src, L, datum/timedevent, src, timeToRun, COMPARE_KEY)
return
//get the list of buckets
diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm
index a202afd905..97a5ec2c2b 100644
--- a/code/controllers/subsystem/vote.dm
+++ b/code/controllers/subsystem/vote.dm
@@ -352,7 +352,6 @@ SUBSYSTEM_DEF(vote)
if("dynamic")
if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started.
return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.")
- GLOB.master_mode = "dynamic"
var/list/runnable_storytellers = config.get_runnable_storytellers()
var/datum/dynamic_storyteller/picked
for(var/T in runnable_storytellers)
@@ -361,7 +360,7 @@ SUBSYSTEM_DEF(vote)
picked = S
runnable_storytellers[S] *= round(stored_gamemode_votes[initial(S.name)]*100000,1)
if(!picked)
- picked = pickweightAllowZero(runnable_storytellers)
+ picked = pickweight(runnable_storytellers, 0)
GLOB.dynamic_storyteller_type = picked
if("map")
var/datum/map_config/VM = config.maplist[.]
@@ -489,6 +488,7 @@ SUBSYSTEM_DEF(vote)
modes_to_add -= "traitor" // makes it so that traitor is always available
choices.Add(modes_to_add)
if("dynamic")
+ GLOB.master_mode = "dynamic"
var/list/probabilities = CONFIG_GET(keyed_list/storyteller_weight)
for(var/T in config.storyteller_cache)
var/datum/dynamic_storyteller/S = T
diff --git a/code/datums/action.dm b/code/datums/action.dm
index f2f93ac40d..8862482dc2 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -171,7 +171,7 @@
if(!..())
return 0
var/mob/M = target
- M.ghostize(1)
+ M.ghostize(can_reenter_corpse = TRUE, voluntary = TRUE)
/datum/action/proc/OnUpdatedIcon()
UpdateButtonIcon()
diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm
index ebddc187ae..9c6bb2ebfd 100644
--- a/code/datums/ai_laws.dm
+++ b/code/datums/ai_laws.dm
@@ -253,7 +253,7 @@
var/datum/ai_laws/lawtype
var/list/law_weights = CONFIG_GET(keyed_list/law_weight)
while(!lawtype && law_weights.len)
- var/possible_id = pickweightAllowZero(law_weights)
+ var/possible_id = pickweight(law_weights, 0)
lawtype = lawid_to_type(possible_id)
if(!lawtype)
law_weights -= possible_id
diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm
index 428f355c31..e5e1434ab8 100644
--- a/code/datums/brain_damage/imaginary_friend.dm
+++ b/code/datums/brain_damage/imaginary_friend.dm
@@ -91,7 +91,6 @@
trauma = _trauma
owner = trauma.owner
- copy_known_languages_from(owner, TRUE)
setup_friend()
@@ -150,6 +149,8 @@
friend_talk(message)
/mob/camera/imaginary_friend/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
+ if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker)))
+ create_chat_message(speaker, message_language, raw_message, spans, message_mode)
to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source))
/mob/camera/imaginary_friend/proc/friend_talk(message)
diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm
index 0e08c4cd15..e076c30ae1 100644
--- a/code/datums/brain_damage/severe.dm
+++ b/code/datums/brain_damage/severe.dm
@@ -26,21 +26,15 @@
scan_desc = "extensive damage to the brain's language center"
gain_text = "You have trouble forming words in your head... "
lose_text = "You suddenly remember how languages work. "
- var/datum/language_holder/prev_language
- var/datum/language_holder/mob_language
/datum/brain_trauma/severe/aphasia/on_gain()
- mob_language = owner.get_language_holder()
- prev_language = mob_language.copy()
- mob_language.remove_all_languages()
- mob_language.grant_language(/datum/language/aphasia)
+ owner.add_blocked_language(subtypesof(/datum/language/) - /datum/language/aphasia, LANGUAGE_APHASIA)
+ owner.grant_language(/datum/language/aphasia, TRUE, TRUE, LANGUAGE_APHASIA)
..()
/datum/brain_trauma/severe/aphasia/on_lose()
- mob_language.remove_language(/datum/language/aphasia)
- mob_language.copy_known_languages_from(prev_language) //this will also preserve languages learned during the trauma
- QDEL_NULL(prev_language)
- mob_language = null
+ owner.remove_blocked_language(subtypesof(/datum/language/), LANGUAGE_APHASIA)
+ owner.remove_language(/datum/language/aphasia, TRUE, TRUE, LANGUAGE_APHASIA)
..()
/datum/brain_trauma/severe/blindness
diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm
new file mode 100644
index 0000000000..cbcb34ac5e
--- /dev/null
+++ b/code/datums/chatmessage.dm
@@ -0,0 +1,236 @@
+#define CHAT_MESSAGE_SPAWN_TIME 0.2 SECONDS
+#define CHAT_MESSAGE_LIFESPAN 5 SECONDS
+#define CHAT_MESSAGE_EOL_FADE 0.7 SECONDS
+#define CHAT_MESSAGE_EXP_DECAY 0.7 // Messages decay at pow(factor, idx in stack)
+#define CHAT_MESSAGE_HEIGHT_DECAY 0.9 // Increase message decay based on the height of the message
+#define CHAT_MESSAGE_APPROX_LHEIGHT 11 // Approximate height in pixels of an 'average' line, used for height decay
+#define CHAT_MESSAGE_WIDTH 96 // pixels
+#define CHAT_MESSAGE_MAX_LENGTH 110 // characters
+#define WXH_TO_HEIGHT(x) text2num(copytext((x), findtextEx((x), "x") + 1)) // thanks lummox
+
+/**
+ * # Chat Message Overlay
+ *
+ * Datum for generating a message overlay on the map
+ */
+/datum/chatmessage
+ /// The visual element of the chat messsage
+ var/image/message
+ /// The location in which the message is appearing
+ var/atom/message_loc
+ /// The client who heard this message
+ var/client/owned_by
+ /// Contains the scheduled destruction time
+ var/scheduled_destruction
+ /// Contains the approximate amount of lines for height decay
+ var/approx_lines
+
+/**
+ * Constructs a chat message overlay
+ *
+ * Arguments:
+ * * text - The text content of the overlay
+ * * target - The target atom to display the overlay at
+ * * owner - The mob that owns this overlay, only this mob will be able to view it
+ * * extra_classes - Extra classes to apply to the span that holds the text
+ * * lifespan - The lifespan of the message in deciseconds
+ */
+/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = null, lifespan = CHAT_MESSAGE_LIFESPAN)
+ . = ..()
+ if (!istype(target))
+ CRASH("Invalid target given for chatmessage")
+ if(QDELETED(owner) || !istype(owner) || !owner.client)
+ stack_trace("/datum/chatmessage created with [isnull(owner) ? "null" : "invalid"] mob owner")
+ qdel(src)
+ return
+ INVOKE_ASYNC(src, .proc/generate_image, text, target, owner, extra_classes, lifespan)
+
+/datum/chatmessage/Destroy()
+ if (owned_by)
+ if (owned_by.seen_messages)
+ LAZYREMOVEASSOC(owned_by.seen_messages, message_loc, src)
+ owned_by.images.Remove(message)
+ owned_by = null
+ message_loc = null
+ message = null
+ return ..()
+
+/**
+ * Generates a chat message image representation
+ *
+ * Arguments:
+ * * text - The text content of the overlay
+ * * target - The target atom to display the overlay at
+ * * owner - The mob that owns this overlay, only this mob will be able to view it
+ * * extra_classes - Extra classes to apply to the span that holds the text
+ * * lifespan - The lifespan of the message in deciseconds
+ */
+/datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan)
+ // Register client who owns this message
+ owned_by = owner.client
+ RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel, src)
+
+ // Clip message
+ var/maxlen = owned_by.prefs.max_chat_length
+ if (length_char(text) > maxlen)
+ text = copytext_char(text, 1, maxlen + 1) + "..." // BYOND index moment
+
+ // Calculate target color if not already present
+ if (!target.chat_color || target.chat_color_name != target.name)
+ target.chat_color = colorize_string(target.name)
+ target.chat_color_darkened = colorize_string(target.name, 0.85, 0.85)
+ target.chat_color_name = target.name
+
+ // Get rid of any URL schemes that might cause BYOND to automatically wrap something in an anchor tag
+ var/static/regex/url_scheme = new(@"[A-Za-z][A-Za-z0-9+-\.]*:\/\/", "g")
+ text = replacetext(text, url_scheme, "")
+
+ // Reject whitespace
+ var/static/regex/whitespace = new(@"^\s*$")
+ if (whitespace.Find(text))
+ qdel(src)
+ return
+
+ // Non mobs speakers can be small
+ if (!ismob(target))
+ extra_classes |= "small"
+
+ // Append radio icon if from a virtual speaker
+ if (extra_classes.Find("virtual-speaker"))
+ var/image/r_icon = image('icons/UI_Icons/chat/chat_icons.dmi', icon_state = "radio")
+ text = "\icon[r_icon] " + text
+
+ // We dim italicized text to make it more distinguishable from regular text
+ var/tgt_color = extra_classes.Find("italics") ? target.chat_color_darkened : target.chat_color
+
+ // Approximate text height
+ // Note we have to replace HTML encoded metacharacters otherwise MeasureText will return a zero height
+ // BYOND Bug #2563917
+ // Construct text
+ var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g")
+ var/complete_text = ""
+ var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(replacetext(complete_text, html_metachars, "m"), null, CHAT_MESSAGE_WIDTH))
+ approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT)
+
+ // Translate any existing messages upwards, apply exponential decay factors to timers
+ message_loc = target
+ if (owned_by.seen_messages)
+ var/idx = 1
+ var/combined_height = approx_lines
+ for(var/msg in owned_by.seen_messages[message_loc])
+ var/datum/chatmessage/m = msg
+ animate(m.message, pixel_y = m.message.pixel_y + mheight, time = CHAT_MESSAGE_SPAWN_TIME)
+ combined_height += m.approx_lines
+ var/sched_remaining = m.scheduled_destruction - world.time
+ if (sched_remaining > CHAT_MESSAGE_SPAWN_TIME)
+ var/remaining_time = (sched_remaining) * (CHAT_MESSAGE_EXP_DECAY ** idx++) * (CHAT_MESSAGE_HEIGHT_DECAY ** combined_height)
+ m.scheduled_destruction = world.time + remaining_time
+ addtimer(CALLBACK(m, .proc/end_of_life), remaining_time, TIMER_UNIQUE|TIMER_OVERRIDE)
+
+ // Build message image
+ message = image(loc = message_loc, layer = CHAT_LAYER)
+ message.plane = GAME_PLANE
+ message.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART
+ message.alpha = 0
+ message.pixel_y = owner.bound_height * 0.95
+ message.maptext_width = CHAT_MESSAGE_WIDTH
+ message.maptext_height = mheight
+ message.maptext_x = (CHAT_MESSAGE_WIDTH - owner.bound_width) * -0.5
+ message.maptext = complete_text
+
+ // View the message
+ LAZYADDASSOC(owned_by.seen_messages, message_loc, src)
+ owned_by.images |= message
+ animate(message, alpha = 255, time = CHAT_MESSAGE_SPAWN_TIME)
+
+ // Prepare for destruction
+ scheduled_destruction = world.time + (lifespan - CHAT_MESSAGE_EOL_FADE)
+ addtimer(CALLBACK(src, .proc/end_of_life), lifespan - CHAT_MESSAGE_EOL_FADE, TIMER_UNIQUE|TIMER_OVERRIDE)
+
+/**
+ * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion
+ */
+/datum/chatmessage/proc/end_of_life(fadetime = CHAT_MESSAGE_EOL_FADE)
+ animate(message, alpha = 0, time = fadetime, flags = ANIMATION_PARALLEL)
+ QDEL_IN(src, fadetime)
+
+/**
+ * Creates a message overlay at a defined location for a given speaker
+ *
+ * Arguments:
+ * * speaker - The atom who is saying this message
+ * * message_language - The language that the message is said in
+ * * raw_message - The text content of the message
+ * * spans - Additional classes to be added to the message
+ * * message_mode - Bitflags relating to the mode of the message
+ */
+/mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, message_mode)
+ // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us
+ spans = spans?.Copy()
+
+ // Check for virtual speakers (aka hearing a message through a radio)
+ var/atom/movable/originalSpeaker = speaker
+ if (istype(speaker, /atom/movable/virtualspeaker))
+ var/atom/movable/virtualspeaker/v = speaker
+ speaker = v.source
+ spans |= "virtual-speaker"
+
+ // Ignore virtual speaker (most often radio messages) from ourself
+ if (originalSpeaker != src && speaker == src)
+ return
+
+ // Display visual above source
+ new /datum/chatmessage(lang_treat(speaker, message_language, raw_message, spans, null, TRUE), speaker, src, spans)
+
+
+// Tweak these defines to change the available color ranges
+#define CM_COLOR_SAT_MIN 0.6
+#define CM_COLOR_SAT_MAX 0.7
+#define CM_COLOR_LUM_MIN 0.65
+#define CM_COLOR_LUM_MAX 0.75
+
+/**
+ * Gets a color for a name, will return the same color for a given string consistently within a round.atom
+ *
+ * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map.
+ *
+ * Arguments:
+ * * name - The name to generate a color for
+ * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation
+ * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence
+ */
+/datum/chatmessage/proc/colorize_string(name, sat_shift = 1, lum_shift = 1)
+ // seed to help randomness
+ var/static/rseed = rand(1,26)
+
+ // get hsl using the selected 6 characters of the md5 hash
+ var/hash = copytext(md5(name + GLOB.round_id), rseed, rseed + 6)
+ var/h = hex2num(copytext(hash, 1, 3)) * (360 / 255)
+ var/s = (hex2num(copytext(hash, 3, 5)) >> 2) * ((CM_COLOR_SAT_MAX - CM_COLOR_SAT_MIN) / 63) + CM_COLOR_SAT_MIN
+ var/l = (hex2num(copytext(hash, 5, 7)) >> 2) * ((CM_COLOR_LUM_MAX - CM_COLOR_LUM_MIN) / 63) + CM_COLOR_LUM_MIN
+
+ // adjust for shifts
+ s *= clamp(sat_shift, 0, 1)
+ l *= clamp(lum_shift, 0, 1)
+
+ // convert to rgb
+ var/h_int = round(h/60) // mapping each section of H to 60 degree sections
+ var/c = (1 - abs(2 * l - 1)) * s
+ var/x = c * (1 - abs((h / 60) % 2 - 1))
+ var/m = l - c * 0.5
+ x = (x + m) * 255
+ c = (c + m) * 255
+ m *= 255
+ switch(h_int)
+ if(0)
+ return "#[num2hex(c, 2)][num2hex(x, 2)][num2hex(m, 2)]"
+ if(1)
+ return "#[num2hex(x, 2)][num2hex(c, 2)][num2hex(m, 2)]"
+ if(2)
+ return "#[num2hex(m, 2)][num2hex(c, 2)][num2hex(x, 2)]"
+ if(3)
+ return "#[num2hex(m, 2)][num2hex(x, 2)][num2hex(c, 2)]"
+ if(4)
+ return "#[num2hex(x, 2)][num2hex(m, 2)][num2hex(c, 2)]"
+ if(5)
+ return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]"
diff --git a/code/datums/components/archaeology.dm b/code/datums/components/archaeology.dm
deleted file mode 100644
index b5740650e9..0000000000
--- a/code/datums/components/archaeology.dm
+++ /dev/null
@@ -1,95 +0,0 @@
-/datum/component/archaeology
- dupe_mode = COMPONENT_DUPE_UNIQUE
- var/list/archdrops = list(/obj/item/bikehorn = list(ARCH_PROB = 100, ARCH_MAXDROP = 1)) // honk~
- var/prob2drop
- var/dug
- var/datum/callback/callback
-
-/datum/component/archaeology/Initialize(list/_archdrops = list(), datum/callback/_callback)
- archdrops = _archdrops
- for(var/i in archdrops)
- if(isnull(archdrops[i][ARCH_MAXDROP]))
- archdrops[i][ARCH_MAXDROP] = 1
- stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null max_drop value in [i].")
- if(isnull(archdrops[i][ARCH_PROB]))
- archdrops[i][ARCH_PROB] = 100
- stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null probability value in [i].")
- callback = _callback
- RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/Dig)
- RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/BombDig)
- RegisterSignal(parent, COMSIG_ATOM_SING_PULL, .proc/SingDig)
-
-/datum/component/archaeology/InheritComponent(datum/component/archaeology/A, i_am_original)
- var/list/other_archdrops = A.archdrops
- var/list/_archdrops = archdrops
- for(var/I in other_archdrops)
- _archdrops[I] += other_archdrops[I]
-
-/datum/component/archaeology/proc/Dig(datum/source, obj/item/I, mob/living/user)
- if(dug)
- to_chat(user, "Looks like someone has dug here already. ")
- return
-
- if(!isturf(user.loc))
- return
-
- if(I.tool_behaviour == TOOL_SHOVEL || I.tool_behaviour == TOOL_MINING)
- to_chat(user, "You start digging... ")
-
- if(I.use_tool(parent, user, 40, volume=50))
- to_chat(user, "You dig a hole. ")
- gets_dug()
- dug = TRUE
- SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type)
- return COMPONENT_NO_AFTERATTACK
-
-/datum/component/archaeology/proc/gets_dug()
- if(dug)
- return
- else
- var/turf/open/OT = get_turf(parent)
- for(var/thing in archdrops)
- var/maxtodrop = archdrops[thing][ARCH_MAXDROP]
- for(var/i in 1 to maxtodrop)
- if(prob(archdrops[thing][ARCH_PROB])) // can't win them all!
- new thing(OT)
-
- if(isopenturf(OT))
- if(OT.postdig_icon_change)
- if(istype(OT, /turf/open/floor/plating/asteroid/) && !OT.postdig_icon)
- var/turf/open/floor/plating/asteroid/AOT = parent
- AOT.icon_plating = "[AOT.environment_type]_dug"
- AOT.icon_state = "[AOT.environment_type]_dug"
- else
- if(isplatingturf(OT))
- var/turf/open/floor/plating/POT = parent
- POT.icon_plating = "[POT.postdig_icon]"
- POT.icon_state = "[OT.postdig_icon]"
-
- if(OT.slowdown) //Things like snow slow you down until you dig them.
- OT.slowdown = 0
- dug = TRUE
- if(callback)
- callback.Invoke()
-
-/datum/component/archaeology/proc/SingDig(datum/source, S, current_size)
- switch(current_size)
- if(STAGE_THREE)
- if(prob(30))
- gets_dug()
- if(STAGE_FOUR)
- if(prob(50))
- gets_dug()
- else
- if(current_size >= STAGE_FIVE && prob(70))
- gets_dug()
-
-/datum/component/archaeology/proc/BombDig(datum/source, severity, target)
- switch(severity)
- if(3)
- return
- if(2)
- if(prob(20))
- gets_dug()
- if(1)
- gets_dug()
diff --git a/code/datums/components/bouncy.dm b/code/datums/components/bouncy.dm
index c7ca85455b..fed603410e 100644
--- a/code/datums/components/bouncy.dm
+++ b/code/datums/components/bouncy.dm
@@ -4,7 +4,7 @@
var/list/bounce_signals = list(COMSIG_MOVABLE_IMPACT, COMSIG_ITEM_HIT_REACT, COMSIG_ITEM_ATTACK)
/datum/component/bouncy/Initialize(_bouncy_mod, list/_bounce_signals)
- if(!ismovableatom(parent))
+ if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
if(_bouncy_mod)
bouncy_mod = _bouncy_mod
diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm
index e5625dee6a..441a161428 100644
--- a/code/datums/components/butchering.dm
+++ b/code/datums/components/butchering.dm
@@ -55,7 +55,7 @@
log_combat(user, H, "starts slicing the throat of")
playsound(H.loc, butcher_sound, 50, TRUE, -1)
- if(do_mob(user, H, CLAMP(500 / source.force, 30, 100)) && H.Adjacent(source))
+ if(do_mob(user, H, clamp(500 / source.force, 30, 100)) && H.Adjacent(source))
if(H.has_status_effect(/datum/status_effect/neck_slice))
user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse! ", 1, \
"Their neck has already been already cut, you can't make the bleeding any worse! ")
@@ -65,7 +65,7 @@
"[user] slits your throat... ")
log_combat(user, H, "finishes slicing the throat of")
H.apply_damage(source.force, BRUTE, BODY_ZONE_HEAD)
- H.bleed_rate = CLAMP(H.bleed_rate + 20, 0, 30)
+ H.bleed_rate = clamp(H.bleed_rate + 20, 0, 30)
H.apply_status_effect(/datum/status_effect/neck_slice)
/datum/component/butchering/proc/Butcher(mob/living/butcher, mob/living/meat)
diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm
index 2b6f1a5b81..bc76082f0a 100644
--- a/code/datums/components/crafting/recipes.dm
+++ b/code/datums/components/crafting/recipes.dm
@@ -23,3 +23,4 @@
*/
/datum/crafting_recipe/proc/check_requirements(mob/user, list/collected_requirements)
return TRUE
+
diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm
index 8f52e06f30..02dd3f2c05 100644
--- a/code/datums/components/crafting/recipes/recipes_clothing.dm
+++ b/code/datums/components/crafting/recipes/recipes_clothing.dm
@@ -327,3 +327,16 @@
/obj/item/stack/cable_coil = 10)
time = 100 //Takes awhile to put all the garlics on the coil and knot it.
category = CAT_CLOTHING
+
+/datum/crafting_recipe/gripperoffbrand
+ name = "Improvised Gripper Gloves"
+ reqs = list(
+ /obj/item/clothing/gloves/fingerless = 1,
+ // /obj/item/stack/sticky_tape = 1
+ /obj/item/stack/cable_coil = 5,
+ /obj/item/stack/sheet/cloth = 2,
+ )
+ result = /obj/item/clothing/gloves/tackler/offbrand
+ category = CAT_CLOTHING
+ tools = list(TOOL_WIRECUTTER)
+ time = 20
diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm
index cf0e1bdec9..8ee893b2e5 100644
--- a/code/datums/components/crafting/recipes/recipes_misc.dm
+++ b/code/datums/components/crafting/recipes/recipes_misc.dm
@@ -115,6 +115,33 @@
//Tools & Storage//
///////////////////
+/datum/crafting_recipe/upgraded_gauze
+ name = "Improved Gauze"
+ result = /obj/item/stack/medical/gauze/adv/one
+ time = 1
+ reqs = list(/obj/item/stack/medical/gauze = 1,
+ /datum/reagent/space_cleaner/sterilizine = 10)
+ category = CAT_MISC
+ subcategory = CAT_TOOL
+
+/datum/crafting_recipe/bruise_pack
+ name = "Bruise Pack"
+ result = /obj/item/stack/medical/bruise_pack/one
+ time = 1
+ reqs = list(/obj/item/stack/medical/gauze = 1,
+ /datum/reagent/medicine/styptic_powder = 10)
+ category = CAT_MISC
+ subcategory = CAT_TOOL
+
+/datum/crafting_recipe/burn_pack
+ name = "Burn Ointment"
+ result = /obj/item/stack/medical/ointment/one
+ time = 1
+ reqs = list(/obj/item/stack/medical/gauze = 1,
+ /datum/reagent/medicine/silver_sulfadiazine = 10)
+ category = CAT_MISC
+ subcategory = CAT_TOOL
+
/datum/crafting_recipe/ghettojetpack
name = "Improvised Jetpack"
result = /obj/item/tank/jetpack/improvised
@@ -233,6 +260,15 @@
subcategory = CAT_TOOL
category = CAT_MISC
+/datum/crafting_recipe/electrochromatic_kit
+ name = "Electrochromatic Kit"
+ result = /obj/item/electronics/electrochromatic_kit
+ reqs = list(/obj/item/stack/sheet/metal = 1,
+ /obj/item/stack/cable_coil = 1)
+ time = 5
+ subcategory = CAT_TOOL
+ category = CAT_MISC
+
////////////
//Vehicles//
////////////
@@ -377,15 +413,6 @@
subcategory = CAT_MISCELLANEOUS
category = CAT_MISC
-/datum/crafting_recipe/paperwork
- name = "Filed Paper Work"
- result = /obj/item/folder/paperwork_correct
- time = 10 //Takes time for people to file and complete paper work!
- tools = list(/obj/item/pen)
- reqs = list(/obj/item/folder/paperwork = 1)
- subcategory = CAT_MISCELLANEOUS
- category = CAT_MISC
-
/datum/crafting_recipe/coconut_bong
name = "Coconut Bong"
result = /obj/item/bong/coconut
diff --git a/code/datums/components/edit_complainer.dm b/code/datums/components/edit_complainer.dm
index bf52296e2c..e2cca2eb50 100644
--- a/code/datums/components/edit_complainer.dm
+++ b/code/datums/components/edit_complainer.dm
@@ -3,7 +3,7 @@
var/list/say_lines
/datum/component/edit_complainer/Initialize(list/text)
- if(!ismovableatom(parent))
+ if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
var/static/list/default_lines = list(
diff --git a/code/datums/components/explodable.dm b/code/datums/components/explodable.dm
index 820208a319..2e5834c025 100644
--- a/code/datums/components/explodable.dm
+++ b/code/datums/components/explodable.dm
@@ -13,7 +13,7 @@
RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/explodable_attack)
RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/explodable_insert_item)
RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/detonate)
- if(ismovableatom(parent))
+ if(ismovable(parent))
RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/explodable_impact)
RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/explodable_bump)
if(isitem(parent))
diff --git a/code/datums/components/fantasy/prefixes.dm b/code/datums/components/fantasy/prefixes.dm
index 702ec9329a..5ef2ac2baf 100644
--- a/code/datums/components/fantasy/prefixes.dm
+++ b/code/datums/components/fantasy/prefixes.dm
@@ -54,7 +54,7 @@
/datum/fantasy_affix/pyromantic/apply(datum/component/fantasy/comp, newName)
var/obj/item/master = comp.parent
- comp.appliedComponents += master.AddComponent(/datum/component/igniter, CLAMP(comp.quality, 1, 10))
+ comp.appliedComponents += master.AddComponent(/datum/component/igniter, clamp(comp.quality, 1, 10))
return "pyromantic [newName]"
/datum/fantasy_affix/vampiric
diff --git a/code/datums/components/identification.dm b/code/datums/components/identification.dm
new file mode 100644
index 0000000000..f7dc211504
--- /dev/null
+++ b/code/datums/components/identification.dm
@@ -0,0 +1,88 @@
+/**
+ * Identification components
+ */
+/datum/component/identification
+ /// General flags for how we should work.
+ var/identification_flags = NONE
+ /// General flags for what we should do.
+ var/identification_effect_flags = NONE
+ /// General flags for how we can be identified.
+ var/identification_method_flags = NONE
+ /// If this is set, show this on examine to the examiner if they know how to use it.
+ var/additional_examine_text = "You seem to know more about this item than others.. "
+ /// Added to deconstructive analyzer say on success if set
+ var/deconstructor_reveal_text = "item operation instructions"
+
+/datum/component/identification/Initialize(id_flags, id_effect_flags, id_method_flags)
+ if(!isobj(parent))
+ return COMPONENT_INCOMPATIBLE
+ . = ..()
+ if(. & COMPONENT_INCOMPATIBLE)
+ return
+ identification_flags = id_flags
+ identification_effect_flags = id_effect_flags
+ identification_method_flags = id_method_flags
+
+/datum/component/identification/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine)
+ if(identification_effect_flags & ID_COMPONENT_EFFECT_NO_ACTIONS)
+ RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip)
+ if(identification_method_flags & ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR)
+ RegisterSignal(parent, COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN, .proc/on_deconstructor_deepscan)
+
+/datum/component/identification/UnregisterFromParent()
+ var/list/unregister = list(COMSIG_PARENT_EXAMINE)
+ if(identification_effect_flags & ID_COMPONENT_EFFECT_NO_ACTIONS)
+ unregister += COMSIG_ITEM_EQUIPPED
+ if(identification_method_flags & ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR)
+ unregister += COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN
+ UnregisterSignal(parent, unregister)
+
+/datum/component/identification/proc/on_examine(datum/source, mob/user, list/returnlist)
+ if(check_knowledge(user) != ID_COMPONENT_KNOWLEDGE_FULL)
+ return
+ if(!additional_examine_text)
+ return
+ returnlist += additional_examine_text
+
+/datum/component/identification/vv_edit_var(var_name, var_value)
+ // since i care SOOO much about memory optimization, we only register signals we need to
+ // so when someone vv's us, we should probably make sure we have the ones we need to with an update.
+ if((var_value == NAMEOF(src, identification_flags)) || (var_value == NAMEOF(src, identification_effect_flags)) || (var_value == NAMEOF(src, identification_method_flags)))
+ UnregisterFromParent()
+ . = ..()
+ if((var_value == NAMEOF(src, identification_flags)) || (var_value == NAMEOF(src, identification_effect_flags)) || (var_value == NAMEOF(src, identification_method_flags)))
+ RegisterWithParent()
+
+/datum/component/identification/proc/on_equip(datum/source, mob/user)
+ if(check_knowledge(user) == ID_COMPONENT_KNOWLEDGE_FULL)
+ return
+ if(identification_method_flags & ID_COMPONENT_EFFECT_NO_ACTIONS)
+ return COMPONENT_NO_GRANT_ACTIONS
+
+/datum/component/identification/proc/check_knowledge(mob/user)
+ return ID_COMPONENT_KNOWLEDGE_NONE
+
+/datum/component/identification/proc/on_identify(mob/user)
+ if(identification_flags & ID_COMPONENT_DEL_ON_IDENTIFY)
+ qdel(src)
+
+/datum/component/identification/proc/on_deconstructor_deepscan(datum/source, obj/machinery/rnd/destructive_analyzer/analyzer, mob/user, list/information = list())
+ if((identification_method_flags & ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR) && !(identification_flags & ID_COMPONENT_DECONSTRUCTOR_DEEPSCANNED))
+ identification_flags |= ID_COMPONENT_DECONSTRUCTOR_DEEPSCANNED
+ on_identify(user)
+ if(deconstructor_reveal_text)
+ information += deconstructor_reveal_text
+ return COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION
+
+/**
+ * Identification component subtype - Syndicate
+ *
+ * Checks if the user is a traitor.
+ */
+/datum/component/identification/syndicate
+
+/datum/component/identification/syndicate/check_knowledge(mob/user)
+ . = ..()
+ if(user?.mind?.has_antag_datum(/datum/antagonist/traitor))
+ . = max(., ID_COMPONENT_KNOWLEDGE_FULL)
diff --git a/code/datums/components/infective.dm b/code/datums/components/infective.dm
index ad2b7ded14..8d3c6ab81f 100644
--- a/code/datums/components/infective.dm
+++ b/code/datums/components/infective.dm
@@ -13,7 +13,7 @@
expire_time = world.time + expire_in
QDEL_IN(src, expire_in)
- if(!ismovableatom(parent))
+ if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean)
RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/try_infect_buckle)
diff --git a/code/datums/components/knockback.dm b/code/datums/components/knockback.dm
index 988a0e575e..bd0d5ae352 100644
--- a/code/datums/components/knockback.dm
+++ b/code/datums/components/knockback.dm
@@ -1,13 +1,18 @@
/datum/component/knockback
+ /// distance the atom will be thrown
var/throw_distance
+ /// whether this can throw anchored targets (tables, etc)
var/throw_anchored
+ /// whether this is a gentle throw (default false means people thrown into walls are stunned / take damage)
+ var/throw_gentle
-/datum/component/knockback/Initialize(throw_distance=1)
+/datum/component/knockback/Initialize(throw_distance=1, throw_gentle=FALSE)
if(!isitem(parent) && !ishostile(parent) && !isgun(parent) && !ismachinery(parent) && !isstructure(parent))
return COMPONENT_INCOMPATIBLE
src.throw_distance = throw_distance
src.throw_anchored = throw_anchored
+ src.throw_gentle = throw_gentle
/datum/component/knockback/RegisterWithParent()
. = ..()
@@ -22,19 +27,31 @@
. = ..()
UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT))
+/// triggered after an item attacks something
/datum/component/knockback/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters)
if(!proximity_flag)
return
do_knockback(target, user, get_dir(source, target))
+/// triggered after a hostile simplemob attacks something
/datum/component/knockback/proc/hostile_attackingtarget(mob/living/simple_animal/hostile/attacker, atom/target)
do_knockback(target, attacker, get_dir(attacker, target))
+/// triggered after a projectile hits something
/datum/component/knockback/proc/projectile_hit(atom/fired_from, atom/movable/firer, atom/target, Angle)
do_knockback(target, null, angle2dir(Angle))
+
+/**
+ * Throw a target in a direction
+ *
+ * Arguments:
+ * * target - Target atom to throw
+ * * thrower - Thing that caused this atom to be thrown
+ * * throw_dir - Direction to throw the atom
+ */
/datum/component/knockback/proc/do_knockback(atom/target, mob/thrower, throw_dir)
- if(!ismovableatom(target) || throw_dir == null)
+ if(!ismovable(target) || throw_dir == null)
return
var/atom/movable/throwee = target
if(throwee.anchored && !throw_anchored)
@@ -43,4 +60,4 @@
throw_dir = turn(throw_dir, 180)
throw_distance *= -1
var/atom/throw_target = get_edge_target_turf(throwee, throw_dir)
- throwee.safe_throw_at(throw_target, throw_distance, 1, thrower)
+ throwee.safe_throw_at(throw_target, throw_distance, 1, thrower) //, gentle = throw_gentle)
diff --git a/code/datums/components/magnetic_catch.dm b/code/datums/components/magnetic_catch.dm
index c7e59e0ead..181b24260b 100644
--- a/code/datums/components/magnetic_catch.dm
+++ b/code/datums/components/magnetic_catch.dm
@@ -2,7 +2,7 @@
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine)
- if(ismovableatom(parent))
+ if(ismovable(parent))
RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/crossed_react)
RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/uncrossed_react)
for(var/i in get_turf(parent))
diff --git a/code/datums/components/mirage_border.dm b/code/datums/components/mirage_border.dm
index 20e3b317ec..56b41533f5 100644
--- a/code/datums/components/mirage_border.dm
+++ b/code/datums/components/mirage_border.dm
@@ -14,8 +14,8 @@
var/x = target.x
var/y = target.y
var/z = target.z
- var/turf/southwest = locate(CLAMP(x - (direction & WEST ? range : 0), 1, world.maxx), CLAMP(y - (direction & SOUTH ? range : 0), 1, world.maxy), CLAMP(z, 1, world.maxz))
- var/turf/northeast = locate(CLAMP(x + (direction & EAST ? range : 0), 1, world.maxx), CLAMP(y + (direction & NORTH ? range : 0), 1, world.maxy), CLAMP(z, 1, world.maxz))
+ var/turf/southwest = locate(clamp(x - (direction & WEST ? range : 0), 1, world.maxx), clamp(y - (direction & SOUTH ? range : 0), 1, world.maxy), clamp(z, 1, world.maxz))
+ var/turf/northeast = locate(clamp(x + (direction & EAST ? range : 0), 1, world.maxx), clamp(y + (direction & NORTH ? range : 0), 1, world.maxy), clamp(z, 1, world.maxz))
//holder.vis_contents += block(southwest, northeast) // This doesnt work because of beta bug memes
for(var/i in block(southwest, northeast))
holder.vis_contents += i
@@ -39,4 +39,5 @@
/obj/effect/abstract/mirage_holder
name = "Mirage holder"
anchored = TRUE
+ plane = PLANE_SPACE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index 5e9382f88e..23a81716b8 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -1,5 +1,7 @@
+#define SLIGHT_INSANITY_PEN 1
#define MINOR_INSANITY_PEN 5
#define MAJOR_INSANITY_PEN 10
+#define MOOD_INSANITY_MALUS 0.0054 // per point of sanity below SANITY_DISTURBED, a 40% debuff to skills at rock bottom depression.
/datum/component/mood
var/mood //Real happiness
@@ -22,7 +24,6 @@
RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event)
RegisterSignal(parent, COMSIG_MODIFY_SANITY, .proc/modify_sanity)
RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive)
-
RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud)
var/mob/living/owner = parent
if(owner.hud_used)
@@ -150,7 +151,7 @@
if(8)
setSanity(sanity+0.25, maximum=SANITY_GREAT)
if(9)
- setSanity(sanity+0.4, maximum=SANITY_GREAT)
+ setSanity(sanity+0.4, maximum=SANITY_AMAZING)
HandleNutrition(owner)
@@ -166,6 +167,7 @@
else if(sanity > maximum && amount > sanity - 0.5)
amount = sanity - 0.5
+ var/old_sanity = sanity
// Disturbed stops you from getting any more sane
if(HAS_TRAIT(master, TRAIT_UNSTABLE))
sanity = min(amount,sanity)
@@ -175,28 +177,34 @@
switch(sanity)
if(-INFINITY to SANITY_CRAZY)
setInsanityEffect(MAJOR_INSANITY_PEN)
- master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1.5) //Did we change something ? movetypes is runtiming, movetypes=(~FLYING))
+ master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane)
sanity_level = 6
if(SANITY_CRAZY to SANITY_UNSTABLE)
setInsanityEffect(MINOR_INSANITY_PEN)
- master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1)//, movetypes=(~FLYING))
+ master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy)
sanity_level = 5
if(SANITY_UNSTABLE to SANITY_DISTURBED)
- setInsanityEffect(0)
- master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=0.5)//, movetypes=(~FLYING))
+ setInsanityEffect(SLIGHT_INSANITY_PEN)
+ master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed)
sanity_level = 4
if(SANITY_DISTURBED to SANITY_NEUTRAL)
setInsanityEffect(0)
- master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE)
+ master.remove_movespeed_modifier(MOVESPEED_ID_SANITY)
sanity_level = 3
if(SANITY_NEUTRAL+1 to SANITY_GREAT+1) //shitty hack but +1 to prevent it from responding to super small differences
setInsanityEffect(0)
- master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE)
+ master.remove_movespeed_modifier(MOVESPEED_ID_SANITY)
sanity_level = 2
if(SANITY_GREAT+1 to INFINITY)
setInsanityEffect(0)
- master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE)
+ master.remove_movespeed_modifier(MOVESPEED_ID_SANITY)
sanity_level = 1
+
+ if(old_sanity > 1 && sanity == 1)
+ RegisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY, .proc/on_get_skill_affinity)
+ else if(old_sanity == 1 && sanity > 1)
+ UnregisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY)
+
//update_mood_icon()
/datum/component/mood/proc/setInsanityEffect(newval)//More code so that the previous proc works
@@ -204,9 +212,14 @@
return
//var/mob/living/master = parent
//master.crit_threshold = (master.crit_threshold - insanity_effect) + newval
+ if(!insanity_effect && newval)
+ RegisterSignal(parent, COMSIG_MOB_ACTION_SKILL_MOD, .proc/on_mob_action_skill_mod)
+ RegisterSignal(parent, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, .proc/on_item_action_skills_mod)
+ else if(insanity_effect && !newval)
+ UnregisterSignal(parent, list(COMSIG_MOB_ACTION_SKILL_MOD, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD))
insanity_effect = newval
-/datum/component/mood/proc/modify_sanity(datum/source, amount, minimum = -INFINITY, maximum = INFINITY)
+/datum/component/mood/proc/modify_sanity(datum/source, amount, minimum = SANITY_INSANE, maximum = SANITY_AMAZING)
setSanity(sanity + amount, minimum, maximum)
/datum/component/mood/proc/add_event(datum/source, category, type, param) //Category will override any events in the same category, should be unique unless the event is based on the same thing like hunger.
@@ -288,5 +301,40 @@
remove_temp_moods()
setSanity(initial(sanity))
+/datum/component/mood/proc/on_mob_action_skill_mod(mob/source, list/skill_args, list/mod_values)
+ var/datum/skill/S = GLOB.skill_datums[skill_args[ACTION_SKILL_MOD_SKILL]]
+ if(!(S.skill_flags & SKILL_USE_MOOD))
+ return
+ var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS
+ mod_values[MOD_VALUES_SKILL_MOD] *= skill_args[ACTION_SKILL_MOD_IS_MULTI] ? debuff : 1/debuff
+
+/datum/component/mood/proc/on_item_action_skills_mod(mob/source, list/skill_args, list/mod_values)
+ if(skill_args[ITEM_SKILLS_MOD_BAD_FLAGS] & SKILL_USE_MOOD)
+ return
+ var/divisor = mod_values[MOD_VALUES_ITEM_SKILLS_DIV]
+ if(!divisor)
+ return
+ var/obj/item/I = skill_args[ITEM_SKILLS_MOD_ITEM]
+ var/list/L = mod_values[MOD_VALUES_ITEM_SKILLS_CHECKED]
+ var/skills_len = length(L)
+ var/affected_skills = skills_len
+ for(var/k in L)
+ var/datum/skill/S = k
+ var/our_flags = I.used_skills[S.type]|S.skill_flags
+ if(!(our_flags & SKILL_USE_MOOD))
+ affected_skills--
+ if(!affected_skills)
+ return
+ var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS * (affected_skills/skills_len)
+ mod_values[MOD_VALUES_ITEM_SKILLS_SUM] *= skill_args[ITEM_SKILLS_MOD_IS_MULTI] ? debuff : 1/debuff
+
+/datum/component/mood/proc/on_get_skill_affinity(mob/source, skill_path, list/return_value)
+ var/datum/skill/S = GLOB.skill_datums[skill_path]
+ if(!S || !(S.skill_flags & SKILL_TRAIN_MOOD))
+ return
+ return_value[1] *= SKILL_AFFINITY_MOOD_BONUS
+
+#undef SLIGHT_INSANITY_PEN
#undef MINOR_INSANITY_PEN
#undef MAJOR_INSANITY_PEN
+#undef MOOD_INSANITY_MALUS
diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm
index 7aacb745b6..29add286be 100644
--- a/code/datums/components/nanites.dm
+++ b/code/datums/components/nanites.dm
@@ -12,7 +12,7 @@
var/list/datum/nanite_program/programs = list()
var/max_programs = NANITE_PROGRAM_LIMIT
- var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when cheking for conflicts
+ var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when checking for conflicts
var/start_time = 0 ///Timestamp to when the nanites were first inserted in the host
var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans
var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners
@@ -175,7 +175,7 @@
return (nanite_volume > 0)
/datum/component/nanites/proc/adjust_nanites(datum/source, amount)
- nanite_volume = CLAMP(nanite_volume + amount, 0, max_nanites)
+ nanite_volume = clamp(nanite_volume + amount, 0, max_nanites)
if(nanite_volume <= 0) //oops we ran out
qdel(src)
@@ -187,7 +187,7 @@
if(remove || stealth)
return //bye icon
var/nanite_percent = (nanite_volume / max_nanites) * 100
- nanite_percent = CLAMP(CEILING(nanite_percent, 10), 10, 100)
+ nanite_percent = clamp(CEILING(nanite_percent, 10), 10, 100)
holder.icon_state = "nanites[nanite_percent]"
/datum/component/nanites/proc/on_emp(datum/source, severity)
@@ -249,13 +249,13 @@
return FALSE
/datum/component/nanites/proc/set_volume(datum/source, amount)
- nanite_volume = CLAMP(amount, 0, max_nanites)
+ nanite_volume = clamp(amount, 0, max_nanites)
/datum/component/nanites/proc/set_max_volume(datum/source, amount)
max_nanites = max(1, max_nanites)
/datum/component/nanites/proc/set_cloud(datum/source, amount)
- cloud_id = CLAMP(amount, 0, 100)
+ cloud_id = clamp(amount, 0, 100)
/datum/component/nanites/proc/set_cloud_sync(datum/source, method)
switch(method)
@@ -267,7 +267,7 @@
cloud_active = TRUE
/datum/component/nanites/proc/set_safety(datum/source, amount)
- safety_threshold = CLAMP(amount, 0, max_nanites)
+ safety_threshold = clamp(amount, 0, max_nanites)
/datum/component/nanites/proc/set_regen(datum/source, amount)
regen_rate = amount
diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm
index 2be22d01e5..49e6b91c6d 100644
--- a/code/datums/components/orbiter.dm
+++ b/code/datums/components/orbiter.dm
@@ -22,14 +22,14 @@
/datum/component/orbiter/RegisterWithParent()
. = ..()
var/atom/target = parent
- while(ismovableatom(target))
+ while(ismovable(target))
RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react)
target = target.loc
/datum/component/orbiter/UnregisterFromParent()
. = ..()
var/atom/target = parent
- while(ismovableatom(target))
+ while(ismovable(target))
UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
target = target.loc
@@ -111,12 +111,12 @@
// These are prety rarely activated, how often are you following something in a bag?
if(oldloc && !isturf(oldloc)) // We used to be registered to it, probably
var/atom/target = oldloc
- while(ismovableatom(target))
+ while(ismovable(target))
UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
target = target.loc
if(orbited?.loc && orbited.loc != newturf) // We want to know when anything holding us moves too
var/atom/target = orbited.loc
- while(ismovableatom(target))
+ while(ismovable(target))
RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react, TRUE)
target = target.loc
diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm
index 4d8cfc4412..747dd8ca61 100644
--- a/code/datums/components/riding.dm
+++ b/code/datums/components/riding.dm
@@ -20,16 +20,21 @@
var/ride_check_ridden_incapacitated = FALSE
var/list/offhands = list() // keyed list containing all the current riding offsets associated by mob
+ var/del_on_unbuckle_all = FALSE
+
/datum/component/riding/Initialize()
- if(!ismovableatom(parent))
+ if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle)
RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle)
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/vehicle_moved)
/datum/component/riding/proc/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE)
+ var/atom/movable/AM = parent
restore_position(M)
unequip_buckle_inhands(M)
+ if(del_on_unbuckle_all && !AM.has_buckled_mobs())
+ qdel(src)
/datum/component/riding/proc/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE)
handle_vehicle_offsets()
@@ -194,26 +199,28 @@
///////Yes, I said humans. No, this won't end well...//////////
/datum/component/riding/human
+ del_on_unbuckle_all = TRUE
var/fireman_carrying = FALSE
/datum/component/riding/human/Initialize()
. = ..()
+ directional_vehicle_layers = list(TEXT_NORTH = MOB_LOWER_LAYER, TEXT_SOUTH = MOB_UPPER_LAYER, TEXT_EAST = MOB_UPPER_LAYER, TEXT_WEST = MOB_UPPER_LAYER)
RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee)
/datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE)
- . = ..()
var/mob/living/carbon/human/H = parent
if(!length(H.buckled_mobs))
- H.remove_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING)
+ H.remove_movespeed_modifier(/datum/movespeed_modifier/human_carry)
if(!fireman_carrying)
M.Daze(25)
REMOVE_TRAIT(M, TRAIT_MOBILITY_NOUSE, src)
+ return ..()
/datum/component/riding/human/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE)
. = ..()
var/mob/living/carbon/human/H = parent
if(length(H.buckled_mobs))
- H.add_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING, multiplicative_slowdown = fireman_carrying? FIREMAN_CARRY_SLOWDOWN : PIGGYBACK_CARRY_SLOWDOWN)
+ H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/human_carry, TRUE, fireman_carrying? FIREMAN_CARRY_SLOWDOWN : PIGGYBACK_CARRY_SLOWDOWN)
if(fireman_carrying)
ADD_TRAIT(M, TRAIT_MOBILITY_NOUSE, src)
@@ -260,6 +267,11 @@
user.visible_message("[AM] pushes [user] off of [AM.p_them()]! ")
/datum/component/riding/cyborg
+ del_on_unbuckle_all = TRUE
+
+/datum/component/riding/cyborg/Initialize()
+ . = ..()
+ directional_vehicle_layers = list(TEXT_NORTH = MOB_LOWER_LAYER, TEXT_SOUTH = MOB_UPPER_LAYER, TEXT_EAST = MOB_UPPER_LAYER, TEXT_WEST = MOB_UPPER_LAYER)
/datum/component/riding/cyborg/ride_check(mob/user)
var/atom/movable/AM = parent
diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm
index 422d73520e..6a32a46aef 100644
--- a/code/datums/components/rotation.dm
+++ b/code/datums/components/rotation.dm
@@ -14,7 +14,7 @@
var/default_rotation_direction = ROTATION_CLOCKWISE
/datum/component/simple_rotation/Initialize(rotation_flags = NONE ,can_user_rotate,can_be_rotated,after_rotation)
- if(!ismovableatom(parent))
+ if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
//throw if no rotation direction is specificed ?
diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm
new file mode 100644
index 0000000000..2052e57f49
--- /dev/null
+++ b/code/datums/components/shielded.dm
@@ -0,0 +1,191 @@
+/datum/component/shielded
+ dupe_mode = COMPONENT_DUPE_ALLOWED
+ can_transfer = TRUE
+ var/charges = 3
+ var/max_charges = 3
+ var/recharge_delay = 20 SECONDS //How long after we've been attacked before we can start recharging.
+ var/recharge_rate = 1 //How quickly the shield recharges once it starts charging. Can be a decimal. set to zero to disable.
+ var/last_time_used //Last time the shield attempted to stop an attack.
+ var/accepted_slots
+ var/shield_state = "shield-old" //the state of the shield overlay.
+ var/broken_state //null by default.
+ var/recharge_sound = 'sound/magic/charge.ogg'
+ var/recharge_end_sound = 'sound/machines/ding.ogg'
+ var/mob/living/holder //who is currently benefiting from the shield.
+ var/dissipating = FALSE //Is this shield meant to dissipate over time instead of recharging.
+ var/del_on_overload = FALSE //will delete itself once it has no charges left.
+
+/datum/component/shielded/Initialize(current, max = 3, delay = 20 SECONDS, rate = 1, slots, state = "shield-old", broken, \
+ sound = 'sound/magic/charge.ogg', end_sound = 'sound/machines/ding.ogg', diss = FALSE, del_overload = FALSE)
+ var/isitem = isitem(parent)
+ if(!isitem && !isliving(parent))
+ return COMPONENT_INCOMPATIBLE
+ max_charges = max
+ charges = !isnull(current) ? current : max_charges
+ recharge_delay = delay
+ recharge_rate = rate
+ accepted_slots = slots
+ shield_state = state
+ broken_state = broken
+ recharge_sound = sound
+ recharge_end_sound = end_sound
+ dissipating = diss
+ del_on_overload = del_overload
+ if(dissipating && recharge_rate > 0)
+ recharge_rate = -recharge_rate
+ if(recharge_delay && recharge_rate && (charges < max_charges || dissipating))
+ START_PROCESSING(SSdcs, src)
+
+/datum/component/shielded/RegisterWithParent()
+ . = ..()
+ if(isitem(parent))
+ RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip)
+ RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop)
+ else //it's a mob
+ var/mob/living/L = parent
+ RegisterSignal(L, COMSIG_LIVING_RUN_BLOCK, .proc/living_block)
+ holder = L
+ var/to_add = charges >= 1 ? shield_state : broken_state
+ if(to_add)
+ var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add)
+ M.layer = (L.layer > MOB_LAYER ? L.layer : MOB_LAYER) + 0.01
+ holder.add_overlay(M, TRUE)
+
+/datum/component/shielded/UnregisterFromParent()
+ . = ..()
+ if(parent != holder) //not a mob, thus an item.
+ UnregisterSignal(parent, list(COMSIG_ITEM_RUN_BLOCK,COMSIG_ITEM_CHECK_BLOCK,COMSIG_ITEM_EQUIPPED,COMSIG_ITEM_DROPPED))
+ if(holder)
+ UnregisterSignal(holder, list(COMSIG_LIVING_RUN_BLOCK, COMSIG_LIVING_GET_BLOCKING_ITEMS))
+ var/to_remove = charges >= 1 ? shield_state : broken_state
+ if(to_remove)
+ holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE)
+ holder = null
+
+/datum/component/shielded/process()
+ if(world.time < last_time_used && !dissipating)
+ return
+ var/old_charges = charges
+ charges = clamp(charges + recharge_rate, 0, max_charges)
+ if(round(old_charges) >= round(charges)) //only send outputs if it effectively gained at least one charge
+ return
+ var/sound = recharge_sound
+ if(dissipating ? !charges : charges == max_charges )
+ STOP_PROCESSING(SSdcs, src)
+ sound = recharge_end_sound
+ if(parent && sound)
+ playsound(parent, sound, 50, 1)
+ if(charges < 1 && del_on_overload)
+ if(holder)
+ holder.visible_message("[holder]'s shield overloads!")
+ qdel(src)
+ return
+ if(holder && (old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1))
+ update_shield_overlay(charges < 1)
+
+/datum/component/shielded/proc/adjust_charges(amount)
+ var/old_charges = charges
+ charges = clamp(charges + amount, 0, max_charges)
+ if(recharge_delay && recharge_rate && (dissipating ? !charges : charges == max_charges))
+ STOP_PROCESSING(SSdcs, src)
+ if(charges < 1 && del_on_overload)
+ if(holder)
+ holder.visible_message("[holder]'s shield overloads!")
+ qdel(src)
+ return
+ if(holder && (old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1))
+ update_shield_overlay(charges < 1)
+
+/datum/component/shielded/proc/update_shield_overlay(broken)
+ if(!holder)
+ return
+ var/to_remove = broken ? shield_state : broken_state
+ var/to_add = broken ? broken_state : shield_state
+ if(to_remove)
+ holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE)
+ if(to_add)
+ var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add)
+ M.layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01
+ holder.add_overlay(M, TRUE)
+
+/datum/component/shielded/proc/on_equip(obj/item/source, mob/living/equipper, slot)
+ if(!(accepted_slots & slotdefine2slotbit(slot)))
+ return
+ holder = equipper
+ RegisterSignal(parent, COMSIG_ITEM_RUN_BLOCK, .proc/on_run_block)
+ RegisterSignal(parent, COMSIG_ITEM_CHECK_BLOCK, .proc/on_check_block)
+ RegisterSignal(equipper, COMSIG_LIVING_GET_BLOCKING_ITEMS, .proc/include_shield)
+ var/to_add = charges >= 1 ? shield_state : broken_state
+ if(to_add)
+ var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add)
+ M.layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01
+ equipper.add_overlay(M, TRUE)
+
+/datum/component/shielded/proc/on_drop(obj/item/source, mob/dropper)
+ if(holder == dropper)
+ UnregisterSignal(holder, COMSIG_LIVING_GET_BLOCKING_ITEMS)
+ UnregisterSignal(parent, list(COMSIG_ITEM_RUN_BLOCK, COMSIG_ITEM_CHECK_BLOCK))
+ var/to_remove = charges >= 1 ? shield_state : broken_state
+ if(to_remove)
+ holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE)
+ holder = null
+
+/datum/component/shielded/proc/include_shield(mob/source, list/items)
+ items += parent
+
+/datum/component/shielded/proc/on_run_block(obj/item/source, mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ if(block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] >= 100) //already blocked by another shielded item, don't do anything.
+ block_return[BLOCK_RETURN_BLOCK_CAPACITY] += round(charges)
+ return BLOCK_NONE
+ last_time_used = world.time + recharge_delay
+ if(charges < 1)
+ return BLOCK_NONE
+ var/datum/effect_system/spark_spread/s = new
+ s.set_up(2, 1, source)
+ s.start()
+ owner.visible_message("[holder]'s shields deflect [attack_text] in a shower of sparks! ")
+ charges--
+ var/rounded_charges = round(charges)
+ if(recharge_delay && recharge_rate && !dissipating)
+ START_PROCESSING(SSdcs, src)
+ if(charges < 1)
+ owner.visible_message("[holder]'s shield overloads!")
+ if(del_on_overload)
+ qdel(src)
+ else
+ update_shield_overlay(TRUE)
+ block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100
+ block_return[BLOCK_RETURN_BLOCK_CAPACITY] += rounded_charges
+ return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL
+
+/datum/component/shielded/proc/on_check_block(obj/item/source, mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ if(charges >= 1)
+ block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100
+ block_return[BLOCK_RETURN_BLOCK_CAPACITY] += round(charges)
+
+/datum/component/shielded/proc/living_block(mob/living/source, real_attack, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)
+ if(!real_attack)
+ if(charges >= 1)
+ return_list[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100
+ return_list[BLOCK_RETURN_BLOCK_CAPACITY] = round(charges)
+ return
+ last_time_used = world.time + recharge_delay
+ if(charges < 1)
+ return BLOCK_NONE
+ var/datum/effect_system/spark_spread/s = new
+ s.set_up(2, 1, source)
+ s.start()
+ source.visible_message("[source]'s shields deflect [attack_text] in a shower of sparks! ")
+ charges--
+ var/rounded_charges = round(charges)
+ if(recharge_delay && recharge_rate && !dissipating)
+ START_PROCESSING(SSdcs, src)
+ if(charges < 1)
+ source.visible_message("[source]'s shield overloads!")
+ if(del_on_overload)
+ qdel(src)
+ else
+ update_shield_overlay(TRUE)
+ return_list[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100
+ return_list[BLOCK_RETURN_BLOCK_CAPACITY] += rounded_charges
+ return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL
diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm
index f070d9b22f..96807fe313 100644
--- a/code/datums/components/shrink.dm
+++ b/code/datums/components/shrink.dm
@@ -14,7 +14,7 @@
parent_atom.opacity = 0
if(isliving(parent_atom))
var/mob/living/L = parent_atom
- L.add_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY, update=TRUE, priority=100, multiplicative_slowdown=4)
+ L.add_movespeed_modifier(/datum/movespeed_modifier/shrink_ray)
if(iscarbon(L))
var/mob/living/carbon/C = L
C.unequip_everything()
@@ -35,7 +35,7 @@
parent_atom.opacity = oldopac
if(isliving(parent_atom))
var/mob/living/L = parent_atom
- L.remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY)
+ L.remove_movespeed_modifier(/datum/movespeed_modifier/shrink_ray)
if(ishuman(L))
var/mob/living/carbon/human/H = L
H.physiology.damage_resistance += 100
diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm
index ad538760db..792222b27b 100644
--- a/code/datums/components/squeak.dm
+++ b/code/datums/components/squeak.dm
@@ -16,7 +16,7 @@
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), .proc/play_squeak)
- if(ismovableatom(parent))
+ if(ismovable(parent))
RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak)
RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ITEM_WEARERCROSSED), .proc/play_squeak_crossed)
RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react)
diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm
index 13267e74c3..b651133274 100644
--- a/code/datums/components/stationloving.dm
+++ b/code/datums/components/stationloving.dm
@@ -5,7 +5,7 @@
var/allow_death = FALSE
/datum/component/stationloving/Initialize(inform_admins = FALSE, allow_death = FALSE)
- if(!ismovableatom(parent))
+ if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, list(COMSIG_MOVABLE_Z_CHANGED), .proc/check_in_bounds)
RegisterSignal(parent, list(COMSIG_MOVABLE_SECLUDED_LOCATION), .proc/relocate)
diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm
index 4d3ecc8d17..851885b2ed 100644
--- a/code/datums/components/storage/concrete/pockets.dm
+++ b/code/datums/components/storage/concrete/pockets.dm
@@ -56,7 +56,8 @@
/obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector,
/obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper,
/obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini,
- /obj/item/firing_pin, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/automatic/magrifle/pistol
+ /obj/item/firing_pin, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/automatic/magrifle/pistol,
+ /obj/item/toy/plush/snakeplushie
))
/datum/component/storage/concrete/pockets/shoes/clown/Initialize()
diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index 4100942fec..aad6e8289f 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -15,6 +15,7 @@
var/datum/component/storage/concrete/master //If not null, all actions act on master and this is just an access point.
var/list/can_hold //if this is set, only things in this typecache will fit.
+ var/list/can_hold_extra //if this is set, it will also be able to hold these.
var/list/cant_hold //if this is set, anything in this typecache will not be able to fit.
var/list/mob/is_using //lazy list of mobs looking at the contents of this storage.
@@ -493,26 +494,25 @@
if(M && !stop_messages)
host.add_fingerprint(M)
return FALSE
- if(length(can_hold))
- if(!is_type_in_typecache(I, can_hold))
+ if(!length(can_hold_extra) || !is_type_in_typecache(I, can_hold_extra))
+ if(length(can_hold) && !is_type_in_typecache(I, can_hold))
if(!stop_messages)
to_chat(M, "[host] cannot hold [I]! ")
return FALSE
- if(is_type_in_typecache(I, cant_hold)) //Check for specific items which this container can't hold.
- if(!stop_messages)
- to_chat(M, "[host] cannot hold [I]! ")
- return FALSE
- // STORAGE LIMITS
+ if(is_type_in_typecache(I, cant_hold)) //Check for specific items which this container can't hold.
+ if(!stop_messages)
+ to_chat(M, "[host] cannot hold [I]! ")
+ return FALSE
+ if(storage_flags & STORAGE_LIMIT_MAX_W_CLASS && I.w_class > max_w_class)
+ if(!stop_messages)
+ to_chat(M, "[I] is too long for [host]! ")
+ return FALSE
+ // STORAGE LIMITS
if(storage_flags & STORAGE_LIMIT_MAX_ITEMS)
if(real_location.contents.len >= max_items)
if(!stop_messages)
to_chat(M, "[host] has too many things in it, make some space! ")
return FALSE //Storage item is full
- if(storage_flags & STORAGE_LIMIT_MAX_W_CLASS)
- if(I.w_class > max_w_class)
- if(!stop_messages)
- to_chat(M, "[I] is too long for [host]! ")
- return FALSE
if(storage_flags & STORAGE_LIMIT_COMBINED_W_CLASS)
var/sum_w_class = I.w_class
for(var/obj/item/_I in real_location)
diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm
index dd8607a51c..f37f574002 100644
--- a/code/datums/components/storage/ui.dm
+++ b/code/datums/components/storage/ui.dm
@@ -27,8 +27,8 @@
numbered_contents = _process_numerical_display()
adjusted_contents = numbered_contents.len
- var/columns = CLAMP(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns)
- var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows)
+ var/columns = clamp(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns)
+ var/rows = clamp(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows)
// First, boxes.
ui_boxes = get_ui_boxes()
@@ -105,7 +105,7 @@
// after this point we are sure we can somehow fit all items into our max number of rows.
// determine rows
- var/rows = CLAMP(CEILING(min_pixels / horizontal_pixels, 1), 1, screen_max_rows)
+ var/rows = clamp(CEILING(min_pixels / horizontal_pixels, 1), 1, screen_max_rows)
var/overrun = FALSE
if(used > our_volume)
@@ -198,7 +198,7 @@
M.active_storage.ui_hide(M)
M.active_storage = src
LAZYOR(is_using, M)
- if(volumetric_ui())
+ if(!M.client?.prefs?.no_tetris_storage && volumetric_ui())
//new volumetric ui bay-style
M.client.screen |= orient2hud_volumetric(M, maxallowedscreensize)
else
diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm
new file mode 100644
index 0000000000..ddc47d59a1
--- /dev/null
+++ b/code/datums/components/tackle.dm
@@ -0,0 +1,491 @@
+#define MAX_TABLE_MESSES 8 // how many things can we knock off a table at once?
+
+/**
+ *#tackle.dm
+ *
+ * For when you want to throw a person at something and have fun stuff happen
+ *
+ * This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your
+ * intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll
+ * roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying,
+ * and take a bit of extra damage and stun for each thing launched.
+ *
+ * There are 2 """skill rolls""" involved here, which are handled and explained in sack() and rollTackle() (for roll 1, carbons), and splat() (for roll 2, walls and solid objects)
+*/
+/datum/component/tackler
+ dupe_mode = COMPONENT_DUPE_UNIQUE
+ ///How much stamina it takes to launch a tackle
+ var/stamina_cost
+ ///Launching a tackle calls Knockdown on you for this long, so this is your cooldown. Once you stand back up, you can tackle again.
+ var/base_knockdown
+ ///Your max range for how far you can tackle.
+ var/range
+ ///How fast you sail through the air. Standard tackles are 1 speed, but gloves that throw you faster come at a cost: higher speeds make it more likely you'll be badly injured if you fly into a non-mob obstacle.
+ var/speed
+ ///A flat modifier to your roll against your target, as described in [rollTackle()][/datum/component/tackler/proc/rollTackle]. Slightly misleading, skills aren't relevant here, this is a matter of what type of gloves (or whatever) is granting you the ability to tackle.
+ var/skill_mod
+ ///Some gloves, generally ones that increase mobility, may have a minimum distance to fly. Rocket gloves are especially dangerous with this, be sure you'll hit your target or have a clear background if you miss, or else!
+ var/min_distance
+ ///The throwdatum we're currently dealing with, if we need it
+ var/datum/thrownthing/tackle
+
+/datum/component/tackler/Initialize(stamina_cost = 25, base_knockdown = 1 SECONDS, range = 4, speed = 1, skill_mod = 0, min_distance = min_distance)
+ if(!iscarbon(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ src.stamina_cost = stamina_cost
+ src.base_knockdown = base_knockdown
+ src.range = range
+ src.speed = speed
+ src.skill_mod = skill_mod
+ src.min_distance = min_distance
+
+ var/mob/living/carbon/P = parent
+ to_chat(P, "You are now able to launch tackles! You can do so by activating throw intent, and clicking on your target with an empty hand. ")
+ P.tackling = TRUE
+ addtimer(CALLBACK(src, .proc/resetTackle), base_knockdown, TIMER_STOPPABLE)
+
+/datum/component/tackler/Destroy()
+ var/mob/living/carbon/P = parent
+ to_chat(P, "You can no longer tackle. ")
+ P.tackling = FALSE
+ ..()
+
+/datum/component/tackler/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_MOB_CLICKON, .proc/checkTackle)
+ RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/sack)
+ RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, .proc/registerTackle)
+
+/datum/component/tackler/UnregisterFromParent()
+ UnregisterSignal(parent, list(COMSIG_MOB_CLICKON, COMSIG_MOVABLE_IMPACT, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_POST_THROW))
+
+///Store the thrownthing datum for later use
+/datum/component/tackler/proc/registerTackle(mob/living/carbon/user, datum/thrownthing/TT)
+ tackle = TT
+
+///See if we can tackle or not. If we can, leap!
+/datum/component/tackler/proc/checkTackle(mob/living/carbon/user, atom/A, params)
+ if(!user.in_throw_mode || user.get_active_held_item() || user.pulling || user.buckling)
+ return
+
+ if(HAS_TRAIT(user, TRAIT_HULK))
+ to_chat(user, "You're too angry to remember how to tackle! ")
+ return
+
+ if(user.restrained())
+ to_chat(user, "You need free use of your hands to tackle! ")
+ return
+
+ if(!(user.mobility_flags & MOBILITY_STAND))
+ to_chat(user, "You must be standing to tackle! ")
+ return
+
+ if(user.tackling)
+ to_chat(user, "You're not ready to tackle! ")
+ return
+
+ if(user.has_status_effect(STATUS_EFFECT_TASED)) // can't tackle if you just got tased
+ to_chat(user, "You can't tackle while tased! ")
+ return
+
+ user.face_atom(A)
+
+ var/list/modifiers = params2list(params)
+ if(modifiers["alt"] || modifiers["shift"] || modifiers["ctrl"] || modifiers["middle"])
+ return
+
+ user.tackling = TRUE
+ RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/checkObstacle)
+ playsound(user, 'sound/weapons/thudswoosh.ogg', 40, TRUE, -1)
+
+ var/leap_word = iscatperson(user) ? "pounce" : "leap" ///If cat, "pounce" instead of "leap".
+ if(can_see(user, A, 7))
+ user.visible_message("[user] [leap_word]s at [A]! ", "You [leap_word] at [A]! ")
+ else
+ user.visible_message("[user] [leap_word]s! ", "You [leap_word]! ")
+
+ if(get_dist(user, A) < min_distance)
+ A = get_ranged_target_turf(user, get_dir(user, A), min_distance) //TODO: this only works in cardinals/diagonals, make it work with in-betweens too!
+
+ user.Knockdown(base_knockdown, TRUE, TRUE)
+ user.adjustStaminaLoss(stamina_cost)
+ user.throw_at(A, range, speed, user, FALSE)
+ user.toggle_throw_mode()
+ addtimer(CALLBACK(src, .proc/resetTackle), base_knockdown, TIMER_STOPPABLE)
+ return(COMSIG_MOB_CANCEL_CLICKON)
+
+/**
+ * sack()
+ *
+ * sack() is called when you actually smack into something, assuming we're mid-tackle. First it deals with smacking into non-carbons, in two cases:
+ * * If it's a non-carbon mob, we don't care, get out of here and do normal thrown-into-mob stuff
+ * * Else, if it's something dense (walls, machinery, structures, most things other than the floor), go to splat() and get ready for some high grade shit
+ *
+ * If it's a carbon we hit, we'll call rollTackle() which rolls a die and calculates modifiers for both the tackler and target, then gives us a number. Negatives favor the target, while positives favor the tackler.
+ * Check [rollTackle()][/datum/component/tackler/proc/rollTackle] for a more thorough explanation on the modifiers at play.
+ *
+ * Then, we figure out what effect we want, and we get to work! Note that with standard gripper gloves and no modifiers, the range of rolls is (-3, 3). The results are as follows, based on what we rolled:
+ * * -inf to -5: Seriously botched tackle, tackler suffers a concussion, brute damage, and a 3 second paralyze, target suffers nothing
+ * * -4 to -2: weak tackle, tackler gets 3 second knockdown, target gets shove slowdown but is otherwise fine
+ * * -1 to 0: decent tackle, tackler gets up a bit quicker than the target
+ * * 1: solid tackle, tackler has more of an advantage getting up quicker
+ * * 2 to 4: expert tackle, tackler has sizeable advantage and lands on their feet with a free passive grab
+ * * 5 to inf: MONSTER tackle, tackler gets up immediately and gets a free aggressive grab, target takes sizeable stamina damage from the hit and is paralyzed for one and a half seconds and knocked down for three seconds
+ *
+ * Finally, we return a bitflag to [COMSIG_MOVABLE_IMPACT] that forces the hitpush to false so that we don't knock them away.
+*/
+/datum/component/tackler/proc/sack(mob/living/carbon/user, atom/hit)
+ if(!user.tackling || !tackle)
+ return
+
+ if(!iscarbon(hit))
+ if(hit.density)
+ return splat(user, hit)
+ return
+
+ var/mob/living/carbon/target = hit
+ var/tackle_word = iscatperson(user) ? "pounce" : "tackle" ///If cat, "pounce" instead of "tackle".
+
+ var/roll = rollTackle(target)
+ user.tackling = FALSE
+
+ switch(roll)
+ if(-INFINITY to -5)
+ user.visible_message("[user] botches [user.p_their()] [tackle_word] and slams [user.p_their()] head into [target], knocking [user.p_them()]self silly! ", "You botch your [tackle_word] and slam your head into [target], knocking yourself silly! ", target)
+ to_chat(target, "[user] botches [user.p_their()] [tackle_word] and slams [user.p_their()] head into you, knocking [user.p_them()]self silly! ")
+
+ user.Paralyze(30)
+ var/obj/item/bodypart/head/hed = user.get_bodypart(BODY_ZONE_HEAD)
+ if(hed)
+ hed.receive_damage(brute=20, updating_health=TRUE)
+ user.gain_trauma(/datum/brain_trauma/mild/concussion)
+
+ if(-4 to -2) // glancing blow at best
+ user.visible_message("[user] lands a weak [tackle_word] on [target], briefly knocking [target.p_them()] off-balance! ", "You land a weak [tackle_word] on [target], briefly knocking [target.p_them()] off-balance! ", target)
+ to_chat(target, "[user] lands a weak [tackle_word] on you, briefly knocking you off-balance! ")
+
+ user.Knockdown(30)
+ target.apply_status_effect(STATUS_EFFECT_TASED_WEAK, 6 SECONDS)
+
+ if(-1 to 0) // decent hit, both parties are about equally inconvenienced
+ user.visible_message("[user] lands a passable [tackle_word] on [target], sending them both tumbling! ", "You land a passable [tackle_word] on [target], sending you both tumbling! ", target)
+ to_chat(target, "[user] lands a passable [tackle_word] on you, sending you both tumbling! ")
+
+ target.adjustStaminaLoss(stamina_cost)
+ target.Paralyze(5)
+ user.Knockdown(20)
+ target.Knockdown(25)
+
+ if(1 to 2) // solid hit, tackler has a slight advantage
+ user.visible_message("[user] lands a solid [tackle_word] on [target], knocking them both down hard! ", "You land a solid [tackle_word] on [target], knocking you both down hard! ", target)
+ to_chat(target, "[user] lands a solid [tackle_word] on you, knocking you both down hard! ")
+
+ target.adjustStaminaLoss(30)
+ target.Paralyze(5)
+ user.Knockdown(10)
+ target.Knockdown(20)
+
+ if(3 to 4) // really good hit, the target is definitely worse off here. Without positive modifiers, this is as good a tackle as you can land
+ user.visible_message("[user] lands an expert [tackle_word] on [target], knocking [target.p_them()] down hard while landing on [user.p_their()] feet with a passive grip! ", "You land an expert [tackle_word] on [target], knocking [target.p_them()] down hard while landing on your feet with a passive grip! ", target)
+ to_chat(target, "[user] lands an expert [tackle_word] on you, knocking you down hard and maintaining a passive grab! ")
+
+ user.SetKnockdown(0)
+ user.set_resting(FALSE, TRUE, FALSE)
+ user.forceMove(get_turf(target))
+ target.adjustStaminaLoss(40)
+ target.Paralyze(5)
+ target.Knockdown(30)
+ if(ishuman(target) && iscarbon(user))
+ target.grabbedby(user)
+
+ if(5 to INFINITY) // absolutely BODIED
+ user.visible_message("[user] lands a monster [tackle_word] on [target], knocking [target.p_them()] senseless and applying an aggressive pin! ", "You land a monster [tackle_word] on [target], knocking [target.p_them()] senseless and applying an aggressive pin! ", target)
+ to_chat(target, "[user] lands a monster [tackle_word] on you, knocking you senseless and aggressively pinning you! ")
+
+ user.SetKnockdown(0)
+ user.set_resting(FALSE, TRUE, FALSE)
+ user.forceMove(get_turf(target))
+ target.adjustStaminaLoss(40)
+ target.Paralyze(5)
+ target.Knockdown(30)
+ if(ishuman(target) && iscarbon(user))
+ target.grabbedby(user)
+ target.grippedby(user, instant = TRUE)
+
+ SEND_SIGNAL(user, COMSIG_CARBON_TACKLED, roll)
+ return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH
+
+/**
+ * rollTackle()
+ *
+ * This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!)
+ *
+ * The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for
+ * how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas
+ * are absolutely subject to change.
+
+ * In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles
+ * are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility.
+*/
+/datum/component/tackler/proc/rollTackle(mob/living/carbon/target)
+ var/defense_mod = 0
+ var/attack_mod = 0
+
+ // DE-FENSE
+ if(target.drunkenness > 60) // drunks are easier to knock off balance
+ defense_mod -= 3
+ else if(target.drunkenness > 30)
+ defense_mod -= 1
+ if(HAS_TRAIT(target, TRAIT_CLUMSY))
+ defense_mod -= 2
+ if(HAS_TRAIT(target, TRAIT_FAT)) // chonkers are harder to knock over
+ defense_mod += 1
+ //if(HAS_TRAIT(target, TRAIT_GRABWEAKNESS)) Todo, port the pushover trait
+ //defense_mod -= 2
+ if(HAS_TRAIT(target, TRAIT_DWARF))
+ defense_mod -= 2
+ if(HAS_TRAIT(target, TRAIT_GIANT))
+ defense_mod += 2
+
+ if(ishuman(target))
+ var/mob/living/carbon/human/T = target
+ var/suit_slot = T.get_item_by_slot(ITEM_SLOT_OCLOTHING)
+
+ if(isnull(T.wear_suit) && isnull(T.w_uniform)) // who honestly puts all of their effort into tackling a naked guy?
+ defense_mod += 2
+ if(suit_slot && (istype(suit_slot,/obj/item/clothing/suit/space/hardsuit)))
+ defense_mod += 1
+ if(T.is_shove_knockdown_blocked()) // riot armor and such
+ defense_mod += 5
+ if(T.is_holding_item_of_type(/obj/item/shield))
+ defense_mod += 2
+
+ if(islizard(T))
+ if(!T.getorganslot(ORGAN_SLOT_TAIL)) // lizards without tails are off-balance
+ defense_mod -= 1
+ else if(T.dna.species.is_wagging_tail()) // lizard tail wagging is robust and can swat away assailants!
+ defense_mod += 1
+
+ // OF-FENSE
+ var/mob/living/carbon/sacker = parent
+
+ if(sacker.drunkenness > 60) // you're far too drunk to hold back!
+ attack_mod += 1
+ else if(sacker.drunkenness > 30) // if you're only a bit drunk though, you're just sloppy
+ attack_mod -= 1
+ if(HAS_TRAIT(sacker, TRAIT_CLUMSY))
+ attack_mod -= 2
+ if(HAS_TRAIT(sacker, TRAIT_DWARF))
+ attack_mod -= 2
+ if(HAS_TRAIT(sacker, TRAIT_GIANT))
+ attack_mod += 2
+
+ if(ishuman(target))
+ var/mob/living/carbon/human/S = sacker
+
+ var/suit_slot = S.get_item_by_slot(ITEM_SLOT_OCLOTHING)
+ if(suit_slot && (istype(suit_slot,/obj/item/clothing/suit/armor/riot))) // tackling in riot armor is more effective, but tiring
+ attack_mod += 2
+ sacker.adjustStaminaLoss(20)
+
+ var/r = rand(-3, 3) - defense_mod + attack_mod + skill_mod
+ return r
+
+
+/**
+ * splat()
+ *
+ * This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher
+ * the roll, the more severe the result.
+ *
+ * Mod 1: Speed
+ * * Base tackle speed is 1, which is what normal gripper gloves use. For other sources with higher speed tackles, like dolphin and ESPECIALLY rocket gloves, we obey Newton's laws and hit things harder.
+ * * For every unit of speed above 1, move the lower bound of the roll up by 15. Unlike Mod 2, this only serves to raise the lower bound, so it can't be directly counteracted by anything you can control.
+ *
+ * Mod 2: Misc
+ * -Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with,
+ * wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe
+ * * Wearing a helmet: -6
+ * * Wearing armor: -6
+ * * Clumsy: +6
+ *
+ * Effects: Below are the outcomes based off your roll, in order of increasing severity
+ * * 1-63: Knocked down for a few seconds and a bit of brute and stamina damage
+ * * 64-83: Knocked silly, gain some confusion as well as the above
+ * * 84-93: Cranial trauma, get a concussion and more confusion, plus more damage
+ * * 94-98: Knocked unconscious, significant chance to get a random mild brain trauma, as well as a fair amount of damage
+ * * 99-100: Break your spinal cord, get paralyzed, take a bunch of damage too. Very unlucky!
+*/
+/datum/component/tackler/proc/splat(mob/living/carbon/user, atom/hit)
+ if(istype(hit, /obj/structure/window))
+ var/obj/structure/window/W = hit
+ splatWindow(user, W)
+ if(QDELETED(W))
+ return COMPONENT_MOVABLE_IMPACT_NEVERMIND
+ return
+
+ var/oopsie_mod = 0
+ var/danger_zone = (speed - 1) * 15 // for every extra speed we have over 1, take away 15 of the safest chance
+ danger_zone = max(min(danger_zone, 100), 1)
+
+ if(ishuman(user))
+ var/mob/living/carbon/human/S = user
+ var/head_slot = S.get_item_by_slot(ITEM_SLOT_HEAD)
+ var/suit_slot = S.get_item_by_slot(ITEM_SLOT_OCLOTHING)
+ if(head_slot && (istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat)))
+ oopsie_mod -= 6
+ if(suit_slot && (istype(suit_slot,/obj/item/clothing/suit/armor/)))
+ oopsie_mod -= 6
+
+ if(HAS_TRAIT(user, TRAIT_CLUMSY))
+ oopsie_mod += 6 //honk!
+
+ var/oopsie = rand(danger_zone, 100)
+ if(oopsie >= 94 && oopsie_mod < 0) // good job avoiding getting paralyzed! gold star!
+ to_chat(user, "You're really glad you're wearing protection! ")
+ oopsie += oopsie_mod
+
+ switch(oopsie)
+ if(99 to INFINITY)
+ // can you imagine standing around minding your own business when all of the sudden some guy fucking launches himself into a wall at full speed and irreparably paralyzes himself?
+ user.visible_message("[user] slams face-first into [hit] at an awkward angle, severing [user.p_their()] spinal column with a sickening crack! Holy shit! ", "You slam face-first into [hit] at an awkward angle, severing your spinal column with a sickening crack! Holy shit! ")
+ user.adjustStaminaLoss(30)
+ user.adjustBruteLoss(30)
+ playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE)
+ playsound(user, 'sound/effects/splat.ogg', 70, TRUE)
+ user.emote("scream")
+ user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed!
+ shake_camera(user, 7, 7)
+ user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
+ user.clear_fullscreen("flash", 4.5)
+
+ if(94 to 98)
+ user.visible_message("[user] slams face-first into [hit] with a concerning squish, immediately going limp! ", "You slam face-first into [hit], and immediately lose consciousness! ")
+ user.adjustStaminaLoss(100)
+ user.adjustBruteLoss(30)
+ user.Unconscious(100)
+ user.gain_trauma_type(BRAIN_TRAUMA_MILD)
+ user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8, 0.9)
+ shake_camera(user, 6, 6)
+ user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
+ user.clear_fullscreen("flash", 3.5)
+
+ if(84 to 93)
+ user.visible_message("[user] slams head-first into [hit], suffering major cranial trauma! ", "You slam head-first into [hit], and the world explodes around you! ")
+ user.adjustStaminaLoss(30)
+ user.adjustBruteLoss(30)
+ user.confused += 15
+ if(prob(80))
+ user.gain_trauma(/datum/brain_trauma/mild/concussion)
+ user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8, 0.9)
+ user.DefaultCombatKnockdown(40)
+ shake_camera(user, 5, 5)
+ user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
+ user.clear_fullscreen("flash", 2.5)
+
+ if(64 to 83)
+ user.visible_message("[user] slams hard into [hit], knocking [user.p_them()] senseless! ", "You slam hard into [hit], knocking yourself senseless! ")
+ user.adjustStaminaLoss(30)
+ user.adjustBruteLoss(10)
+ user.confused += 10
+ user.DefaultCombatKnockdown(30)
+ shake_camera(user, 3, 4)
+
+ if(1 to 63)
+ user.visible_message("[user] slams into [hit]! ", "You slam into [hit]! ")
+ user.adjustStaminaLoss(20)
+ user.adjustBruteLoss(10)
+ user.DefaultCombatKnockdown(30)
+ shake_camera(user, 2, 2)
+
+ playsound(user, 'sound/weapons/smash.ogg', 70, TRUE)
+
+
+/datum/component/tackler/proc/resetTackle()
+ var/mob/living/carbon/P = parent
+ P.tackling = FALSE
+ QDEL_NULL(tackle)
+ UnregisterSignal(parent, COMSIG_MOVABLE_MOVED)
+
+///A special case for splatting for handling windows
+/datum/component/tackler/proc/splatWindow(mob/living/carbon/user, obj/structure/window/W)
+ playsound(user, "sound/effects/Glasshit.ogg", 140, TRUE)
+
+ if(W.type in list(/obj/structure/window, /obj/structure/window/fulltile, /obj/structure/window/unanchored, /obj/structure/window/fulltile/unanchored)) // boring unreinforced windows
+ for(var/i = 0, i < speed, i++)
+ var/obj/item/shard/shard = new /obj/item/shard(get_turf(user))
+ //shard.embedding = list(embed_chance = 100, ignore_throwspeed_threshold = TRUE, impact_pain_mult=3, pain_chance=5)
+ //shard.AddElement(/datum/element/embed, shard.embedding)
+ user.hitby(shard, skipcatch = TRUE, hitpush = FALSE)
+ //shard.embedding = list()
+ //shard.AddElement(/datum/element/embed, shard.embedding)
+ W.obj_destruction()
+ user.adjustStaminaLoss(10 * speed)
+ user.DefaultCombatKnockdown(40)
+ user.Paralyze(5)
+ user.visible_message("[user] slams into [W] and shatters it, shredding [user.p_them()]self with glass! ", "You slam into [W] and shatter it, shredding yourself with glass! ")
+
+ else
+ user.visible_message("[user] slams into [W] like a bug, then slowly slides off it! ", "You slam into [W] like a bug, then slowly slide off it! ")
+ user.Paralyze(2)
+ user.DefaultCombatKnockdown(20)
+ W.take_damage(20 * speed)
+ user.adjustStaminaLoss(10 * speed)
+ user.adjustBruteLoss(5 * speed)
+
+/datum/component/tackler/proc/delayedSmash(obj/structure/window/W)
+ if(W)
+ W.obj_destruction()
+ playsound(W, "shatter", 70, TRUE)
+
+///Check to see if we hit a table, and if so, make a big mess!
+/datum/component/tackler/proc/checkObstacle(mob/living/carbon/owner)
+ if(!owner.tackling)
+ return
+
+ var/turf/T = get_turf(owner)
+ var/obj/structure/table/kevved = locate(/obj/structure/table) in T.contents
+ if(!kevved)
+ return
+
+ var/list/messes = list()
+
+ // we split the mess-making into two parts (check what we're gonna send flying, intermission for dealing with the tackler, then actually send stuff flying) for the benefit of making sure the face-slam text
+ // comes before the list of stuff that goes flying, but can still adjust text + damage to how much of a mess it made
+ for(var/obj/item/I in T.contents)
+ if(!I.anchored)
+ messes += I
+ if(messes.len >= MAX_TABLE_MESSES)
+ break
+
+ /// for telling HOW big of a mess we just made
+ var/HOW_big_of_a_miss_did_we_just_make = ""
+ if(messes.len)
+ if(messes.len < MAX_TABLE_MESSES / 4)
+ HOW_big_of_a_miss_did_we_just_make = ", making a mess"
+ else if(messes.len < MAX_TABLE_MESSES / 2)
+ HOW_big_of_a_miss_did_we_just_make = ", making a big mess"
+ else if(messes.len < MAX_TABLE_MESSES)
+ HOW_big_of_a_miss_did_we_just_make = ", making a giant mess"
+ else
+ HOW_big_of_a_miss_did_we_just_make = ", making a ginormous mess!" // an extra exclamation point!! for emphasis!!!
+
+ owner.visible_message("[owner] trips over [kevved] and slams into it face-first[HOW_big_of_a_miss_did_we_just_make]! ", "You trip over [kevved] and slam into it face-first[HOW_big_of_a_miss_did_we_just_make]! ")
+ owner.adjustStaminaLoss(20 + messes.len * 2)
+ owner.adjustBruteLoss(10 + messes.len)
+ owner.Paralyze(2 * messes.len)
+ owner.DefaultCombatKnockdown(20 + 5 * messes.len) // 2 seconds of knockdown after the paralyze
+
+ for(var/obj/item/I in messes)
+ var/dist = rand(1, 3)
+ var/sp = 2
+ if(prob(25 * (src.speed - 1))) // if our tackle speed is higher than 1, with chance (speed - 1 * 25%), throw the thing at our tackle speed + 1
+ sp = speed + 1
+ I.throw_at(get_ranged_target_turf(I, pick(GLOB.alldirs), range = dist), range = dist, speed = sp)
+ I.visible_message("[I] goes flying[sp > 3 ? " dangerously fast" : ""]! ") // standard embed speed
+
+ playsound(owner, 'sound/weapons/smash.ogg', 70, TRUE)
+ tackle.finalize(hit=TRUE)
+ resetTackle()
+
+#undef MAX_TABLE_MESSES
diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm
index 30c6625049..0fbbcd59b0 100644
--- a/code/datums/components/wet_floor.dm
+++ b/code/datums/components/wet_floor.dm
@@ -181,7 +181,7 @@
/datum/component/wet_floor/proc/_do_add_wet(type, duration_minimum, duration_add, duration_maximum)
var/time = 0
if(LAZYACCESS(time_left_list, "[type]"))
- time = CLAMP(LAZYACCESS(time_left_list, "[type]") + duration_add, duration_minimum, duration_maximum)
+ time = clamp(LAZYACCESS(time_left_list, "[type]") + duration_add, duration_minimum, duration_maximum)
else
time = min(duration_minimum, duration_maximum)
LAZYSET(time_left_list, "[type]", time)
diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm
index c31139dcd7..80570d0c3b 100644
--- a/code/datums/dash_weapon.dm
+++ b/code/datums/dash_weapon.dm
@@ -42,7 +42,7 @@
addtimer(CALLBACK(src, .proc/charge), charge_rate)
/datum/action/innate/dash/proc/charge()
- current_charges = CLAMP(current_charges + 1, 0, max_charges)
+ current_charges = clamp(current_charges + 1, 0, max_charges)
holder.update_action_buttons_icon()
if(recharge_sound)
playsound(dashing_item, recharge_sound, 50, 1)
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index f97fde6f7e..348f9e6778 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -29,7 +29,8 @@
VV_DROPDOWN_OPTION(VV_HK_MARK, "Mark Object")
VV_DROPDOWN_OPTION(VV_HK_DELETE, "Delete")
VV_DROPDOWN_OPTION(VV_HK_EXPOSE, "Show VV To Player")
-// VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRAITS, "Modify Traits")
+ VV_DROPDOWN_OPTION(VV_HK_ADDCOMPONENT, "Add Component/Element")
+ VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRAITS, "Modify Traits")
//This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks!
//href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables!
@@ -37,8 +38,8 @@
/datum/proc/vv_do_topic(list/href_list)
if(!usr || !usr.client || !usr.client.holder || !check_rights(NONE))
return FALSE //This is VV, not to be called by anything else.
-// if(href_list[VV_HK_MODIFY_TRAITS])
-// usr.client.holder.modify_traits(src)
+ if(href_list[VV_HK_MODIFY_TRAITS])
+ usr.client.holder.modify_traits(src)
return TRUE
/datum/proc/vv_get_header()
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index 330a3494d9..7e3ac29b2d 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -246,10 +246,10 @@
else
visibility_flags &= ~HIDDEN_SCANNER
- SetSpread(CLAMP(2 ** (properties["transmittable"] - symptoms.len), DISEASE_SPREAD_BLOOD, DISEASE_SPREAD_AIRBORNE))
+ SetSpread(clamp(2 ** (properties["transmittable"] - symptoms.len), DISEASE_SPREAD_BLOOD, DISEASE_SPREAD_AIRBORNE))
permeability_mod = max(CEILING(0.4 * properties["transmittable"], 1), 1)
- cure_chance = 15 - CLAMP(properties["resistance"], -5, 5) // can be between 10 and 20
+ cure_chance = 15 - clamp(properties["resistance"], -5, 5) // can be between 10 and 20
stage_prob = max(properties["stage_rate"], 2)
SetSeverity(properties["severity"])
GenerateCure(properties)
@@ -304,7 +304,7 @@
// Will generate a random cure, the less resistance the symptoms have, the harder the cure.
/datum/disease/advance/proc/GenerateCure()
if(properties && properties.len)
- var/res = CLAMP(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len)
+ var/res = clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len)
if(res == oldres)
return
cures = list(pick(advance_cures[res]))
diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm
index bbacdd885d..79966b8f54 100644
--- a/code/datums/diseases/advance/symptoms/sensory.dm
+++ b/code/datums/diseases/advance/symptoms/sensory.dm
@@ -58,7 +58,7 @@
var/mob/living/carbon/C = M
if(prob(10))
if(trauma_heal_severe)
- C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY)
+ C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_SURGERY)
else
C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm
index 9be484d99a..9fa6ed5cc8 100644
--- a/code/datums/diseases/advance/symptoms/voice_change.dm
+++ b/code/datums/diseases/advance/symptoms/voice_change.dm
@@ -30,7 +30,6 @@ Bonus
symptom_delay_max = 120
var/scramble_language = FALSE
var/datum/language/current_language
- var/datum/language_holder/original_language
threshold_desc = list(
"Transmission 14" = "The host's language center of the brain is damaged, leading to complete inability to speak or understand any language.",
"Stage Speed 7" = "Changes voice more often.",
@@ -48,9 +47,6 @@ Bonus
symptom_delay_max = 85
if(A.properties["transmittable"] >= 14) //random language
scramble_language = TRUE
- var/mob/living/M = A.affected_mob
- var/datum/language_holder/mob_language = M.get_language_holder()
- original_language = mob_language.copy()
/datum/symptom/voice_change/Activate(datum/disease/advance/A)
if(!..())
@@ -64,12 +60,10 @@ Bonus
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.SetSpecialVoice(H.dna.species.random_name(H.gender))
- if(scramble_language)
- H.remove_language(current_language)
+ if(scramble_language && !current_language) // Last part prevents rerolling language with small amounts of cure.
current_language = pick(subtypesof(/datum/language) - /datum/language/common)
- H.grant_language(current_language)
- var/datum/language_holder/mob_language = H.get_language_holder()
- mob_language.only_speaks_language = current_language
+ H.add_blocked_language(subtypesof(/datum/language) - current_language, LANGUAGE_VOICECHANGE)
+ H.grant_language(current_language, TRUE, TRUE, LANGUAGE_VOICECHANGE)
/datum/symptom/voice_change/End(datum/disease/advance/A)
..()
@@ -77,7 +71,5 @@ Bonus
var/mob/living/carbon/human/H = A.affected_mob
H.UnsetSpecialVoice()
if(scramble_language)
- var/mob/living/M = A.affected_mob
- M.copy_known_languages_from(original_language, TRUE)
- current_language = null
- QDEL_NULL(original_language)
+ A.affected_mob.remove_blocked_language(subtypesof(/datum/language), LANGUAGE_VOICECHANGE)
+ A.affected_mob.remove_all_languages(LANGUAGE_VOICECHANGE) // In case someone managed to get more than one anyway.
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index a1cb1b3eeb..85880bd43d 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -315,7 +315,7 @@
unique_enzymes = generate_unique_enzymes()
uni_identity = generate_uni_identity()
generate_dna_blocks()
- features = random_features(species?.id)
+ features = random_features(species?.id, holder?.gender)
/datum/dna/stored //subtype used by brain mob's stored_dna
@@ -361,6 +361,11 @@
var/datum/species/old_species = dna.species
dna.species = new_race
dna.species.on_species_gain(src, old_species, pref_load)
+ if(ishuman(src))
+ qdel(language_holder)
+ var/species_holder = initial(mrace.species_language_holder)
+ language_holder = new species_holder(src)
+ update_atom_languages()
/mob/living/carbon/human/set_species(datum/species/mrace, icon_update = TRUE, pref_load = FALSE)
..()
@@ -675,6 +680,6 @@
var/danger = CONFIG_GET(number/threshold_body_size_slowdown)
if(features["body_size"] < danger)
var/slowdown = 1 + round(danger/features["body_size"], 0.1) * CONFIG_GET(number/body_size_slowdown_multiplier)
- holder.add_movespeed_modifier(MOVESPEED_ID_SMALL_STRIDE, TRUE, 100, NONE, TRUE, slowdown, ALL, FLOATING|CRAWLING)
+ holder.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/small_stride, TRUE, slowdown)
else if(old_size < danger)
- holder.remove_movespeed_modifier(MOVESPEED_ID_SMALL_STRIDE)
+ holder.remove_movespeed_modifier(/datum/movespeed_modifier/small_stride)
diff --git a/code/datums/elements/cleaning.dm b/code/datums/elements/cleaning.dm
index 3f80204089..d86fe22632 100644
--- a/code/datums/elements/cleaning.dm
+++ b/code/datums/elements/cleaning.dm
@@ -1,6 +1,6 @@
/datum/element/cleaning/Attach(datum/target)
. = ..()
- if(!ismovableatom(target))
+ if(!ismovable(target))
return ELEMENT_INCOMPATIBLE
RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Clean)
diff --git a/code/datums/elements/dusts_on_leaving_area.dm b/code/datums/elements/dusts_on_leaving_area.dm
index 9527e1fd3a..7b1807a15c 100644
--- a/code/datums/elements/dusts_on_leaving_area.dm
+++ b/code/datums/elements/dusts_on_leaving_area.dm
@@ -1,28 +1,20 @@
/datum/element/dusts_on_leaving_area
element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE
id_arg_index = 2
- var/list/attached_mobs = list()
var/list/area_types = list()
/datum/element/dusts_on_leaving_area/Attach(datum/target,types)
. = ..()
if(!ismob(target))
return ELEMENT_INCOMPATIBLE
- attached_mobs += target
area_types = types
- START_PROCESSING(SSprocessing,src)
+ RegisterSignal(target,COMSIG_ENTER_AREA,.proc/check_dust)
/datum/element/dusts_on_leaving_area/Detach(mob/M)
. = ..()
- if(M in attached_mobs)
- attached_mobs -= M
- if(!attached_mobs.len)
- STOP_PROCESSING(SSprocessing,src)
+ UnregisterSignal(M,COMSIG_ENTER_AREA)
-/datum/element/dusts_on_leaving_area/process()
- for(var/m in attached_mobs)
- var/mob/M = m
- var/area/A = get_area(M)
- if(!(A.type in area_types))
- M.dust(force = TRUE)
- Detach(M)
+/datum/element/dusts_on_leaving_area/proc/check_dust(datum/source, area/A)
+ var/mob/M = source
+ if(istype(M) && !(A.type in area_types))
+ M.dust(force = TRUE)
diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm
index 39021d23bb..771812242f 100644
--- a/code/datums/elements/firestacker.dm
+++ b/code/datums/elements/firestacker.dm
@@ -10,7 +10,7 @@
/datum/element/firestacker/Attach(datum/target, amount)
. = ..()
- if(!ismovableatom(target))
+ if(!ismovable(target))
return ELEMENT_INCOMPATIBLE
src.amount = amount
diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm
index e9d8f278f4..f44215d9ac 100644
--- a/code/datums/elements/flavor_text.dm
+++ b/code/datums/elements/flavor_text.dm
@@ -5,12 +5,16 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
id_arg_index = 3
var/flavor_name = "Flavor Text"
var/list/texts_by_atom = list()
- var/addendum = "This can also be used for OOC notes and preferences!"
+ var/addendum = ""
var/always_show = FALSE
var/max_len = MAX_FLAVOR_LEN
var/can_edit = TRUE
+ /// For preference/DNA saving/loading. Null to prevent. Prefs are only loaded from obviously if it exists in preferences.features.
+ var/save_key
+ /// Do not attempt to render a preview on examine. If this is on, it will display as \[flavor_name\]
+ var/examine_no_preview = FALSE
-/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE)
+/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE, _save_key, _examine_no_preview = FALSE)
. = ..()
if(. == ELEMENT_INCOMPATIBLE || !isatom(target)) //no reason why this shouldn't work on atoms too.
@@ -25,6 +29,8 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
addendum = _addendum
always_show = _always_show
can_edit = _edit
+ save_key = _save_key
+ examine_no_preview = _examine_no_preview
RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/show_flavor)
@@ -33,9 +39,12 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
LAZYOR(GLOB.mobs_with_editable_flavor_text[M], src)
M.verbs |= /mob/proc/manage_flavor_tests
+ if(save_key && ishuman(target))
+ RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text)
+
/datum/element/flavor_text/Detach(atom/A)
. = ..()
- UnregisterSignal(A, COMSIG_PARENT_EXAMINE)
+ UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_HUMAN_PREFS_COPIED_TO))
texts_by_atom -= A
if(can_edit && ismob(A))
var/mob/M = A
@@ -58,6 +67,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
var/text = texts_by_atom[target]
if(!text)
return
+ if(examine_no_preview)
+ examine_list += "\[[flavor_name]\] "
+ return
var/msg = replacetext(text, "\n", " ")
if(length_char(msg) <= 40)
examine_list += "[msg] "
@@ -112,13 +124,17 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
return TRUE
return FALSE
+/datum/element/flavor_text/proc/update_prefs_flavor_text(mob/living/carbon/human/H, datum/preferences/P, icon_updates = TRUE, roundstart_checks = TRUE)
+ if(P.features.Find(save_key))
+ texts_by_atom[H] = P.features[save_key]
+
//subtypes with additional hooks for DNA and preferences.
/datum/element/flavor_text/carbon
//list of antagonists etcetera that should have nothing to do with people's snowflakes.
var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert,
/datum/antagonist/nukeop, /datum/antagonist/wizard))
-/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE)
+/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE, _save_key = "flavor_text", _examine_no_preview = FALSE)
if(!iscarbon(target))
return ELEMENT_INCOMPATIBLE
. = ..()
@@ -127,7 +143,6 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
RegisterSignal(target, COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, .proc/update_dna_flavor_text)
RegisterSignal(target, COMSIG_MOB_ANTAG_ON_GAIN, .proc/on_antag_gain)
if(ishuman(target))
- RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text)
RegisterSignal(target, COMSIG_HUMAN_HARDSET_DNA, .proc/update_dna_flavor_text)
RegisterSignal(target, COMSIG_HUMAN_ON_RANDOMIZE, .proc/unset_flavor)
@@ -136,15 +151,12 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_MOB_ANTAG_ON_GAIN, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE))
/datum/element/flavor_text/carbon/proc/update_dna_flavor_text(mob/living/carbon/C)
- texts_by_atom[C] = C.dna.features["flavor_text"]
-
-/datum/element/flavor_text/carbon/proc/update_prefs_flavor_text(mob/living/carbon/human/H, datum/preferences/P, icon_updates = TRUE, roundstart_checks = TRUE)
- texts_by_atom[H] = P.features["flavor_text"]
+ texts_by_atom[C] = C.dna.features[save_key]
/datum/element/flavor_text/carbon/set_flavor(mob/living/carbon/user)
. = ..()
if(. && user.dna)
- user.dna.features["flavor_text"] = texts_by_atom[user]
+ user.dna.features[save_key] = texts_by_atom[user]
/datum/element/flavor_text/carbon/proc/unset_flavor(mob/living/carbon/user)
texts_by_atom[user] = ""
@@ -153,4 +165,4 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
if(is_type_in_typecache(antag, i_dont_even_know_who_you_are))
texts_by_atom[user] = ""
if(user.dna)
- user.dna.features["flavor_text"] = ""
\ No newline at end of file
+ user.dna.features[save_key] = ""
diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm
index a5c6e2725d..d770e0f30d 100644
--- a/code/datums/elements/mob_holder.dm
+++ b/code/datums/elements/mob_holder.dm
@@ -164,7 +164,7 @@
release()
/obj/item/clothing/head/mob_holder/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE)
- if(!ishuman(M)) //monkeys holding monkeys holding monkeys...
+ if(M == held_mob || !ishuman(M)) //monkeys holding monkeys holding monkeys...
return FALSE
return ..()
diff --git a/code/datums/elements/scavenging.dm b/code/datums/elements/scavenging.dm
new file mode 100644
index 0000000000..1993005be7
--- /dev/null
+++ b/code/datums/elements/scavenging.dm
@@ -0,0 +1,215 @@
+ /*
+ * Scavenging element. Its scope shouldn't elude your imagination.
+ * Basically loot piles that can be searched through for some items.
+ * In my opinion, these are more engaging than normal maintenance loot spawners.
+ * The loot doesn't have to be strictly made of items and objects, you could also use it to invoke some "events"
+ * such as mice, rats, an halloween spook, persistent relics, traps, etcetera, go wild.
+ */
+/datum/element/scavenging
+ element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH
+ id_arg_index = 3
+
+ var/list/loot_left_per_atom = list() //loot left per attached atom.
+ var/list/loot_table //pickweight list of available loot.
+ var/list/unique_loot //limited loot, once the associated value reaches zero, its key is removed from loot_table
+ var/scavenge_time = 12 SECONDS //how much time it takes
+ var/can_use_hands = TRUE //bare handed scavenge time multiplier. If set to zero, only tools are usable.
+ var/list/tool_types //which tool types the player can use instead of scavenging by hand, associated value is their speed.
+ var/del_atom_on_depletion = FALSE //Will the atom be deleted when there is no loot left?
+ var/list/search_texts = list("starts searching through", "start searching through", "You hear rummaging...")
+ var/loot_restriction = NO_LOOT_RESTRICTION
+ var/maximum_loot_per_player = 1 //only relevant if there is a restriction.
+ var/list/scavenger_restriction_list //used for restrictions.
+
+ var/mean_loot_weight = 0
+ var/list/progress_per_atom = list() //seconds of ditched progress per atom, used to resume the work instead of starting over.
+ var/static/list/players_busy_scavenging = list() //players already busy scavenging.
+
+/datum/element/scavenging/Attach(atom/target, amount = 5, list/loot, list/unique, time = 12 SECONDS, hands = TRUE, list/tools, list/texts, \
+ del_deplete = FALSE, restriction = NO_LOOT_RESTRICTION, max_per_player = 1)
+ . = ..()
+ if(. == ELEMENT_INCOMPATIBLE || !length(loot) || !amount || !istype(target) || isarea(target))
+ return ELEMENT_INCOMPATIBLE
+ loot_left_per_atom[target] = amount
+ if(!loot_table)
+ loot_table = loot
+ for(var/A in loot_table) //tally the list weights
+ mean_loot_weight += loot_table[A]
+ mean_loot_weight /= length(loot_table)
+ if(!unique_loot)
+ unique_loot = unique || list()
+ scavenge_time = time
+ can_use_hands = hands
+ tool_types = tools
+ if(texts)
+ search_texts = texts
+ del_atom_on_depletion = del_deplete
+ loot_restriction = restriction
+ maximum_loot_per_player = max_per_player
+ if(can_use_hands)
+ RegisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_ATTACK_PAW), .proc/scavenge_barehanded)
+ if(tool_types)
+ RegisterSignal(target, COMSIG_PARENT_ATTACKBY, .proc/scavenge_tool)
+ RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine)
+
+/datum/element/scavenging/Detach(atom/target)
+ . = ..()
+ loot_left_per_atom -= target
+ progress_per_atom -= target
+ if(maximum_loot_per_player == LOOT_RESTRICTION_MIND_PILE || maximum_loot_per_player == LOOT_RESTRICTION_CKEY_PILE)
+ maximum_loot_per_player -= target
+ UnregisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE))
+
+/datum/element/scavenging/proc/on_examine(atom/source, mob/user, list/examine_list)
+ var/methods = tool_types.Copy()
+ if(can_use_hands)
+ methods += list("bare handed")
+ if(!length(methods))
+ return
+ var/text = english_list(methods, "", " or ")
+ examine_list += "Looks like [source.p_they()] can be scavenged [length(tool_types) ? "with" : ""][length(methods == 1) ? "" : "either "][length(tool_types) ? "a " : ""][text] "
+
+/datum/element/scavenging/proc/scavenge_barehanded(atom/source, mob/user)
+ scavenge(source, user, 1)
+ return COMPONENT_NO_ATTACK_HAND
+
+/datum/element/scavenging/proc/scavenge_tool(atom/source, obj/item/I, mob/user, params)
+ if(user.a_intent == INTENT_HARM || !I.tool_behaviour) //Robust trash disposal techniques!
+ return
+ var/speed_multi = tool_types[I.tool_behaviour]
+ if(!speed_multi)
+ return
+ scavenge(source, user, speed_multi)
+ return COMPONENT_NO_AFTERATTACK
+
+/// This proc has to be asynced (cough cough, do_after) in order to return the comsig values in time to stop the attack chain.
+/datum/element/scavenging/proc/scavenge(atom/source, mob/user, speed_multi = 1)
+ set waitfor = FALSE
+
+ if(players_busy_scavenging[user])
+ return
+ players_busy_scavenging[user] = TRUE
+ var/progress_done = progress_per_atom[source]
+ var/len_messages = length(search_texts)
+ var/msg_first_person
+ if(len_messages >= 2)
+ msg_first_person = "You [progress_done ? ", resume a ditched task and " : ""][search_texts[2]] [source]. "
+ var/msg_blind
+ if(len_messages >= 3)
+ msg_blind = "[search_texts[3]] "
+ user.visible_message("[user] [search_texts[1]] [source]. ", msg_first_person, msg_blind)
+ if(do_after(user, scavenge_time * speed_multi, TRUE, source, TRUE, CALLBACK(src, .proc/set_progress, source, world.time), resume_time = progress_done * speed_multi))
+ spawn_loot(source, user)
+ players_busy_scavenging -= user
+
+/datum/element/scavenging/proc/set_progress(atom/source, start_time)
+ progress_per_atom[source] = world.time - start_time
+ return TRUE
+
+/datum/element/scavenging/proc/spawn_loot(atom/source, mob/user)
+ progress_per_atom -= source
+
+ var/loot = pickweight(loot_table)
+ var/special = TRUE
+ var/free = FALSE
+ if(!loot_left_per_atom[source])
+ to_chat(user, "Looks likes there is nothing worth of interest left in [source], what a shame... ")
+ return
+
+ var/num_times = 0
+ switch(loot_restriction)
+ if(LOOT_RESTRICTION_MIND)
+ num_times = LAZYACCESS(scavenger_restriction_list, user.mind)
+ if(LOOT_RESTRICTION_CKEY)
+ num_times = LAZYACCESS(scavenger_restriction_list, user.ckey)
+ if(LOOT_RESTRICTION_MIND_PILE)
+ var/list/L = LAZYACCESS(scavenger_restriction_list, source)
+ if(L)
+ num_times = LAZYACCESS(L, user.mind)
+ if(LOOT_RESTRICTION_CKEY_PILE)
+ var/list/L = LAZYACCESS(scavenger_restriction_list, source)
+ if(L)
+ num_times = LAZYACCESS(L, user.ckey)
+ if(num_times >= maximum_loot_per_player)
+ to_chat(user, "You can't find anything else vaguely useful in [source]. Another set of eyes might, however. ")
+ return
+
+ switch(loot) // TODO: datumize these out.
+ if(SCAVENGING_FOUND_NOTHING)
+ to_chat(user, "You found nothing, better luck next time. ")
+ free = TRUE //doesn't consume the loot pile.
+ if(SCAVENGING_SPAWN_MOUSE)
+ var/nasty_rodent = pick("mouse", "rodent", "squeaky critter", "stupid pest", "annoying cable chewer", "nasty, ugly, evil, disease-ridden rodent")
+ to_chat(user, "You found something in [source]... no wait, that's just another [nasty_rodent]. ")
+ new /mob/living/simple_animal/mouse(source.loc)
+ if(SCAVENGING_SPAWN_MICE)
+ user.visible_message("A small gang of mice emerges from [source]. ", \
+ "You found something in [source]... no wait, that's just another- no wait, that's a lot of damn mice. ")
+ for(var/i in 1 to rand(4, 6))
+ new /mob/living/simple_animal/mouse(source.loc)
+ if(SCAVENGING_SPAWN_TOM)
+ if(GLOB.tom_existed) //There can only be one.
+ to_chat(user, "You found nothing, better luck next time. ")
+ free = TRUE
+ else
+ to_chat(user, "You found something in [source]... no wait, that's Tom, the mouse! What is he doing here? ")
+ new /mob/living/simple_animal/mouse/brown/Tom(source.loc)
+ else
+ special = FALSE
+
+ if(!special) //generic loot. Nothing too strange like more loot spawners anyway.
+ var/atom/A = new loot(source.loc)
+ if(isitem(A) && !user.get_active_held_item())
+ user.put_in_hands(A)
+ var/rarity_append = "."
+ switch(loot_table[loot]/mean_loot_weight*100)
+ if(0 to 1)
+ rarity_append = "! AMAZING! "
+ if(1 to 2)
+ rarity_append = "! Woah!"
+ if(2 to 5)
+ rarity_append = ". Rare!"
+ if(5 to 10)
+ rarity_append = ". Great."
+ if(10 to 25)
+ rarity_append = ". Nice."
+ if(20 to 50)
+ rarity_append = ". Not bad."
+ to_chat(user, "You found something in [source]... it's \a [A][rarity_append]")
+
+ if(unique_loot[loot])
+ var/loot_left = --unique_loot[loot]
+ if(!loot_left)
+ loot_table -= loot
+ unique_loot -= loot
+ mean_loot_weight = 0
+ for(var/A in loot_table) //re-tally the list weights
+ mean_loot_weight += loot_table[A]
+ mean_loot_weight /= length(loot_table)
+
+ if(free)
+ return
+
+ --loot_left_per_atom[source]
+ if(del_atom_on_depletion && !loot_left_per_atom[source])
+ source.visible_message("[source] has been looted clean. ")
+ qdel(source)
+ return
+
+ if(!loot_restriction)
+ return
+
+ LAZYINITLIST(scavenger_restriction_list)
+ switch(loot_restriction)
+ if(LOOT_RESTRICTION_MIND)
+ scavenger_restriction_list[user.mind]++
+ if(LOOT_RESTRICTION_CKEY)
+ scavenger_restriction_list[user.ckey]++
+ if(LOOT_RESTRICTION_MIND_PILE)
+ LAZYINITLIST(scavenger_restriction_list[source])
+ var/list/L = scavenger_restriction_list[source]
+ L[user.mind]++
+ if(LOOT_RESTRICTION_CKEY_PILE)
+ LAZYINITLIST(scavenger_restriction_list[source])
+ var/list/L = scavenger_restriction_list[source]
+ L[user.ckey]++
diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm
new file mode 100644
index 0000000000..0e322c7c9d
--- /dev/null
+++ b/code/datums/elements/snail_crawl.dm
@@ -0,0 +1,31 @@
+/datum/element/snailcrawl
+ element_flags = ELEMENT_DETACH
+
+/datum/element/snailcrawl/Attach(datum/target)
+ . = ..()
+ if(!ismovable(target))
+ return ELEMENT_INCOMPATIBLE
+ var/P
+ if(iscarbon(target))
+ P = .proc/snail_crawl
+ else
+ P = .proc/lubricate
+ RegisterSignal(target, COMSIG_MOVABLE_MOVED, P)
+
+/datum/element/snailcrawl/Detach(mob/living/carbon/target)
+ . = ..()
+ UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
+ if(istype(target))
+ target.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl)
+
+/datum/element/snailcrawl/proc/snail_crawl(mob/living/carbon/snail)
+ if(snail.resting && !snail.buckled && lubricate(snail))
+ snail.add_movespeed_modifier(/datum/movespeed_modifier/snail_crawl)
+ else
+ snail.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl)
+
+/datum/element/snailcrawl/proc/lubricate(atom/movable/snail)
+ var/turf/open/OT = get_turf(snail)
+ if(istype(OT))
+ OT.MakeSlippery(TURF_WET_LUBE, 20)
+ return TRUE
diff --git a/code/datums/elements/squish.dm b/code/datums/elements/squish.dm
new file mode 100644
index 0000000000..823d391e14
--- /dev/null
+++ b/code/datums/elements/squish.dm
@@ -0,0 +1,28 @@
+#define SHORT 5/7
+#define TALL 7/5
+
+/datum/element/squish
+ element_flags = ELEMENT_DETACH
+
+/datum/element/squish/Attach(datum/target, duration)
+ . = ..()
+ if(!iscarbon(target))
+ return ELEMENT_INCOMPATIBLE
+
+ var/mob/living/carbon/C = target
+ var/was_lying = (C.lying != 0)
+ addtimer(CALLBACK(src, .proc/Detach, C, was_lying), duration)
+
+ C.transform = C.transform.Scale(TALL, SHORT)
+
+/datum/element/squish/Detach(mob/living/carbon/C, was_lying)
+ . = ..()
+ if(istype(C))
+ var/is_lying = (C.lying != 0)
+ if(was_lying == is_lying)
+ C.transform = C.transform.Scale(SHORT, TALL)
+ else
+ C.transform = C.transform.Scale(TALL, SHORT)
+
+#undef SHORT
+#undef TALL
diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm
index 7be4489e86..dc32902e5e 100644
--- a/code/datums/explosion.dm
+++ b/code/datums/explosion.dm
@@ -76,7 +76,9 @@ GLOBAL_LIST_EMPTY(explosions)
//I would make this not ex_act the thing that triggered the explosion,
//but everything that explodes gives us their loc or a get_turf()
//and somethings expect us to ex_act them so they can qdel()
- stoplag() //tldr, let the calling proc call qdel(src) before we explode
+ //stoplag() //tldr, let the calling proc call qdel(src) before we explode
+ // no - use sleep. stoplag() results in quirky things like explosions taking too long to process and hanging mid-air for no reason.
+ sleep(0)
EX_PREPROCESS_EXIT_CHECK
@@ -121,14 +123,14 @@ GLOBAL_LIST_EMPTY(explosions)
if(dist <= round(max_range + world.view - 2, 1))
M.playsound_local(epicenter, null, 100, 1, frequency, falloff = 5, S = explosion_sound)
if(baseshakeamount > 0)
- shake_camera(M, 25, CLAMP(baseshakeamount, 0, 10))
+ shake_camera(M, 25, clamp(baseshakeamount, 0, 10))
// You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station.
else if(dist <= far_dist)
- var/far_volume = CLAMP(far_dist, 30, 50) // Volume is based on explosion size and dist
+ var/far_volume = clamp(far_dist, 30, 50) // Volume is based on explosion size and dist
far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion
M.playsound_local(epicenter, null, far_volume, 1, frequency, falloff = 5, S = far_explosion_sound)
if(baseshakeamount > 0)
- shake_camera(M, 10, CLAMP(baseshakeamount*0.25, 0, 2.5))
+ shake_camera(M, 10, clamp(baseshakeamount*0.25, 0, 2.5))
EX_PREPROCESS_CHECK_TICK
//postpone processing for a bit
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index 4332b09ac6..f054867de4 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -116,7 +116,7 @@
"[A] slams your chest! You can't breathe! ")
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
if(D.losebreath <= 10)
- D.losebreath = CLAMP(D.losebreath + 5, 0, 10)
+ D.losebreath = clamp(D.losebreath + 5, 0, 10)
D.adjustOxyLoss(damage + 5)
log_combat(A, D, "quickchoked")
return TRUE
@@ -128,7 +128,7 @@
playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1)
D.apply_damage(damage, BRUTE)
if(D.silent <= 10)
- D.silent = CLAMP(D.silent + 10, 0, 10)
+ D.silent = clamp(D.silent + 10, 0, 10)
log_combat(A, D, "neck chopped")
return TRUE
@@ -187,7 +187,7 @@
if(damage >= stunthreshold)
D.visible_message("[D] sputters and recoils in pain! ", "You recoil in pain as you are jabbed in a nerve! ")
D.drop_all_held_items()
-
+
return TRUE
//Krav Maga Gloves
diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm
index c3d0deeac6..f189a91353 100644
--- a/code/datums/materials/basemats.dm
+++ b/code/datums/materials/basemats.dm
@@ -72,7 +72,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
/datum/material/uranium/on_applied(atom/source, amount, material_flags)
. = ..()
- source.AddComponent(/datum/component/radioactive, amount / 20, source, 0) //half-life of 0 because we keep on going.
+ source.AddComponent(/datum/component/radioactive, amount / 60, source, 0) //half-life of 0 because we keep on going.
/datum/material/uranium/on_removed(atom/source, material_flags)
. = ..()
@@ -92,7 +92,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
/datum/material/plasma/on_applied(atom/source, amount, material_flags)
. = ..()
- if(ismovableatom(source))
+ if(ismovable(source))
source.AddElement(/datum/element/firestacker, amount=1)
source.AddComponent(/datum/component/explodable, 0, 0, amount / 2500, amount / 1250)
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 31704d5451..a9438fa80b 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -63,7 +63,11 @@
var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator
var/list/learned_recipes //List of learned recipe TYPES.
+ /// Our skill holder.
+ var/datum/skill_holder/skill_holder
+
/datum/mind/New(var/key)
+ skill_holder = new(src)
src.key = key
soulOwner = src
martial_art = default_martial_art
@@ -76,12 +80,12 @@
if(antag_datum.delete_on_mind_deletion)
qdel(i)
antag_datums = null
+ QDEL_NULL(skill_holder)
return ..()
/datum/mind/proc/get_language_holder()
if(!language_holder)
- var/datum/language_holder/L = current.get_language_holder(shadow=FALSE)
- language_holder = L.copy(src)
+ language_holder = new (src)
return language_holder
@@ -96,9 +100,6 @@
if(iscarbon(current))
var/mob/living/carbon/C = current
C.disable_intentional_combat_mode(TRUE)
- if(!language_holder)
- var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE)
- language_holder = mob_holder.copy(src)
if(key)
if(new_character.key != key) //if we're transferring into a body with a key associated which is not ours
@@ -126,6 +127,7 @@
transfer_martial_arts(new_character)
if(active || force_key_move)
new_character.key = key //now transfer the key to link the client to our new body
+ current.update_atom_languages()
//CIT CHANGE - makes arousal update when transfering bodies
if(isliving(new_character)) //New humans and such are by default enabled arousal. Let's always use the new mind's prefs.
diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm
index ab7fe986fb..9f8c74e2db 100644
--- a/code/datums/mutations/body.dm
+++ b/code/datums/mutations/body.dm
@@ -81,6 +81,7 @@
/datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
+ ADD_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION)
owner.transform = owner.transform.Scale(1, 0.8)
passtable_on(owner, GENETIC_MUTATION)
owner.visible_message("[owner] suddenly shrinks! ", "Everything around you seems to grow.. ")
@@ -88,6 +89,7 @@
/datum/mutation/human/dwarfism/on_losing(mob/living/carbon/human/owner)
if(..())
return
+ REMOVE_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION)
owner.transform = owner.transform.Scale(1, 1.25)
passtable_off(owner, GENETIC_MUTATION)
owner.visible_message("[owner] suddenly grows! ", "Everything around you seems to shrink.. ")
@@ -339,6 +341,7 @@
/datum/mutation/human/gigantism/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
+ ADD_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION)
owner.resize = 1.25
owner.update_transform()
owner.visible_message("[owner] suddenly grows! ", "Everything around you seems to shrink.. ")
@@ -346,6 +349,7 @@
/datum/mutation/human/gigantism/on_losing(mob/living/carbon/human/owner)
if(..())
return
+ REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION)
owner.resize = 0.8
owner.update_transform()
owner.visible_message("[owner] suddenly shrinks! ", "Everything around you seems to grow.. ")
diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm
index e474272326..d4db7e34c2 100644
--- a/code/datums/mutations/speech.dm
+++ b/code/datums/mutations/speech.dm
@@ -277,10 +277,10 @@
/datum/mutation/human/stoner/on_acquiring(mob/living/carbon/human/owner)
..()
- owner.grant_language(/datum/language/beachbum)
- owner.remove_language(/datum/language/common)
+ owner.grant_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_STONER)
+ owner.add_blocked_language(subtypesof(/datum/language) - /datum/language/beachbum, LANGUAGE_STONER)
/datum/mutation/human/stoner/on_losing(mob/living/carbon/human/owner)
..()
- owner.grant_language(/datum/language/common)
- owner.remove_language(/datum/language/beachbum)
+ owner.remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_STONER)
+ owner.remove_blocked_language(subtypesof(/datum/language) - /datum/language/beachbum, LANGUAGE_STONER)
diff --git a/code/datums/position_point_vector.dm b/code/datums/position_point_vector.dm
index 44ff87e8ae..608683c3dc 100644
--- a/code/datums/position_point_vector.dm
+++ b/code/datums/position_point_vector.dm
@@ -20,7 +20,7 @@
return sqrt(((b.x - a.x) ** 2) + ((b.y - a.y) ** 2))
/proc/angle_between_points(datum/point/a, datum/point/b)
- return ATAN2((b.y - a.y), (b.x - a.x))
+ return arctan((b.y - a.y), (b.x - a.x))
/datum/position //For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess.
var/x = 0
diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm
index faecf809cc..fbc194cc6f 100644
--- a/code/datums/progressbar.dm
+++ b/code/datums/progressbar.dm
@@ -38,7 +38,7 @@
if (user.client)
user.client.images += bar
- progress = CLAMP(progress, 0, goal)
+ progress = clamp(progress, 0, goal)
bar.icon_state = "prog_bar_[round(((progress / goal) * 100), 5)]"
if (!shown)
user.client.images += bar
diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm
new file mode 100644
index 0000000000..347ba2e4d4
--- /dev/null
+++ b/code/datums/ruins/icemoon.dm
@@ -0,0 +1,112 @@
+// Hey! Listen! Update \config\iceruinblacklist.txt with your new ruins!
+
+/datum/map_template/ruin/icemoon
+ prefix = "_maps/RandomRuins/IceRuins/"
+ allow_duplicates = FALSE
+ cost = 5
+
+// above ground only
+
+/datum/map_template/ruin/icemoon/lust
+ name = "Ruin of Lust"
+ id = "lust"
+ description = "Not exactly what you expected."
+ suffix = "icemoon_surface_lust.dmm"
+
+/datum/map_template/ruin/icemoon/asteroid
+ name = "Asteroid Site"
+ id = "asteroidsite"
+ description = "Surprised to see us here?"
+ suffix = "icemoon_surface_asteroid.dmm"
+
+/datum/map_template/ruin/icemoon/hotsprings
+ name = "Hot Springs"
+ id = "hotsprings"
+ description = "Just relax and take a dip, nothing will go wrong, I swear!"
+ suffix = "icemoon_surface_hotsprings.dmm"
+
+/datum/map_template/ruin/icemoon/engioutpost
+ name = "Engineer Outpost"
+ id = "engioutpost"
+ description = "Blown up by an unfortunate accident."
+ suffix = "icemoon_surface_engioutpost.dmm"
+
+/datum/map_template/ruin/icemoon/fountain
+ name = "Fountain Hall"
+ id = "fountain"
+ description = "The fountain has a warning on the side. DANGER: May have undeclared side effects that only become obvious when implemented."
+ prefix = "_maps/RandomRuins/AnywhereRuins/"
+ suffix = "fountain_hall.dmm"
+
+// above and below ground together
+
+/datum/map_template/ruin/icemoon/mining_site
+ name = "Mining Site"
+ id = "miningsite"
+ description = "Ruins of a site where people once mined with primitive tools for ore."
+ suffix = "icemoon_surface_mining_site.dmm"
+ always_place = TRUE
+ always_spawn_with = list(/datum/map_template/ruin/icemoon/underground/mining_site_below = PLACE_BELOW)
+
+/datum/map_template/ruin/icemoon/underground/mining_site_below
+ name = "Mining Site Underground"
+ id = "miningsite-underground"
+ description = "Who knew ladders could be so useful?"
+ suffix = "icemoon_underground_mining_site.dmm"
+ unpickable = TRUE
+
+// below ground only
+
+/datum/map_template/ruin/icemoon/underground
+ name = "underground ruin"
+
+/datum/map_template/ruin/icemoon/underground/abandonedvillage
+ name = "Abandoned Village"
+ id = "abandonedvillage"
+ description = "Who knows what lies within?"
+ suffix = "icemoon_underground_abandoned_village.dmm"
+
+/datum/map_template/ruin/icemoon/underground/library
+ name = "Buried Library"
+ id = "buriedlibrary"
+ description = "A once grand library, now lost to the confines of the Ice Moon."
+ suffix = "icemoon_underground_library.dmm"
+
+/datum/map_template/ruin/icemoon/underground/wrath
+ name = "Ruin of Wrath"
+ id = "wrath"
+ description = "You'll fight and fight and just keep fighting."
+ suffix = "icemoon_underground_wrath.dmm"
+
+/datum/map_template/ruin/icemoon/underground/lavaland
+ name = "Lavaland Site"
+ id = "lavalandsite"
+ description = "I guess we never really left you huh?"
+ suffix = "icemoon_underground_lavaland.dmm"
+
+/datum/map_template/ruin/icemoon/underground/puzzle
+ name = "Ancient Puzzle"
+ id = "puzzle"
+ description = "Mystery to be solved."
+ suffix = "icemoon_underground_puzzle.dmm"
+
+/datum/map_template/ruin/icemoon/underground/bathhouse
+ name = "Bath House"
+ id = "bathhouse"
+ description = "A taste of paradise, locked in the hell of the Ice Moon."
+ suffix = "icemoon_underground_bathhouse.dmm"
+
+/datum/map_template/ruin/icemoon/underground/wendigo_cave
+ name = "Wendigo Cave"
+ id = "wendigocave"
+ description = "Into the jaws of the beast."
+ suffix = "icemoon_underground_wendigo_cave.dmm"
+
+/datum/map_template/ruin/icemoon/underground/free_golem
+ name = "Free Golem Ship"
+ id = "golem-ship"
+ description = "Lumbering humanoids, made out of precious metals, move inside this ship. They frequently leave to mine more minerals, which they somehow turn into more of them. \
+ Seem very intent on research and individual liberty, and also geology-based naming?"
+ prefix = "_maps/RandomRuins/AnywhereRuins/"
+ suffix = "golem_ship.dmm"
+ allow_duplicates = FALSE
diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm
index 483c1e353f..8f3811ca71 100644
--- a/code/datums/ruins/lavaland.dm
+++ b/code/datums/ruins/lavaland.dm
@@ -67,7 +67,8 @@
description = "Lumbering humanoids, made out of precious metals, move inside this ship. They frequently leave to mine more minerals, which they somehow turn into more of them. \
Seem very intent on research and individual liberty, and also geology based naming?"
cost = 20
- suffix = "lavaland_surface_golem_ship.dmm"
+ prefix = "_maps/RandomRuins/AnywhereRuins/"
+ suffix = "golem_ship.dmm"
allow_duplicates = FALSE
/datum/map_template/ruin/lavaland/animal_hospital
@@ -175,7 +176,8 @@
name = "Fountain Hall"
id = "fountain"
description = "The fountain has a warning on the side. DANGER: May have undeclared side effects that only become obvious when implemented."
- suffix = "lavaland_surface_fountain_hall.dmm"
+ prefix = "_maps/RandomRuins/AnywhereRuins/"
+ suffix = "fountain_hall.dmm"
cost = 5
allow_duplicates = FALSE
diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm
index d4636671a0..89a635e6aa 100644
--- a/code/datums/shuttles.dm
+++ b/code/datums/shuttles.dm
@@ -23,14 +23,14 @@
mappath = "[prefix][shuttle_id].dmm"
. = ..()
-/datum/map_template/shuttle/preload_size(path, cache)
+/datum/map_template/shuttle/preload_size(path = mappath, force_cache = FALSE)
. = ..(path, TRUE) // Done this way because we still want to know if someone actualy wanted to cache the map
if(!cached_map)
return
discover_port_offset()
- if(!cache)
+ if(!cached_map)
cached_map = null
/datum/map_template/shuttle/proc/discover_port_offset()
@@ -53,12 +53,11 @@
++xcrd
--ycrd
-/datum/map_template/shuttle/load(turf/T, centered, register=TRUE)
+/datum/map_template/shuttle/load(turf/T, centered = FALSE, orientation = SOUTH, annihilate = default_annihilate, force_cache = FALSE, rotate_placement_to_orientation = FALSE, register = TRUE)
. = ..()
if(!.)
return
- var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]),
- locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ]))
+ var/list/turfs = get_last_loaded_turf_block()
for(var/i in 1 to turfs.len)
var/turf/place = turfs[i]
if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination.
diff --git a/code/datums/skills/_check_skills.dm b/code/datums/skills/_check_skills.dm
new file mode 100644
index 0000000000..d9dc6dad3d
--- /dev/null
+++ b/code/datums/skills/_check_skills.dm
@@ -0,0 +1,16 @@
+// yeah yeah verbs suck whatever I suck at this fix this someone please - kevinz000
+
+/mob/verb/check_skills()
+ set name = "Check Skills"
+ set category = "IC"
+ set desc = "Check your skills (if you have any..)"
+
+ if(!mind)
+ to_chat(usr, "How do you check the skills of [(usr == src)? "yourself when you are" : "something"] without a mind? ")
+ return
+ if(!mind.skill_holder)
+ to_chat(usr, "How do you check the skills of [(usr == src)? "yourself when you are" : "something"] without the capability for skills? (PROBABLY A BUG, PRESS F1.) ")
+ return
+ var/datum/browser/B = new(usr, "skilldisplay_[REF(src)]", "Skills of [src]")
+ B.set_content(mind.skill_holder.html_readout())
+ B.open()
diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm
new file mode 100644
index 0000000000..f52945536f
--- /dev/null
+++ b/code/datums/skills/_skill.dm
@@ -0,0 +1,208 @@
+GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums())
+
+/proc/init_skill_datums()
+ . = list()
+ for(var/path in subtypesof(/datum/skill))
+ var/datum/skill/S = path
+ if(initial(S.abstract_type) == path)
+ continue
+ S = new path
+ .[S.type] = S
+
+/proc/sanitize_skill_value(path, value)
+ var/datum/skill/S = GLOB.skill_datums[path]
+ // don't check, if we runtime let it happen.
+ return S.sanitize_value(value)
+
+/proc/is_skill_value_greater(path, existing, new_value)
+ var/datum/skill/S = GLOB.skill_datums[path]
+ // don't check, if we runtime let it happen.
+ return S.is_value_greater(existing, new_value)
+
+/**
+ * Skill datums
+ */
+/datum/skill
+ /// Our name
+ var/name
+ /// Our description
+ var/desc
+ /// Color of the name as shown in the html readout
+ var/name_color = "#F0F0F0" // White on dark surface.
+ /// Our progression type
+ var/progression_type
+ /// Abstract type
+ var/abstract_type = /datum/skill
+ /// skill threshold used in generic skill modifiers calculations.
+ var/list/competency_thresholds = list(0, 0, 0)
+ /// Multiplier of the difference of the holder skill value and the selected threshold.
+ var/list/competency_mults = list(0, 0, 0)
+ /// In which way this skil can affect or be affected through actions.
+ var/skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD
+
+/**
+ * Ensures what someone's setting as a value for this skill is valid.
+ */
+/datum/skill/proc/sanitize_value(new_value)
+ return new_value
+
+/**
+ * Sets the new value of this skill in the holder skills list.
+ * As well as possible feedback messages or secondary effects on value change, that's on you.
+ */
+/datum/skill/proc/set_skill_value(datum/skill_holder/H, value, mob/owner)
+ H.skills[type] = value
+
+/**
+ * Checks if a value is greater
+ */
+/datum/skill/proc/is_value_greater(existing, new_value)
+ if(!existing)
+ return TRUE
+ return new_value > existing
+
+/**
+ * Standard value "render"
+ */
+/datum/skill/proc/standard_render_value(value, level)
+ return value
+
+// Just saying, the choice to use different sub-parent-types is to force coders to resolve issues as I won't be implementing custom procs to grab skill levels in a certain context.
+// Aka: So people don't forget to change checks if they change a skill's progression type.
+
+/datum/skill/binary
+ abstract_type = /datum/skill/binary
+ progression_type = SKILL_PROGRESSION_BINARY
+ competency_thresholds = list(FALSE, TRUE, TRUE)
+ competency_mults = list(0.5, 0.5, 0.5)
+
+/datum/skill/binary/sanitize_value(new_value)
+ return new_value? TRUE : FALSE
+
+/datum/skill/binary/standard_render_value(value, level)
+ return value? "Yes" : "No"
+
+/datum/skill/numerical
+ abstract_type = /datum/skill/numerical
+ progression_type = SKILL_PROGRESSION_NUMERICAL
+ /// Max value of this skill
+ var/max_value = 100
+ /// Min value of this skill
+ var/min_value = 0
+ /// Display as a percent in standard_render_value?
+ var/display_as_percent = FALSE
+
+/datum/skill/numerical/sanitize_value(new_value)
+ return clamp(new_value, min_value, max_value)
+
+/datum/skill/numerical/standard_render_value(value, level)
+ return display_as_percent? "[round(value/max_value/100, 0.01)]%" : "[value] / [max_value]"
+
+/datum/skill/enum
+ abstract_type = /datum/skill/enum
+ progression_type = SKILL_PROGRESSION_ENUM
+ /// Valid values for the skill
+ var/list/valid_values = list()
+
+/datum/skill/enum/sanitize_value(new_value)
+ if(new_value in valid_values)
+ return new_value
+
+/**
+ * Classing r p g styled skills, tiered by lvl, and current/nextlvl experience.
+ */
+/datum/skill/level
+ abstract_type = /datum/skill/level
+ progression_type = SKILL_PROGRESSION_LEVEL
+ var/standard_xp_lvl_up = STD_XP_LVL_UP //the standard required to level up. def: 100
+ var/xp_lvl_multiplier = STD_XP_LVL_MULTI //standard required level up exp multiplier. def: 2 (100, 200, 400, 800 etc.)
+ var/max_levels = STD_MAX_LVL
+ var/level_up_method = STANDARD_LEVEL_UP //how levels are calculated.
+ var/list/levels = list() //level thresholds, if associative, these will be preceded by tiers such as "novice" or "trained"
+ var/associative = FALSE //See above.
+ var/unskilled_tier = "Unskilled" //Only relevant for associative experience levels
+
+//Builds the levels list.
+/datum/skill/level/New()
+ . = ..()
+ var/max_assoc = ""
+ var/max_assoc_start = 1
+ for(var/lvl in 1 to max_levels)
+ var/value
+ switch(level_up_method)
+ if(STANDARD_LEVEL_UP)
+ value = XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl)
+ if(DWARFY_LEVEL_UP)
+ value = DORF_XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl)
+ value = round(value, 1)
+ if(!associative)
+ levels += value
+ continue
+ if(max_assoc)
+ levels["[max_assoc] +[max_assoc_start++]"] = value
+ continue
+ var/key = LAZYACCESS(levels, lvl)
+ if(!key)
+ if(lvl == 1) //You dun goof it.
+ stack_trace("Skill datum [src] was set to have an associative levels list despite the latter having no key value.")
+ associative = FALSE
+ levels += value
+ continue
+ max_assoc = levels[lvl-1]
+ levels["[max_assoc] +[max_assoc_start++]"] = value
+ levels[key] = value
+
+/datum/skill/level/sanitize_value(new_value)
+ return max(new_value, 0)
+
+/datum/skill/level/set_skill_value(datum/skill_holder/H, value, datum/mind/M, silent = FALSE)
+ H.skills[type] = value
+ var/new_level
+ for(var/k in levels)
+ if(value < (associative ? levels[k] : k))
+ break
+ new_level++
+ var/old_level = LAZYACCESS(H.skill_levels, type)
+ LAZYSET(H.skill_levels, type, new_level)
+ . = new_level - old_level
+ if(silent || !(M?.current))
+ return
+ if(. > 0)
+ to_chat(M.current, "I feel like I've become more proficient at [name]! ")
+ else if(. < 0)
+ to_chat(M.current, "I feel like I've become worse at [name]! ")
+
+/datum/skill/level/standard_render_value(value, level)
+ var/current_lvl = associative ? (!level ? unskilled_tier : levels[level]) : level
+ var/current_lvl_xp_sum = 0
+ if(level)
+ current_lvl_xp_sum = associative ? levels[levels[level]] : levels[level]
+ var/next_index = max(max_levels, level+1)
+ var/next_lvl_xp = associative ? levels[levels[next_index]] : levels[next_index]
+ if(next_lvl_xp > current_lvl_xp_sum)
+ next_lvl_xp -= current_lvl_xp_sum
+
+
+ return "[associative ? current_lvl : "Lvl. [current_lvl]"] ([value - current_lvl_xp_sum]/[next_lvl_xp])[level == max_levels ? " \[MAX!\]" : ""]"
+
+/datum/skill/level/job
+ levels = list("Basic", "Trained", "Experienced", "Master")
+ competency_thresholds = list(JOB_SKILL_TRAINED, JOB_SKILL_EXPERT, JOB_SKILL_MASTER)
+ competency_mults = list(0.15, 0.1, 0.1)
+ associative = TRUE
+
+//quite the reference, no?
+/datum/skill/level/dwarfy
+ abstract_type = /datum/skill/level/dwarfy
+ standard_xp_lvl_up = DORF_XP_LVL_UP
+ xp_lvl_multiplier = DORF_XP_LVL_MULTI
+ max_levels = DORF_MAX_LVL
+ level_up_method = DWARFY_LEVEL_UP
+ levels = list("Novice", "Adequate", "Competent", "Skilled",
+ "Proficient", "Talented", "Adept", "Expert",
+ "Professional", "Accomplished", "Great", "Master",
+ "High Master", "Grand Master", "Legendary")
+ competency_thresholds = list(DORF_SKILL_COMPETENT, DORF_SKILL_EXPERT, DORF_SKILL_MASTER)
+ competency_mults = list(0.15, 0.1, 0.08)
+ associative = TRUE
+ unskilled_tier = "Dabbling"
diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm
new file mode 100644
index 0000000000..e252b4c9c6
--- /dev/null
+++ b/code/datums/skills/_skill_holder.dm
@@ -0,0 +1,171 @@
+/**
+ * Skill holder datums
+ */
+/datum/skill_holder
+ var/datum/mind/owner
+ /// Our list of skills and values. Lazylist. Associative. Keys are datum typepaths to the skill.
+ var/list/skills
+ /// Same as [skills] but affinities, which are multiplied to increase amount when gaining skills.
+ var/list/skill_affinities
+ /// Let's say we want to get a specific skill "level" without looping through a proc everytime.
+ /// Only supported by skills with tiers or levels.
+ var/list/skill_levels
+
+/datum/skill_holder/New(datum/mind/M)
+ . = ..()
+ owner = M
+
+/**
+ * Grabs the value of a skill.
+ */
+/datum/skill_holder/proc/get_skill_value(skill)
+ if(!ispath(skill))
+ CRASH("Invalid get_skill_value call. Use typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this.
+ if(!skills)
+ return null
+ return skills[skill]
+
+/**
+ * Grabs the level of a skill. Only supported by skills with tiers or levels.
+ */
+/datum/skill_holder/proc/get_skill_level(skill)
+ if(!ispath(skill, /datum/skill))
+ CRASH("Invalid get_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this.
+ if(!skill_levels)
+ return 0
+ return skill_levels[skill]
+
+/**
+ * Grabs our affinity for a skill. !!This is a multiplier!!
+ */
+/datum/skill_holder/proc/get_skill_affinity(skill)
+ . = 1
+ if(!ispath(skill, /datum/skill))
+ CRASH("Invalid get_skill_affinity call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this.
+ var/affinity = LAZYACCESS(skill_affinities, skill)
+ if(!isnull(affinity))
+ . = affinity
+ var/list/wrapped = list(.)
+ SEND_SIGNAL(owner.current, COMSIG_MOB_SKILL_GET_AFFINITY, skill, wrapped)
+ . = wrapped[1]
+
+
+/**
+ * Sets the value of a skill.
+ */
+/datum/skill_holder/proc/set_skill_value(skill, value, silent = FALSE)
+ if(!ispath(skill, /datum/skill))
+ CRASH("Invalid set_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this.
+ var/datum/skill/S = GLOB.skill_datums[skill]
+ value = S.sanitize_value(value)
+ if(!isnull(value))
+ LAZYINITLIST(skills)
+ S.set_skill_value(src, value, owner, silent)
+ return TRUE
+ return FALSE
+
+/**
+ * Boosts a skill to a value if not aobve
+ */
+/datum/skill_holder/proc/boost_skill_value_to(skill, value, silent = FALSE)
+ var/current = get_skill_value(skill)
+ if(!is_skill_value_greater(skill, current, value))
+ return FALSE
+ set_skill_value(skill, value, silent)
+ return TRUE
+
+/**
+ * Automatic skill increase, multiplied by skill affinity if existing.
+ * Only works if skill is numerical.
+ */
+/datum/skill_holder/proc/auto_gain_experience(skill, value, maximum, silent = FALSE)
+ if(!ispath(skill, /datum/skill))
+ CRASH("Invalid set_skill_value call. Use skill typepaths.")
+ var/datum/skill/S = GLOB.skill_datums[skill]
+ if(S.progression_type != SKILL_PROGRESSION_NUMERICAL && S.progression_type != SKILL_PROGRESSION_LEVEL)
+ CRASH("You cannot auto increment a non numerical(experience skill!")
+ var/current = get_skill_value(skill)
+ var/affinity = get_skill_affinity(skill)
+ var/target_value = current + (value * affinity)
+ if(maximum)
+ target_value = max(target_value, maximum)
+ if(target_value == maximum) //no more experience to gain, early return.
+ return
+ boost_skill_value_to(skill, target_value, silent)
+
+/**
+ * Generic value modifier proc that uses one skill.
+ * Args:
+ * * value : the value to modify, may be a delay, damage, probability.
+ * * threshold : The difficulty of the action, in short. Refer to __DEFINES/skills/defines.dm for the defines.
+ * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor.
+ */
+/datum/skill_holder/proc/action_skills_mod(skill, value, threshold, modifier_is_multiplier = TRUE)
+ var/mod
+ var/datum/skill/S = GLOB.skill_datums[skill]
+ if(!S)
+ return
+ switch(S.progression_type)
+ if(SKILL_PROGRESSION_LEVEL)
+ mod = LAZYACCESS(skill_levels, S.type)
+ else
+ mod = LAZYACCESS(skills, S.type)
+ mod = (1+(mod-S.competency_thresholds[threshold])*S.competency_mults[threshold])
+
+ var/list/comsig_values = list(mod)
+ SEND_SIGNAL(owner.current, COMSIG_MOB_ACTION_SKILL_MOD, args, comsig_values)
+ mod = comsig_values[MOD_VALUES_SKILL_MOD]
+
+ . = modifier_is_multiplier ? value*mod : value/mod
+
+/**
+ * Generic value modifier proc that uses several skills, intended for items.
+ * Args:
+ * * item/I : the item used in this action. its used_skills list variable contains the skills exercised with it.
+ * * value : the value to modify, may be a delay, damage, probability.
+ * * flags : the required flags that each skill (either in I.used_skills or the skill datum skill_flags) must have to influence
+ * * the value.
+ * * bad_flags : the opposite of the above, skills that must not be present to impact the value.
+ * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor.
+ */
+/datum/skill_holder/proc/item_action_skills_mod(obj/item/I, value, flags = NONE, bad_flags = NONE, modifier_is_multiplier = TRUE)
+ . = value
+ var/sum = 0
+ var/divisor = 0
+ var/list/checked_skills
+ for(var/k in I.used_skills)
+ var/datum/skill/S = GLOB.skill_datums[k]
+ if(!S)
+ continue
+ var/our_flags = (I.used_skills[k]|S.skill_flags)
+ if((flags && !(our_flags & flags)) || (bad_flags && our_flags & bad_flags))
+ continue
+ var/mod
+ switch(S.progression_type)
+ if(SKILL_PROGRESSION_LEVEL)
+ mod = LAZYACCESS(skill_levels, S.type)
+ else
+ mod = LAZYACCESS(skills, S.type)
+ sum += 1+(mod - S.competency_thresholds[I.skill_difficulty])*S.competency_mults[I.skill_difficulty]
+ LAZYADD(checked_skills, S)
+
+ var/list/comsig_values = list(sum, divisor, checked_skills)
+ SEND_SIGNAL(owner.current, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, args, comsig_values)
+ sum = comsig_values[MOD_VALUES_ITEM_SKILLS_SUM]
+ divisor = comsig_values[MOD_VALUES_ITEM_SKILLS_DIV]
+
+ if(divisor)
+ . = modifier_is_multiplier ? value*(sum/divisor) : value/(sum/divisor)
+
+/**
+ * Generates a HTML readout of our skills.
+ * Port to tgui-next when?
+ */
+/datum/skill_holder/proc/html_readout()
+ var/list/out = list(" Skills ")
+ out += "Skill Value "
+ for(var/path in skills)
+ var/datum/skill/S = GLOB.skill_datums[path]
+ out += "[S.name] [S.standard_render_value(skills[path], LAZYACCESS(skill_levels, path) || 0)] "
+ out += "
"
+ return out.Join("")
diff --git a/code/datums/skills/engineering.dm b/code/datums/skills/engineering.dm
new file mode 100644
index 0000000000..59c9436e46
--- /dev/null
+++ b/code/datums/skills/engineering.dm
@@ -0,0 +1,6 @@
+/datum/skill/level/job/wiring
+ name = "Wiring"
+ desc = "How proficient and knowledged you are at wiring beyond laying cables on the floor."
+ name_color = COLOR_PALE_ORANGE
+ competency_thresholds = list(JOB_SKILL_BASIC, JOB_SKILL_EXPERT, JOB_SKILL_MASTER)
+ skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD|SKILL_USE_TOOL|SKILL_TRAINING_TOOL
diff --git a/code/datums/skills/medical.dm b/code/datums/skills/medical.dm
new file mode 100644
index 0000000000..aaae1236a6
--- /dev/null
+++ b/code/datums/skills/medical.dm
@@ -0,0 +1,5 @@
+/datum/skill/numerical/surgery
+ name = "Surgery"
+ desc = "How proficient you are at doing surgery."
+ name_color = COLOR_PALE_BLUE_GRAY
+ competency_mults = list(0.025, 0.025, 0.025) // 60% surgery speed up at max value of 100.
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index 86afd2cc15..e080e597a3 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -550,3 +550,30 @@
else if(isanimal(L))
var/mob/living/simple_animal/SM = L
SM.adjustHealth(-3.5, forced = TRUE)
+
+/obj/screen/alert/status_effect/regenerative_core
+ name = "Reinforcing Tendrils"
+ desc = "You can move faster than your broken body could normally handle!"
+ icon_state = "regenerative_core"
+ name = "Regenerative Core Tendrils"
+
+/datum/status_effect/regenerative_core
+ id = "Regenerative Core"
+ duration = 1 MINUTES
+ status_type = STATUS_EFFECT_REPLACE
+ alert_type = /obj/screen/alert/status_effect/regenerative_core
+
+/datum/status_effect/regenerative_core/on_apply()
+ . = ..()
+ ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core")
+ owner.adjustBruteLoss(-25)
+ if(!AmBloodsucker(owner)) //use your coffin you lazy bastard
+ owner.adjustFireLoss(-25)
+ owner.remove_CC()
+ owner.bodytemperature = BODYTEMP_NORMAL
+ return TRUE
+
+/datum/status_effect/regenerative_core/on_remove()
+ . = ..()
+ REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core")
+ owner.updatehealth()
\ No newline at end of file
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index 69b74841df..4c200f110d 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -120,12 +120,12 @@
/datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration)
. = ..()
ADD_TRAIT(owner, TRAIT_MUTE, "mesmerize")
- owner.add_movespeed_modifier("[STATUS_EFFECT_MESMERIZE]_[id]", TRUE, priority = 64, override = TRUE, multiplicative_slowdown = 5, blacklisted_movetypes = FALSE? NONE : CRAWLING)
+ owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize)
/datum/status_effect/mesmerize/on_remove()
. = ..()
REMOVE_TRAIT(owner, TRAIT_MUTE, "mesmerize")
- owner.remove_movespeed_modifier("[STATUS_EFFECT_MESMERIZE]_[id]")
+ owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize)
/datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration)
if(isnum(set_duration))
@@ -141,9 +141,7 @@
/datum/status_effect/electrode
id = "tased"
alert_type = null
- var/slowdown = 1.5
- var/slowdown_priority = 50 //to make sure the stronger effect overrides
- var/affect_crawl = FALSE
+ var/movespeed_mod = /datum/movespeed_modifier/status_effect/tased
var/nextmove_modifier = 1
var/stamdmg_per_ds = 0 //a 20 duration would do 20 stamdmg, disablers do 24 or something
var/last_tick = 0 //fastprocess processing speed is a goddamn sham, don't trust it.
@@ -155,12 +153,12 @@
last_tick = world.time
if(iscarbon(owner))
var/mob/living/carbon/C = owner
- C.add_movespeed_modifier("[MOVESPEED_ID_TASED_STATUS]_[id]", TRUE, priority = slowdown_priority, override = TRUE, multiplicative_slowdown = slowdown, blacklisted_movetypes = affect_crawl? NONE : CRAWLING)
+ C.add_movespeed_modifier(movespeed_mod)
/datum/status_effect/electrode/on_remove()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
- C.remove_movespeed_modifier("[MOVESPEED_ID_TASED_STATUS]_[id]")
+ C.remove_movespeed_modifier(movespeed_mod)
. = ..()
/datum/status_effect/electrode/tick()
@@ -178,8 +176,7 @@
/datum/status_effect/electrode/no_combat_mode
id = "tased_strong"
- slowdown = 8
- slowdown_priority = 100
+ movespeed_mod = /datum/movespeed_modifier/status_effect/tased/no_combat_mode
nextmove_modifier = 2
blocks_combatmode = TRUE
stamdmg_per_ds = 1
@@ -336,7 +333,7 @@
if(prob(severity * 0.15))
to_chat(owner, "\"[text2ratvar(pick(mania_messages))]\" ")
owner.playsound_local(get_turf(motor), hum, severity, 1)
- owner.adjust_drugginess(CLAMP(max(severity * 0.075, 1), 0, max(0, 50 - owner.druggy))) //7.5% of severity per second, minimum 1
+ owner.adjust_drugginess(clamp(max(severity * 0.075, 1), 0, max(0, 50 - owner.druggy))) //7.5% of severity per second, minimum 1
if(owner.hallucination < 50)
owner.hallucination = min(owner.hallucination + max(severity * 0.075, 1), 50) //7.5% of severity per second, minimum 1
if(owner.dizziness < 50)
@@ -394,78 +391,34 @@
owner.underlays -= marked_underlay //if this is being called, we should have an owner at this point.
..()
-/datum/status_effect/saw_bleed
+/datum/status_effect/stacking/saw_bleed
id = "saw_bleed"
- duration = -1 //removed under specific conditions
tick_interval = 6
- alert_type = null
- var/mutable_appearance/bleed_overlay
- var/mutable_appearance/bleed_underlay
- var/bleed_amount = 3
- var/bleed_buildup = 3
- var/delay_before_decay = 5
+ delay_before_decay = 5
+ stack_threshold = 10
+ max_stacks = 10
+ overlay_file = 'icons/effects/bleed.dmi'
+ underlay_file = 'icons/effects/bleed.dmi'
+ overlay_state = "bleed"
+ underlay_state = "bleed"
var/bleed_damage = 200
- var/needs_to_bleed = FALSE
-/datum/status_effect/saw_bleed/Destroy()
- if(owner)
- owner.cut_overlay(bleed_overlay)
- owner.underlays -= bleed_underlay
- QDEL_NULL(bleed_overlay)
- return ..()
+/datum/status_effect/stacking/saw_bleed/fadeout_effect()
+ new /obj/effect/temp_visual/bleed(get_turf(owner))
-/datum/status_effect/saw_bleed/on_apply()
- if(owner.stat == DEAD)
- return FALSE
- bleed_overlay = mutable_appearance('icons/effects/bleed.dmi', "bleed[bleed_amount]")
- bleed_underlay = mutable_appearance('icons/effects/bleed.dmi', "bleed[bleed_amount]")
- var/icon/I = icon(owner.icon, owner.icon_state, owner.dir)
- var/icon_height = I.Height()
- bleed_overlay.pixel_x = -owner.pixel_x
- bleed_overlay.pixel_y = FLOOR(icon_height * 0.25, 1)
- bleed_overlay.transform = matrix() * (icon_height/world.icon_size) //scale the bleed overlay's size based on the target's icon size
- bleed_underlay.pixel_x = -owner.pixel_x
- bleed_underlay.transform = matrix() * (icon_height/world.icon_size) * 3
- bleed_underlay.alpha = 40
- owner.add_overlay(bleed_overlay)
- owner.underlays += bleed_underlay
- return ..()
+/datum/status_effect/stacking/saw_bleed/threshold_cross_effect()
+ owner.adjustBruteLoss(bleed_damage)
+ var/turf/T = get_turf(owner)
+ new /obj/effect/temp_visual/bleed/explode(T)
+ for(var/d in GLOB.alldirs)
+ new /obj/effect/temp_visual/dir_setting/bloodsplatter(T, d)
+ playsound(T, "desceration", 100, TRUE, -1)
-/datum/status_effect/saw_bleed/tick()
- if(owner.stat == DEAD)
- qdel(src)
- else
- add_bleed(-1)
-
-/datum/status_effect/saw_bleed/proc/add_bleed(amount)
- owner.cut_overlay(bleed_overlay)
- owner.underlays -= bleed_underlay
- bleed_amount += amount
- if(bleed_amount)
- if(bleed_amount >= 10)
- needs_to_bleed = TRUE
- qdel(src)
- else
- if(amount > 0)
- tick_interval += delay_before_decay
- bleed_overlay.icon_state = "bleed[bleed_amount]"
- bleed_underlay.icon_state = "bleed[bleed_amount]"
- owner.add_overlay(bleed_overlay)
- owner.underlays += bleed_underlay
- else
- qdel(src)
-
-/datum/status_effect/saw_bleed/on_remove()
- . = ..()
- if(needs_to_bleed)
- var/turf/T = get_turf(owner)
- new /obj/effect/temp_visual/bleed/explode(T)
- for(var/d in GLOB.alldirs)
- new /obj/effect/temp_visual/dir_setting/bloodsplatter(T, d)
- playsound(T, "desceration", 200, 1, -1)
- owner.adjustBruteLoss(bleed_damage)
- else
- new /obj/effect/temp_visual/bleed(get_turf(owner))
+/datum/status_effect/stacking/saw_bleed/bloodletting
+ id = "bloodletting"
+ stack_threshold = 7
+ max_stacks = 7
+ bleed_damage = 20
/datum/status_effect/neck_slice
id = "neck_slice"
@@ -594,7 +547,7 @@
old_health = owner.health
if(!old_oxyloss)
old_oxyloss = owner.getOxyLoss()
- var/health_difference = old_health - owner.health - CLAMP(owner.getOxyLoss() - old_oxyloss,0, owner.getOxyLoss())
+ var/health_difference = old_health - owner.health - clamp(owner.getOxyLoss() - old_oxyloss,0, owner.getOxyLoss())
if(!health_difference)
return
owner.visible_message("The light in [owner]'s eyes dims as [owner.p_theyre()] harmed! ", \
@@ -650,11 +603,11 @@
if(isnum(set_duration))
duration = set_duration
. = ..()
- owner.add_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF, multiplicative_slowdown = 1, movetypes = GROUND)
+ owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/electrostaff)
/datum/status_effect/electrostaff/on_remove()
. = ..()
- owner.remove_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF)
+ owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/electrostaff)
//GOLEM GANG
diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm
index e2114f0778..33c8384d72 100644
--- a/code/datums/status_effects/status_effect.dm
+++ b/code/datums/status_effects/status_effect.dm
@@ -7,7 +7,6 @@
var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means.
var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second.
var/mob/living/owner //The mob affected by the status effect.
- var/status_type = STATUS_EFFECT_UNIQUE //How many of the effect can be on one mob, and what happens when you try to add another
var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted
var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves
var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description
@@ -16,6 +15,8 @@
/// If this is TRUE, the user will have sprint forcefully disabled while this is active.
var/blocks_sprint = FALSE
var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists
+ /// How many of the effect can be on one mob, and what happens when you try to add another
+ var/status_type = STATUS_EFFECT_UNIQUE
/datum/status_effect/New(list/arguments)
on_creation(arglist(arguments))
@@ -67,6 +68,9 @@
/datum/status_effect/proc/tick() //Called every tick.
+/datum/status_effect/proc/before_remove() //! Called before being removed; returning FALSE will cancel removal
+ return TRUE
+
/datum/status_effect/proc/on_remove() //Called whenever the buff expires or is removed; do note that at the point this is called, it is out of the owner's status_effects but owner is not yet null
SHOULD_CALL_PARENT(TRUE)
REMOVE_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, src)
@@ -123,12 +127,13 @@
S1 = new effect(arguments)
. = S1
-/mob/living/proc/remove_status_effect(effect) //removes all of a given status effect from this mob, returning TRUE if at least one was removed
+/mob/living/proc/remove_status_effect(effect, ...) //removes all of a given status effect from this mob, returning TRUE if at least one was removed
. = FALSE
+ var/list/arguments = args.Copy(2)
if(status_effects)
var/datum/status_effect/S1 = effect
for(var/datum/status_effect/S in status_effects)
- if(initial(S1.id) == S.id)
+ if(initial(S1.id) == S.id && S.before_remove(arguments))
qdel(S)
. = TRUE
@@ -147,3 +152,129 @@
for(var/datum/status_effect/S in status_effects)
if(initial(S1.id) == S.id)
. += S
+
+//////////////////////
+// STACKING EFFECTS //
+//////////////////////
+
+/datum/status_effect/stacking
+ id = "stacking_base"
+ duration = -1 //removed under specific conditions
+ alert_type = null
+ var/stacks = 0 //how many stacks are accumulated, also is # of stacks that target will have when first applied
+ var/delay_before_decay //deciseconds until ticks start occuring, which removes stacks (first stack will be removed at this time plus tick_interval)
+ tick_interval = 10 //deciseconds between decays once decay starts
+ var/stack_decay = 1 //how many stacks are lost per tick (decay trigger)
+ var/stack_threshold //special effects trigger when stacks reach this amount
+ var/max_stacks //stacks cannot exceed this amount
+ var/consumed_on_threshold = TRUE //if status should be removed once threshold is crossed
+ var/threshold_crossed = FALSE //set to true once the threshold is crossed, false once it falls back below
+ var/overlay_file
+ var/underlay_file
+ var/overlay_state // states in .dmi must be given a name followed by a number which corresponds to a number of stacks. put the state name without the number in these state vars
+ var/underlay_state // the number is concatonated onto the string based on the number of stacks to get the correct state name
+ var/mutable_appearance/status_overlay
+ var/mutable_appearance/status_underlay
+
+/datum/status_effect/stacking/proc/threshold_cross_effect() //what happens when threshold is crossed
+
+/datum/status_effect/stacking/proc/stacks_consumed_effect() //runs if status is deleted due to threshold being crossed
+
+/datum/status_effect/stacking/proc/fadeout_effect() //runs if status is deleted due to being under one stack
+
+/datum/status_effect/stacking/proc/stack_decay_effect() //runs every time tick() causes stacks to decay
+
+/datum/status_effect/stacking/proc/on_threshold_cross()
+ threshold_cross_effect()
+ if(consumed_on_threshold)
+ stacks_consumed_effect()
+ qdel(src)
+
+/datum/status_effect/stacking/proc/on_threshold_drop()
+
+/datum/status_effect/stacking/proc/can_have_status()
+ return owner.stat != DEAD
+
+/datum/status_effect/stacking/proc/can_gain_stacks()
+ return owner.stat != DEAD
+
+/datum/status_effect/stacking/tick()
+ if(!can_have_status())
+ qdel(src)
+ else
+ add_stacks(-stack_decay)
+ stack_decay_effect()
+
+/datum/status_effect/stacking/proc/add_stacks(stacks_added)
+ if(stacks_added > 0 && !can_gain_stacks())
+ return FALSE
+ owner.cut_overlay(status_overlay)
+ owner.underlays -= status_underlay
+ stacks += stacks_added
+ if(stacks > 0)
+ if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occuring if changing from above threshold to still above threshold
+ threshold_crossed = TRUE
+ on_threshold_cross()
+ if(consumed_on_threshold)
+ return
+ else if(stacks < stack_threshold && threshold_crossed)
+ threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again
+ on_threshold_drop()
+ if(stacks_added > 0)
+ tick_interval += delay_before_decay //refreshes time until decay
+ stacks = min(stacks, max_stacks)
+ status_overlay.icon_state = "[overlay_state][stacks]"
+ status_underlay.icon_state = "[underlay_state][stacks]"
+ owner.add_overlay(status_overlay)
+ owner.underlays += status_underlay
+ else
+ fadeout_effect()
+ qdel(src) //deletes status if stacks fall under one
+
+/datum/status_effect/stacking/on_creation(mob/living/new_owner, stacks_to_apply)
+ . = ..()
+ if(.)
+ add_stacks(stacks_to_apply)
+
+/datum/status_effect/stacking/on_apply()
+ if(!can_have_status())
+ return FALSE
+ status_overlay = mutable_appearance(overlay_file, "[overlay_state][stacks]")
+ status_underlay = mutable_appearance(underlay_file, "[underlay_state][stacks]")
+ var/icon/I = icon(owner.icon, owner.icon_state, owner.dir)
+ var/icon_height = I.Height()
+ status_overlay.pixel_x = -owner.pixel_x
+ status_overlay.pixel_y = FLOOR(icon_height * 0.25, 1)
+ status_overlay.transform = matrix() * (icon_height/world.icon_size) //scale the status's overlay size based on the target's icon size
+ status_underlay.pixel_x = -owner.pixel_x
+ status_underlay.transform = matrix() * (icon_height/world.icon_size) * 3
+ status_underlay.alpha = 40
+ owner.add_overlay(status_overlay)
+ owner.underlays += status_underlay
+ return ..()
+
+/datum/status_effect/stacking/Destroy()
+ if(owner)
+ owner.cut_overlay(status_overlay)
+ owner.underlays -= status_underlay
+ QDEL_NULL(status_overlay)
+ return ..()
+
+/// Status effect from multiple sources, when all sources are removed, so is the effect
+/datum/status_effect/grouped
+ status_type = STATUS_EFFECT_MULTIPLE //! Adds itself to sources and destroys itself if one exists already, there are never multiple
+ var/list/sources = list()
+
+/datum/status_effect/grouped/on_creation(mob/living/new_owner, source)
+ var/datum/status_effect/grouped/existing = new_owner.has_status_effect(type)
+ if(existing)
+ existing.sources |= source
+ qdel(src)
+ return FALSE
+ else
+ sources |= source
+ return ..()
+
+/datum/status_effect/grouped/before_remove(source)
+ sources -= source
+ return !length(sources)
diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm
index 6761ecbb4c..98a25053e1 100644
--- a/code/datums/weather/weather.dm
+++ b/code/datums/weather/weather.dm
@@ -1,49 +1,96 @@
-//The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures.
+/**
+ * Causes weather to occur on a z level in certain area types
+ *
+ * The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures.
+ * Weather always occurs on different z levels at different times, regardless of weather type.
+ * Can have custom durations, targets, and can automatically protect indoor areas.
+ *
+ */
/datum/weather
+ /// name of weather
var/name = "space wind"
+ /// description of weather
var/desc = "Heavy gusts of wind blanket the area, periodically knocking down anyone caught in the open."
- var/telegraph_message = "The wind begins to pick up. " //The message displayed in chat to foreshadow the weather's beginning
- var/telegraph_duration = 300 //In deciseconds, how long from the beginning of the telegraph until the weather begins
- var/telegraph_sound //The sound file played to everyone on an affected z-level
- var/telegraph_overlay //The overlay applied to all tiles on the z-level
+ /// The message displayed in chat to foreshadow the weather's beginning
+ var/telegraph_message = "The wind begins to pick up. "
- var/weather_message = "The wind begins to blow ferociously! " //Displayed in chat once the weather begins in earnest
- var/weather_duration = 1200 //In deciseconds, how long the weather lasts once it begins
- var/weather_duration_lower = 1200 //See above - this is the lowest possible duration
- var/weather_duration_upper = 1500 //See above - this is the highest possible duration
+ /// In deciseconds, how long from the beginning of the telegraph until the weather begins
+ var/telegraph_duration = 300
+ /// The sound file played to everyone on an affected z-level
+ var/telegraph_sound
+ /// The overlay applied to all tiles on the z-level
+ var/telegraph_overlay
+ /// Displayed in chat once the weather begins in earnest
+ var/weather_message = "The wind begins to blow ferociously! "
+ ///In deciseconds, how long the weather lasts once it begins
+ var/weather_duration = 1200
+ ///See above - this is the lowest possible duration
+ var/weather_duration_lower = 1200
+ ///See above - this is the highest possible duration
+ var/weather_duration_upper = 1500
+ /// Looping sound while weather is occuring
var/weather_sound
+ /// Area overlay while the weather is occuring
var/weather_overlay
+ /// Color to apply to the area while weather is occuring
var/weather_color = null
- var/end_message = "The wind relents its assault. " //Displayed once the weather is over
- var/end_duration = 300 //In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely
+ /// Displayed once the weather is over
+ var/end_message = "The wind relents its assault. "
+ /// In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely
+ var/end_duration = 300
+ /// Sound that plays while weather is ending
var/end_sound
+ /// Area overlay while weather is ending
var/end_overlay
- var/area_type = /area/space //Types of area to affect
- var/list/impacted_areas = list() //Areas to be affected by the weather, calculated when the weather begins
- var/list/protected_areas = list()//Areas that are protected and excluded from the affected areas.
- var/impacted_z_levels // The list of z-levels that this weather is actively affecting
+ /// Types of area to affect
+ var/area_type = /area/space
+ /// TRUE value protects areas with outdoors marked as false, regardless of area type
+ var/protect_indoors = FALSE
+ /// Areas to be affected by the weather, calculated when the weather begins
+ var/list/impacted_areas = list()
- var/overlay_layer = AREA_LAYER //Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that.
- var/aesthetic = FALSE //If the weather has no purpose other than looks
- var/immunity_type = "storm" //Used by mobs to prevent them from being affected by the weather
+ /// Areas that are protected and excluded from the affected areas.
+ var/list/protected_areas = list()
+ /// The list of z-levels that this weather is actively affecting
+ var/impacted_z_levels
- var/stage = END_STAGE //The stage of the weather, from 1-4
+ /// Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that.
+ var/overlay_layer = AREA_LAYER
+ /// Plane for the overlay
+ var/overlay_plane = BLACKNESS_PLANE
+ /// If the weather has no purpose but aesthetics.
+ var/aesthetic = FALSE
+ /// Used by mobs to prevent them from being affected by the weather
+ var/immunity_type = "storm"
- // These are read by the weather subsystem and used to determine when and where to run the weather.
- var/probability = 0 // Weight amongst other eligible weather. If zero, will never happen randomly.
- var/target_trait = ZTRAIT_STATION // The z-level trait to affect when run randomly or when not overridden.
+ /// The stage of the weather, from 1-4
+ var/stage = END_STAGE
+ /// Weight amongst other eligible weather. if zero, will never happen randomly.
+ var/probability = 0
+ /// The z-level trait to affect when run randomly or when not overridden.
+ var/target_trait = ZTRAIT_STATION
+
+ /// Whether a barometer can predict when the weather will happen
var/barometer_predictable = FALSE
- var/next_hit_time = 0 //For barometers to know when the next storm will hit
+ /// For barometers to know when the next storm will hit
+ var/next_hit_time = 0
/datum/weather/New(z_levels)
..()
impacted_z_levels = z_levels
+/**
+ * Telegraphs the beginning of the weather on the impacted z levels
+ *
+ * Sends sounds and details to mobs in the area
+ * Calculates duration and hit areas, and makes a callback for the actual weather to start
+ *
+ */
/datum/weather/proc/telegraph()
if(stage == STARTUP_STAGE)
return
@@ -58,6 +105,8 @@
affectareas -= get_areas(V)
for(var/V in affectareas)
var/area/A = V
+ if(protect_indoors && !A.outdoors)
+ continue
if(A.z in impacted_z_levels)
impacted_areas |= A
weather_duration = rand(weather_duration_lower, weather_duration_upper)
@@ -72,6 +121,13 @@
SEND_SOUND(M, sound(telegraph_sound))
addtimer(CALLBACK(src, .proc/start), telegraph_duration)
+/**
+ * Starts the actual weather and effects from it
+ *
+ * Updates area overlays and sends sounds and messages to mobs to notify them
+ * Begins dealing effects from weather to mobs in the area
+ *
+ */
/datum/weather/proc/start()
if(stage >= MAIN_STAGE)
return
@@ -86,6 +142,13 @@
SEND_SOUND(M, sound(weather_sound))
addtimer(CALLBACK(src, .proc/wind_down), weather_duration)
+/**
+ * Weather enters the winding down phase, stops effects
+ *
+ * Updates areas to be in the winding down phase
+ * Sends sounds and messages to mobs to notify them
+ *
+ */
/datum/weather/proc/wind_down()
if(stage >= WIND_DOWN_STAGE)
return
@@ -100,6 +163,13 @@
SEND_SOUND(M, sound(end_sound))
addtimer(CALLBACK(src, .proc/end), end_duration)
+/**
+ * Fully ends the weather
+ *
+ * Effects no longer occur and area overlays are removed
+ * Removes weather from processing completely
+ *
+ */
/datum/weather/proc/end()
if(stage == END_STAGE)
return 1
@@ -115,7 +185,11 @@
if(can_weather_act(L))
weather_act(L)
-/datum/weather/proc/can_weather_act(mob/living/L) //Can this weather impact a mob?
+/**
+ * Returns TRUE if the living mob can be affected by the weather
+ *
+ */
+/datum/weather/proc/can_weather_act(mob/living/L)
var/turf/mob_turf = get_turf(L)
if(mob_turf && !(mob_turf.z in impacted_z_levels))
return
@@ -123,11 +197,19 @@
return
if(!(get_area(L) in impacted_areas))
return
- return 1
+ return TRUE
-/datum/weather/proc/weather_act(mob/living/L) //What effect does this weather have on the hapless mob?
+/**
+ * Affects the mob with whatever the weather does
+ *
+ */
+/datum/weather/proc/weather_act(mob/living/L)
return
+/**
+ * Updates the overlays on impacted areas
+ *
+ */
/datum/weather/proc/update_areas()
for(var/V in impacted_areas)
var/area/N = V
diff --git a/code/datums/weather/weather_types/acid_rain.dm b/code/datums/weather/weather_types/acid_rain.dm
index 93e5c2556e..a1ec4871d5 100644
--- a/code/datums/weather/weather_types/acid_rain.dm
+++ b/code/datums/weather/weather_types/acid_rain.dm
@@ -17,8 +17,9 @@
end_message = "The downpour gradually slows to a light shower. It should be safe outside now. "
end_sound = 'sound/ambience/acidrain_end.ogg'
- area_type = /area/lavaland/surface/outdoors
- target_trait = ZTRAIT_MINING
+ area_type = /area
+ protect_indoors = TRUE
+ target_trait = ZTRAIT_ACIDRAIN
immunity_type = "acid" // temp
diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm
index b44778054e..43190ef50c 100644
--- a/code/datums/weather/weather_types/ash_storm.dm
+++ b/code/datums/weather/weather_types/ash_storm.dm
@@ -16,8 +16,9 @@
end_duration = 300
end_overlay = "light_ash"
- area_type = /area/lavaland/surface/outdoors
- target_trait = ZTRAIT_MINING
+ area_type = /area
+ protect_indoors = TRUE
+ target_trait = ZTRAIT_ASHSTORM
immunity_type = "ash"
diff --git a/code/datums/weather/weather_types/snow_storm.dm b/code/datums/weather/weather_types/snow_storm.dm
index db29f49098..8ab4839cdb 100644
--- a/code/datums/weather/weather_types/snow_storm.dm
+++ b/code/datums/weather/weather_types/snow_storm.dm
@@ -15,8 +15,9 @@
end_duration = 100
end_message = "The snowfall dies down, it should be safe to go outside again. "
- area_type = /area/awaymission/snowdin/outside
- target_trait = ZTRAIT_AWAY
+ area_type = /area
+ protect_indoors = TRUE
+ target_trait = ZTRAIT_SNOWSTORM
immunity_type = "snow"
diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm
index be87503981..a7da6d2c66 100644
--- a/code/datums/wires/_wires.dm
+++ b/code/datums/wires/_wires.dm
@@ -33,6 +33,9 @@
var/list/assemblies = list() // List of attached assemblies.
var/randomize = 0 // If every instance of these wires should be random.
// Prevents wires from showing up in station blueprints
+ var/req_knowledge = INFINITY //wiring skill level on which the functions are revealed.
+ var/req_skill = JOB_SKILL_BASIC //used in user's cutting/pulsing/mending speed calculations.
+ var/list/current_users //list of untrained people currently interacting with this set of wires.
/datum/wires/New(atom/holder)
..()
@@ -130,8 +133,22 @@
cut_wires += wire
on_cut(wire, mend = FALSE)
-/datum/wires/proc/cut_color(color)
+/datum/wires/proc/cut_color(color, mob/living/user)
+ LAZYINITLIST(current_users)
+ if(current_users[user])
+ return FALSE
+ if(req_skill && user?.mind)
+ var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring)
+ if(level_diff > 0)
+ LAZYSET(current_users, user, TRUE)
+ to_chat(user, "You begin cutting [holder]'s [color] wire... ")
+ if(!do_after(user, 1.5 SECONDS * level_diff, target = holder) || !interactable(user))
+ LAZYREMOVE(current_users, user)
+ return FALSE
+ LAZYREMOVE(current_users, user)
+ to_chat(user, "You cut [holder]'s [color] wire. ")
cut(get_wire(color))
+ return TRUE
/datum/wires/proc/cut_random()
cut(wires[rand(1, wires.len)])
@@ -146,7 +163,21 @@
on_pulse(wire, user)
/datum/wires/proc/pulse_color(color, mob/living/user)
+ LAZYINITLIST(current_users)
+ if(current_users[user])
+ return FALSE
+ if(req_skill && user?.mind)
+ var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring)
+ if(level_diff > 0)
+ LAZYSET(current_users, user, TRUE)
+ to_chat(user, "You begin pulsing [holder]'s [color] wire... ")
+ if(!do_after(user, 1.5 SECONDS * level_diff, target = holder) || !interactable(user))
+ LAZYREMOVE(current_users, user)
+ return FALSE
+ LAZYREMOVE(current_users, user)
+ to_chat(user, "You pulse [holder]'s [color] wire. ")
pulse(get_wire(color), user)
+ return TRUE
/datum/wires/proc/pulse_assembly(obj/item/assembly/S)
for(var/color in assemblies)
@@ -224,7 +255,7 @@
var/reveal_wires = FALSE
// Admin ghost can see a purpose of each wire.
- if(IsAdminGhost(user))
+ if(IsAdminGhost(user) || user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge)
reveal_wires = TRUE
// Same for anyone with an abductor multitool.
@@ -259,18 +290,16 @@
if("cut")
I = L.is_holding_tool_quality(TOOL_WIRECUTTER)
if(I || IsAdminGhost(usr))
- if(I && holder)
+ if(cut_color(target_wire, L) && I && holder)
I.play_tool_sound(holder, 20)
- cut_color(target_wire)
. = TRUE
else
to_chat(L, "You need wirecutters! ")
if("pulse")
I = L.is_holding_tool_quality(TOOL_MULTITOOL)
if(I || IsAdminGhost(usr))
- if(I && holder)
+ if(pulse_color(target_wire, L) && I && holder)
I.play_tool_sound(holder, 20)
- pulse_color(target_wire, L)
. = TRUE
else
to_chat(L, "You need a multitool! ")
diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm
index 0c4715e27e..dae92d3c42 100644
--- a/code/datums/wires/airalarm.dm
+++ b/code/datums/wires/airalarm.dm
@@ -1,6 +1,7 @@
/datum/wires/airalarm
holder_type = /obj/machinery/airalarm
proper_name = "Air Alarm"
+ req_knowledge = JOB_SKILL_MASTER
/datum/wires/airalarm/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm
index b6699540c3..2b13344cc6 100644
--- a/code/datums/wires/airlock.dm
+++ b/code/datums/wires/airlock.dm
@@ -1,6 +1,7 @@
/datum/wires/airlock
holder_type = /obj/machinery/door/airlock
proper_name = "Generic Airlock"
+ req_skill = JOB_SKILL_UNTRAINED //Training wheel, as per request.
var/wiretype
/datum/wires/airlock/secure
@@ -52,10 +53,11 @@
/datum/wires/airlock/interactable(mob/user)
var/obj/machinery/door/airlock/A = holder
+ if(!A.panel_open)
+ return FALSE
if(!A.hasSiliconAccessInArea(user) && A.isElectrified() && A.shock(user, 100))
return FALSE
- if(A.panel_open)
- return TRUE
+ return TRUE
/datum/wires/airlock/get_status()
var/obj/machinery/door/airlock/A = holder
diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm
index dc126f612e..997c77aa51 100644
--- a/code/datums/wires/apc.dm
+++ b/code/datums/wires/apc.dm
@@ -1,6 +1,7 @@
/datum/wires/apc
holder_type = /obj/machinery/power/apc
proper_name = "APC"
+ req_knowledge = JOB_SKILL_MASTER
/datum/wires/apc/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm
index f83bab5910..01e87228d4 100644
--- a/code/datums/wires/autolathe.dm
+++ b/code/datums/wires/autolathe.dm
@@ -1,6 +1,7 @@
/datum/wires/autolathe
holder_type = /obj/machinery/autolathe
proper_name = "Autolathe"
+ req_knowledge = JOB_SKILL_EXPERT
/datum/wires/autolathe/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/autoylathe.dm b/code/datums/wires/autoylathe.dm
deleted file mode 100644
index 736c9551ec..0000000000
--- a/code/datums/wires/autoylathe.dm
+++ /dev/null
@@ -1,48 +0,0 @@
-/datum/wires/autoylathe
- holder_type = /obj/machinery/autoylathe
- proper_name = "Autoylathe"
-
-/datum/wires/autoylathe/New(atom/holder)
- wires = list(
- WIRE_HACK, WIRE_DISABLE,
- WIRE_SHOCK, WIRE_ZAP
- )
- add_duds(6)
- ..()
-
-/datum/wires/autoylathe/interactable(mob/user)
- var/obj/machinery/autoylathe/A = holder
- if(A.panel_open)
- return TRUE
-
-/datum/wires/autoylathe/get_status()
- var/obj/machinery/autoylathe/A = holder
- var/list/status = list()
- status += "The red light is [A.disabled ? "on" : "off"]."
- status += "The blue light is [A.hacked ? "on" : "off"]."
- return status
-
-/datum/wires/autoylathe/on_pulse(wire)
- var/obj/machinery/autoylathe/A = holder
- switch(wire)
- if(WIRE_HACK)
- A.adjust_hacked(!A.hacked)
- addtimer(CALLBACK(A, /obj/machinery/autoylathe.proc/reset, wire), 60)
- if(WIRE_SHOCK)
- A.shocked = !A.shocked
- addtimer(CALLBACK(A, /obj/machinery/autoylathe.proc/reset, wire), 60)
- if(WIRE_DISABLE)
- A.disabled = !A.disabled
- addtimer(CALLBACK(A, /obj/machinery/autoylathe.proc/reset, wire), 60)
-
-/datum/wires/autoylathe/on_cut(wire, mend)
- var/obj/machinery/autoylathe/A = holder
- switch(wire)
- if(WIRE_HACK)
- A.adjust_hacked(!mend)
- if(WIRE_HACK)
- A.shocked = !mend
- if(WIRE_DISABLE)
- A.disabled = !mend
- if(WIRE_ZAP)
- A.shock(usr, 50)
diff --git a/code/datums/wires/emitter.dm b/code/datums/wires/emitter.dm
index d0e1352c0e..6d82a7db5a 100644
--- a/code/datums/wires/emitter.dm
+++ b/code/datums/wires/emitter.dm
@@ -1,6 +1,8 @@
/datum/wires/emitter
holder_type = /obj/machinery/power/emitter
+ req_knowledge = JOB_SKILL_TRAINED
+ req_skill = JOB_SKILL_UNTRAINED
/datum/wires/emitter/New(atom/holder)
wires = list(WIRE_ZAP,WIRE_HACK)
diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm
index 3d1ed8b746..dc4db9e85d 100644
--- a/code/datums/wires/explosive.dm
+++ b/code/datums/wires/explosive.dm
@@ -15,6 +15,7 @@
/datum/wires/explosive/c4
holder_type = /obj/item/grenade/plastic/c4
randomize = TRUE //Same behaviour since no wire actually disarms it
+ req_skill = JOB_SKILL_UNTRAINED
/datum/wires/explosive/c4/interactable(mob/user)
var/obj/item/grenade/plastic/c4/P = holder
@@ -29,6 +30,7 @@
/datum/wires/explosive/pizza
holder_type = /obj/item/pizzabox
randomize = TRUE
+ req_skill = JOB_SKILL_MASTER
/datum/wires/explosive/pizza/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/microwave.dm b/code/datums/wires/microwave.dm
index 8c74abfa46..c6e6aa13b5 100644
--- a/code/datums/wires/microwave.dm
+++ b/code/datums/wires/microwave.dm
@@ -1,6 +1,8 @@
/datum/wires/microwave
holder_type = /obj/machinery/microwave
proper_name = "Microwave"
+ req_knowledge = JOB_SKILL_TRAINED
+ req_skill = JOB_SKILL_UNTRAINED
/datum/wires/microwave/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm
index a452b46830..988487727b 100644
--- a/code/datums/wires/mulebot.dm
+++ b/code/datums/wires/mulebot.dm
@@ -1,6 +1,7 @@
/datum/wires/mulebot
holder_type = /mob/living/simple_animal/bot/mulebot
randomize = TRUE
+ req_knowledge = JOB_SKILL_MASTER
/datum/wires/mulebot/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm
index af89f0d6f1..b782e589dd 100644
--- a/code/datums/wires/particle_accelerator.dm
+++ b/code/datums/wires/particle_accelerator.dm
@@ -1,6 +1,8 @@
/datum/wires/particle_accelerator/control_box
holder_type = /obj/machinery/particle_accelerator/control_box
proper_name = "Particle Accelerator"
+ req_knowledge = JOB_SKILL_EXPERT
+ req_skill = JOB_SKILL_TRAINED
/datum/wires/particle_accelerator/control_box/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/r_n_d.dm b/code/datums/wires/r_n_d.dm
index ea61c1779e..25d3b73fe0 100644
--- a/code/datums/wires/r_n_d.dm
+++ b/code/datums/wires/r_n_d.dm
@@ -1,6 +1,7 @@
/datum/wires/rnd
holder_type = /obj/machinery/rnd
randomize = TRUE
+ req_knowledge = JOB_SKILL_EXPERT
/datum/wires/rnd/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm
index a1118da6d7..5db6ddd186 100644
--- a/code/datums/wires/radio.dm
+++ b/code/datums/wires/radio.dm
@@ -1,6 +1,8 @@
/datum/wires/radio
holder_type = /obj/item/radio
proper_name = "Radio"
+ req_knowledge = JOB_SKILL_TRAINED
+ req_skill = JOB_SKILL_UNTRAINED
/datum/wires/radio/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm
index aa7c3cc4c3..6ede0415da 100644
--- a/code/datums/wires/robot.dm
+++ b/code/datums/wires/robot.dm
@@ -1,6 +1,8 @@
/datum/wires/robot
holder_type = /mob/living/silicon/robot
randomize = TRUE
+ req_knowledge = JOB_SKILL_MASTER
+ req_skill = JOB_SKILL_TRAINED
/datum/wires/robot/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/suit_storage_unit.dm b/code/datums/wires/suit_storage_unit.dm
index eb7781203b..4387d0dc76 100644
--- a/code/datums/wires/suit_storage_unit.dm
+++ b/code/datums/wires/suit_storage_unit.dm
@@ -1,6 +1,8 @@
/datum/wires/suit_storage_unit
holder_type = /obj/machinery/suit_storage_unit
proper_name = "Suit Storage Unit"
+ req_knowledge = JOB_SKILL_TRAINED
+ req_skill = JOB_SKILL_UNTRAINED
/datum/wires/suit_storage_unit/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm
index 53c1a1b9bc..8e1cf5002f 100644
--- a/code/datums/wires/syndicatebomb.dm
+++ b/code/datums/wires/syndicatebomb.dm
@@ -1,6 +1,8 @@
/datum/wires/syndicatebomb
holder_type = /obj/machinery/syndicatebomb
randomize = TRUE
+ req_skill = JOB_SKILL_EXPERT //good luck, wannabe hero.
+
/datum/wires/syndicatebomb/New(atom/holder)
wires = list(
diff --git a/code/datums/wires/tesla_coil.dm b/code/datums/wires/tesla_coil.dm
index fa858a9a8f..68fe8e72fc 100644
--- a/code/datums/wires/tesla_coil.dm
+++ b/code/datums/wires/tesla_coil.dm
@@ -2,6 +2,7 @@
/datum/wires/tesla_coil
randomize = 1 //Only one wire don't need blueprints
holder_type = /obj/machinery/power/tesla_coil
+ req_knowledge = JOB_SKILL_TRAINED
/datum/wires/tesla_coil/New(atom/holder)
wires = list(WIRE_ZAP)
diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm
index 114791e873..6c7e59c24c 100644
--- a/code/datums/wires/vending.dm
+++ b/code/datums/wires/vending.dm
@@ -1,6 +1,7 @@
/datum/wires/vending
holder_type = /obj/machinery/vending
proper_name = "Vending Unit"
+ req_knowledge = JOB_SKILL_EXPERT
/datum/wires/vending/New(atom/holder)
wires = list(
diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm
index c2855250f4..30699d36f4 100644
--- a/code/datums/world_topic.dm
+++ b/code/datums/world_topic.dm
@@ -169,7 +169,7 @@
.["real_mode"] = SSticker.mode.name
// Key-authed callers may know the truth behind the "secret"
- .["security_level"] = get_security_level()
+ .["security_level"] = NUM2SECLEVEL(GLOB.security_level)
.["round_duration"] = SSticker ? round((world.time-SSticker.round_start_time)/10) : 0
// Amount of world's ticks in seconds, useful for calculating round duration
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index fe9f2a676e..5fac1a4b65 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -11,13 +11,27 @@
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
invisibility = INVISIBILITY_LIGHTING
- var/map_name // Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints.
+ /// Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints.
+ var/map_name
- var/valid_territory = TRUE // If it's a valid territory for gangs to claim
- var/blob_allowed = TRUE // Does it count for blobs score? By default, all areas count.
- var/clockwork_warp_allowed = TRUE // Can servants warp into this area from Reebe?
+ /// If it's valid territory for gangs/cults to summon
+ var/valid_territory = TRUE
+ /// if blobs can spawn there and if it counts towards their score.
+ var/blob_allowed = TRUE
+ /// whether servants can warp into this area from Reebe
+ var/clockwork_warp_allowed = TRUE
+ /// Message to display when the clockwork warp fails
var/clockwork_warp_fail = "The structure there is too dense for warping to pierce. (This is normal in high-security areas.)"
+ /// If mining tunnel generation is allowed in this area
+ var/tunnel_allowed = FALSE
+ /// If flora are allowed to spawn in this area randomly through tunnel generation
+ var/flora_allowed = FALSE
+ /// if mobs can be spawned by natural random generation
+ var/mob_spawn_allowed = FALSE
+ /// If megafauna can be spawned by natural random generation
+ var/megafauna_spawn_allowed = FALSE
+
var/fire = null
var/atmos = TRUE
var/atmosalm = FALSE
@@ -25,11 +39,14 @@
var/lightswitch = TRUE
var/requires_power = TRUE
- var/always_unpowered = FALSE // This gets overridden to 1 for space in area/Initialize().
+ /// This gets overridden to 1 for space in area/Initialize().
+ var/always_unpowered = FALSE
- var/outdoors = FALSE //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room)
+ /// For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room)
+ var/outdoors = FALSE
- var/areasize = 0 //Size of the area in open turfs, only calculated for indoors areas.
+ /// Size of the area in open turfs, only calculated for indoors areas.
+ var/areasize = 0
var/power_equip = TRUE
var/power_light = TRUE
@@ -43,9 +60,12 @@
var/static_environ
var/has_gravity = 0
- var/noteleport = FALSE //Are you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter)
- var/hidden = FALSE //Hides area from player Teleport function.
- var/safe = FALSE //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers
+ /// Are you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter)
+ var/noteleport = FALSE
+ /// Hides area from player Teleport function.
+ var/hidden = FALSE
+ /// Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers
+ var/safe = FALSE
/// If false, loading multiple maps with this area type will create multiple instances.
var/unique = TRUE
diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm
index 2ca9167bb2..70e0910dde 100644
--- a/code/game/area/areas/mining.dm
+++ b/code/game/area/areas/mining.dm
@@ -3,6 +3,7 @@
/area/mine
icon_state = "mining"
has_gravity = STANDARD_GRAVITY
+ flora_allowed = TRUE
/area/mine/explored
name = "Mine"
@@ -17,6 +18,7 @@
outdoors = TRUE
flags_1 = NONE
ambientsounds = MINING
+ flora_allowed = FALSE
/area/mine/unexplored
name = "Mine"
@@ -31,6 +33,7 @@
outdoors = TRUE
flags_1 = NONE
ambientsounds = MINING
+ tunnel_allowed = TRUE
/area/mine/lobby
name = "Mining Station"
@@ -82,6 +85,7 @@
icon_state = "mining"
has_gravity = STANDARD_GRAVITY
flags_1 = NONE
+ flora_allowed = TRUE
/area/lavaland/surface
name = "Lavaland"
@@ -114,9 +118,79 @@
/area/lavaland/surface/outdoors/unexplored //monsters and ruins spawn here
icon_state = "unexplored"
+ tunnel_allowed = TRUE
+ mob_spawn_allowed = TRUE
/area/lavaland/surface/outdoors/unexplored/danger //megafauna will also spawn here
icon_state = "danger"
+ megafauna_spawn_allowed = TRUE
/area/lavaland/surface/outdoors/explored
name = "Lavaland Labor Camp"
+ flora_allowed = FALSE
+
+
+
+/**********************Ice Moon Areas**************************/
+
+/area/icemoon
+ icon_state = "mining"
+ has_gravity = STANDARD_GRAVITY
+ flags_1 = NONE
+ flora_allowed = TRUE
+ blob_allowed = FALSE
+
+/area/icemoon/surface
+ name = "Icemoon"
+ icon_state = "explored"
+ always_unpowered = TRUE
+ poweralm = FALSE
+ power_environ = FALSE
+ power_equip = FALSE
+ power_light = FALSE
+ requires_power = TRUE
+ ambientsounds = MINING
+
+/area/icemoon/underground
+ name = "Icemoon Caves"
+ outdoors = TRUE
+ always_unpowered = TRUE
+ requires_power = TRUE
+ poweralm = FALSE
+ power_environ = FALSE
+ power_equip = FALSE
+ power_light = FALSE
+ ambientsounds = MINING
+
+/area/icemoon/underground/unexplored // mobs and megafauna and ruins spawn here
+ name = "Icemoon Caves"
+ icon_state = "unexplored"
+ tunnel_allowed = TRUE
+ mob_spawn_allowed = TRUE
+ megafauna_spawn_allowed = TRUE
+
+/area/icemoon/underground/unexplored/rivers // rivers spawn here
+ icon_state = "danger"
+
+/area/icemoon/underground/explored
+ name = "Icemoon Underground"
+ flora_allowed = FALSE
+
+/area/icemoon/surface/outdoors
+ name = "Icemoon Wastes"
+ outdoors = TRUE
+
+/area/icemoon/surface/outdoors/labor_camp
+ name = "Icemoon Labor Camp"
+ flora_allowed = FALSE
+
+/area/icemoon/surface/outdoors/unexplored //monsters and ruins spawn here
+ icon_state = "unexplored"
+ tunnel_allowed = TRUE
+ mob_spawn_allowed = TRUE
+
+/area/icemoon/surface/outdoors/unexplored/rivers // rivers spawn here
+ icon_state = "danger"
+
+/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters
+ mob_spawn_allowed = FALSE
diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm
new file mode 100644
index 0000000000..6706a5faea
--- /dev/null
+++ b/code/game/area/areas/ruins/icemoon.dm
@@ -0,0 +1,9 @@
+// Icemoon Ruins
+
+/area/ruin/unpowered/buried_library
+ name = "Buried Library"
+ icon_state = "dk_yellow"
+
+/area/ruin/powered/bathhouse
+ name = "Bath House"
+ icon_state = "dk_yellow"
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 69476b5950..ad71c3c2ac 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -50,6 +50,13 @@
var/list/blood_DNA
var/list/suit_fibers
+ /// Last name used to calculate a color for the chatmessage overlays
+ var/chat_color_name
+ /// Last color calculated for the the chatmessage overlays
+ var/chat_color
+ /// A luminescence-shifted value of the last color calculated for chatmessage overlays
+ var/chat_color_darkened
+
/atom/New(loc, ...)
//atom creation method that preloads variables at creation
if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New()
@@ -192,7 +199,7 @@
reagents = new()
reagents.reagent_list.Add(A)
reagents.conditional_update()
- else if(ismovableatom(A))
+ else if(ismovable(A))
var/atom/movable/M = A
if(isliving(M.loc))
var/mob/living/L = M.loc
@@ -692,7 +699,7 @@
/atom/vv_get_dropdown()
. = ..()
VV_DROPDOWN_OPTION("", "---------")
- if(!ismovableatom(src))
+ if(!ismovable(src))
var/turf/curturf = get_turf(src)
if(curturf)
. += "Jump To "
@@ -970,7 +977,7 @@ Proc for attack log creation, because really why not
for(var/x in materials)
var/datum/material/custom_material = SSmaterials.GetMaterialRef(x)
- if(!(material_flags & MATERIAL_NO_EFFECTS))
+ if(material_flags & MATERIAL_EFFECTS)
custom_material.on_applied(src, materials[custom_material] * multiplier * material_modifier, material_flags)
custom_materials[custom_material] += materials[x] * multiplier
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 6089d11d6c..fe617ddb0f 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -11,7 +11,7 @@
var/throw_range = 7
var/mob/pulledby = null
var/initial_language_holder = /datum/language_holder
- var/datum/language_holder/language_holder
+ var/datum/language_holder/language_holder // Mindless mobs and objects need language too, some times. Mind holder takes prescedence.
var/verb_say = "says"
var/verb_ask = "asks"
var/verb_exclaim = "exclaims"
@@ -25,6 +25,7 @@
var/inertia_move_delay = 5
var/pass_flags = 0
var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move
+ var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before.
var/list/client_mobs_in_contents // This contains all the client mobs within this container
var/list/acted_explosions //for explosion dodging
glide_size = 8
@@ -68,7 +69,7 @@
if(vs.plane == EMISSIVE_BLOCKER_PLANE)
SSvis_overlays.remove_vis_overlay(src, list(vs))
break
- SSvis_overlays.add_vis_overlay(src, icon, icon_state, EMISSIVE_BLOCKER_LAYER, EMISSIVE_BLOCKER_PLANE)
+ SSvis_overlays.add_vis_overlay(src, icon, icon_state, EMISSIVE_BLOCKER_LAYER, EMISSIVE_BLOCKER_PLANE, dir)
/atom/movable/proc/can_zFall(turf/source, levels = 1, turf/target, direction)
if(!direction)
@@ -207,6 +208,7 @@
if(!Process_Spacemove(get_dir(pulling.loc, A)))
return
step(pulling, get_dir(pulling.loc, A))
+ return TRUE
/atom/movable/proc/check_pulling()
if(pulling)
@@ -224,6 +226,8 @@
if(pulling.anchored || pulling.move_resist > move_force)
stop_pulling()
return
+ if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1) //separated from our puller and not in the middle of a diagonal move.
+ pulledby.stop_pulling()
/atom/movable/Destroy(force)
QDEL_NULL(proximity_monitor)
@@ -251,8 +255,13 @@
/atom/movable/proc/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
set waitfor = 0
- SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum)
- return hit_atom.hitby(src, throwingdatum=throwingdatum)
+ var/hitpush = TRUE
+ var/impact_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum)
+ if(impact_signal & COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH)
+ hitpush = FALSE // hacky, tie this to something else or a proper workaround later
+
+ if(impact_signal & ~COMPONENT_MOVABLE_IMPACT_NEVERMIND) // in case a signal interceptor broke or deleted the thing before we could process our hit
+ return hit_atom.hitby(src, throwingdatum = throwingdatum, hitpush = hitpush)
/atom/movable/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked, datum/thrownthing/throwingdatum)
if(!anchored && hitpush && (!throwingdatum || (throwingdatum.force >= (move_resist * MOVE_FORCE_PUSH_RATIO))))
@@ -493,88 +502,94 @@
animate(src, pixel_y = initial(pixel_y), time = 10)
setMovetype(movement_type & ~FLOATING)
-/* Language procs */
-/atom/movable/proc/get_language_holder(shadow=TRUE)
- if(language_holder)
- return language_holder
- else
+
+/* Language procs
+* Unless you are doing something very specific, these are the ones you want to use.
+*/
+
+/// Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.
+/atom/movable/proc/get_language_holder(get_minds = TRUE)
+ if(!language_holder)
language_holder = new initial_language_holder(src)
- return language_holder
+ return language_holder
-/atom/movable/proc/grant_language(datum/language/dt, body = FALSE)
- var/datum/language_holder/H = get_language_holder(!body)
- H.grant_language(dt, body)
+/// Grants the supplied language and sets omnitongue true.
+/atom/movable/proc/grant_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ATOM)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.grant_language(language, understood, spoken, source)
-/atom/movable/proc/grant_all_languages(omnitongue=FALSE)
- var/datum/language_holder/H = get_language_holder()
- H.grant_all_languages(omnitongue)
+/// Grants every language.
+/atom/movable/proc/grant_all_languages(understood = TRUE, spoken = TRUE, grant_omnitongue = TRUE, source = LANGUAGE_MIND)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.grant_all_languages(understood, spoken, grant_omnitongue, source)
+/// Removes a single language.
+/atom/movable/proc/remove_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ALL)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.remove_language(language, understood, spoken, source)
+
+/// Removes every language and sets omnitongue false.
+/atom/movable/proc/remove_all_languages(source = LANGUAGE_ALL, remove_omnitongue = FALSE)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.remove_all_languages(source, remove_omnitongue)
+
+/// Adds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later.
+/atom/movable/proc/add_blocked_language(language, source = LANGUAGE_ATOM)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.add_blocked_language(language, source)
+
+/// Removes a language from the blocked language list.
+/atom/movable/proc/remove_blocked_language(language, source = LANGUAGE_ATOM)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.remove_blocked_language(language, source)
+
+/// Checks if atom has the language. If spoken is true, only checks if atom can speak the language.
+/atom/movable/proc/has_language(language, spoken = FALSE)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.has_language(language, spoken)
+
+/// Checks if atom can speak the language.
+/atom/movable/proc/can_speak_language(language)
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.can_speak_language(language)
+
+/// Returns the result of tongue specific limitations on spoken languages.
+/atom/movable/proc/could_speak_language(language)
+ return TRUE
+
+/// Returns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible.
+/atom/movable/proc/get_selected_language()
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.get_selected_language()
+
+/// Gets a random understood language, useful for hallucinations and such.
/atom/movable/proc/get_random_understood_language()
- var/datum/language_holder/H = get_language_holder()
- . = H.get_random_understood_language()
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.get_random_understood_language()
-/atom/movable/proc/remove_language(datum/language/dt, body = FALSE)
- var/datum/language_holder/H = get_language_holder(!body)
- H.remove_language(dt, body)
+/// Gets a random spoken language, useful for forced speech and such.
+/atom/movable/proc/get_random_spoken_language()
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.get_random_spoken_language()
-/atom/movable/proc/remove_all_languages()
- var/datum/language_holder/H = get_language_holder()
- H.remove_all_languages()
+/// Copies all languages into the supplied atom/language holder. Source should be overridden when you
+/// do not want the language overwritten by later atom updates or want to avoid blocked languages.
+/atom/movable/proc/copy_languages(from_holder, source_override)
+ if(isatom(from_holder))
+ var/atom/movable/thing = from_holder
+ from_holder = thing.get_language_holder()
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.copy_languages(from_holder, source_override)
-/atom/movable/proc/has_language(datum/language/dt)
- var/datum/language_holder/H = get_language_holder()
- . = H.has_language(dt)
-
-/atom/movable/proc/copy_known_languages_from(thing, replace=FALSE)
- var/datum/language_holder/H = get_language_holder()
- . = H.copy_known_languages_from(thing, replace)
-
-// Whether an AM can speak in a language or not, independent of whether
-// it KNOWS the language
-/atom/movable/proc/could_speak_in_language(datum/language/dt)
- . = TRUE
-
-/atom/movable/proc/can_speak_in_language(datum/language/dt)
- var/datum/language_holder/H = get_language_holder()
-
- if(!H.has_language(dt))
- return FALSE
- else if(H.omnitongue)
- return TRUE
- else if(could_speak_in_language(dt) && (!H.only_speaks_language || H.only_speaks_language == dt))
- return TRUE
- else
- return FALSE
-
-/atom/movable/proc/get_default_language()
- // if no language is specified, and we want to say() something, which
- // language do we use?
- var/datum/language_holder/H = get_language_holder()
-
- if(H.selected_default_language)
- if(can_speak_in_language(H.selected_default_language))
- return H.selected_default_language
- else
- H.selected_default_language = null
-
-
- var/datum/language/chosen_langtype
- var/highest_priority
-
- for(var/lt in H.languages)
- var/datum/language/langtype = lt
- if(!can_speak_in_language(langtype))
- continue
-
- var/pri = initial(langtype.default_priority)
- if(!highest_priority || (pri > highest_priority))
- chosen_langtype = langtype
- highest_priority = pri
-
- H.selected_default_language = .
- . = chosen_langtype
+/// Empties out the atom specific languages and updates them according to the current atoms language holder.
+/// As a side effect, it also creates missing language holders in the process.
+/atom/movable/proc/update_atom_languages()
+ var/datum/language_holder/LH = get_language_holder()
+ return LH.update_atom_languages(src)
/* End language procs */
+
+
/atom/movable/proc/ConveyorMove(movedir)
set waitfor = FALSE
if(!anchored && has_gravity())
diff --git a/code/game/atoms_movement.dm b/code/game/atoms_movement.dm
index d418652cd8..68db17f076 100644
--- a/code/game/atoms_movement.dm
+++ b/code/game/atoms_movement.dm
@@ -20,6 +20,9 @@
if(!newloc.Enter(src, src.loc))
return
+ if (SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_MOVE, newloc) & COMPONENT_MOVABLE_BLOCK_PRE_MOVE)
+ return
+
// Past this is the point of no return
var/atom/oldloc = loc
var/area/oldarea = get_area(oldloc)
@@ -51,13 +54,8 @@
/atom/movable/Move(atom/newloc, direct)
var/atom/movable/pullee = pulling
var/turf/T = loc
- if(pulling)
- if(pullee && get_dist(src, pullee) > 1)
- stop_pulling()
-
- if(pullee && pullee.loc != loc && !isturf(pullee.loc) ) //to be removed once all code that changes an object's loc uses forceMove().
- log_game("DEBUG:[src]'s pull on [pullee] wasn't broken despite [pullee] being in [pullee.loc]. Pull stopped manually.")
- stop_pulling()
+ if(!moving_from_pull)
+ check_pulling()
if(!loc || !newloc)
return FALSE
var/atom/oldloc = loc
@@ -130,19 +128,16 @@
if(has_buckled_mobs() && !handle_buckled_mob_movement(loc,direct)) //movement failed due to buckled mob(s)
return FALSE
- if(pulling && pulling == pullee) //we were pulling a thing and didn't lose it during our move.
+ if(pulling && pulling == pullee && pulling != moving_from_pull) //we were pulling a thing and didn't lose it during our move.
if(pulling.anchored)
stop_pulling()
else
var/pull_dir = get_dir(src, pulling)
//puller and pullee more than one tile away or in diagonal position
if(get_dist(src, pulling) > 1 || (moving_diagonally != SECOND_DIAG_STEP && ((pull_dir - 1) & pull_dir)))
+ pulling.moving_from_pull = src
pulling.Move(T, get_dir(pulling, T)) //the pullee tries to reach our previous position
- if(pulling && get_dist(src, pulling) > 1) //the pullee couldn't keep up
- stop_pulling()
- if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move.
- pulledby.stop_pulling()
-
+ pulling.moving_from_pull = null
Moved(oldloc, direct)
/atom/movable/proc/handle_buckled_mob_movement(newloc,direct)
diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm
index bb776d7bc0..c54de16e2e 100644
--- a/code/game/gamemodes/bloodsucker/bloodsucker.dm
+++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm
@@ -53,7 +53,7 @@
restricted_jobs += "Assistant"
// Set number of Vamps
- recommended_enemies = CLAMP(round(num_players()/10), 1, 6);
+ recommended_enemies = clamp(round(num_players()/10), 1, 6);
// Select Antags
for(var/i = 0, i < recommended_enemies, i++)
@@ -195,7 +195,7 @@
return FALSE
if(target.stat > UNCONSCIOUS)
return FALSE
-
+
// Check Overdose: Am I even addicted to blood? Do I even have any in me?
//if (!target.reagents.addiction_list || !target.reagents.reagent_list)
//message_admins("DEBUG2: can_make_vassal() Abort: No reagents")
diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm
index d548f373db..659d50c077 100644
--- a/code/game/gamemodes/dynamic/dynamic.dm
+++ b/code/game/gamemodes/dynamic/dynamic.dm
@@ -40,8 +40,10 @@ GLOBAL_VAR_INIT(dynamic_stacking_limit, 90)
GLOBAL_LIST_EMPTY(dynamic_forced_roundstart_ruleset)
// Forced threat level, setting this to zero or higher forces the roundstart threat to the value.
GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
-
+// Storyteller picked by the voting.
GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
+// Storyteller forced by admins during voting--will be used instead of above.
+GLOBAL_VAR_INIT(dynamic_forced_storyteller, null)
/datum/game_mode/dynamic
name = "dynamic mode"
@@ -164,7 +166,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
dat += "Current threat: [threat] \[Adjust\] \[View Log\] "
dat += " "
- dat += "Storyteller: [storyteller.name] "
+ dat += "Storyteller: [storyteller.name] "
dat += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width]. "
dat += "On average, [peaceful_percentage] % of the rounds are more peaceful. "
dat += "Forced extended: [GLOB.dynamic_forced_extended ? "On" : "Off"] "
@@ -222,6 +224,15 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
show_threatlog(usr)
else if (href_list["stacking_limit"])
GLOB.dynamic_stacking_limit = input(usr,"Change the threat limit at which round-endings rulesets will start to stack.", "Change stacking limit", null) as num
+ else if (href_list["change_storyteller"])
+ var/list/choices = list()
+ for(var/T in config.storyteller_cache)
+ var/datum/dynamic_storyteller/S = T
+ choices[initial(S.name)] = T
+ var/selected_storyteller = choices[input("Select storyteller:", "Storyteller", storyteller.name) as null|anything in choices]
+ storyteller = new selected_storyteller
+ storyteller.on_start()
+ message_admins("[key_name(usr)] changed the storyteller to [storyteller].", 1)
admin_panel() // Refreshes the window
@@ -243,7 +254,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
/datum/game_mode/dynamic/send_intercept()
. = "Central Command Status Summary "
switch(round(threat_level))
- if(0 to 20)
+ if(-INFINITY to 20)
. += "Peaceful Waypoint "
. += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive. However, even deep in our territory there may be subversive elements, especially for such a high-value target as your station. Keep an eye out, but don't expect much trouble."
set_security_level(SEC_LEVEL_GREEN)
@@ -275,7 +286,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
. += "Black Orbit "
. += "As part of a mandatory security protocol, we are required to inform you that as a result of your orbital pattern directly behind an astrological body (oriented from our nearest observatory), your station will be under decreased monitoring and support. It is anticipated that your extreme location and decreased surveillance could pose security risks. Avoid unnecessary risks and attempt to keep your station in one piece."
set_security_level(SEC_LEVEL_AMBER)
- if(96 to 100)
+ if(96 to INFINITY)
. += "Impending Doom "
. += "Your station is somehow in the middle of hostile territory, in clear view of any enemy of the corporation. Your likelihood to survive is low, and station destruction is expected and almost inevitable. Secure any sensitive material and neutralize any enemy you will come across. It is important that you at least try to maintain the station. "
. += "Good luck."
@@ -346,6 +357,8 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
SSblackbox.record_feedback("tally","dynamic_threat",peaceful_percentage,"Percent of same-vote rounds that are more peaceful")
/datum/game_mode/dynamic/can_start()
+ if(GLOB.dynamic_forced_storyteller)
+ GLOB.dynamic_storyteller_type = GLOB.dynamic_forced_storyteller
storyteller = new GLOB.dynamic_storyteller_type // this is where all the initialization happens
storyteller.on_start()
SSblackbox.record_feedback("text","dynamic_storyteller",1,storyteller.name)
@@ -441,6 +454,8 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
if(!drafted_rules.len)
message_admins("Not enough threat level for roundstart antags!")
log_game("DYNAMIC: Not enough threat level for roundstart antags!")
+ midround_injection_cooldown = round((midround_injection_cooldown + world.time) / 2, 1)
+ latejoin_injection_cooldown = round((latejoin_injection_cooldown + world.time) / 2, 1)
var/indice_pop = min(10,round(roundstart_pop_ready/pop_per_requirement)+1)
extra_rulesets_amount = 0
if (GLOB.dynamic_classic_secret)
@@ -721,7 +736,8 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
if (O.started_as_observer) // Observers
current_players[CURRENT_OBSERVERS].Add(M)
continue
- current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow)
+ if(!M.voluntary_ghosted)
+ current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow)
threat = storyteller.calculate_threat() + added_threat
if(threat_average_weight)
var/cur_sample_weight = world.time - last_threat_sample_time
@@ -823,3 +839,11 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
return RULE_OF_THREE(40, 20, x) + 50
if (20 to INFINITY)
return rand(90, 100)
+
+/datum/game_mode/dynamic/ghost_info()
+ . = list()
+ . += "Current threat: [threat]"
+ . += "Target threat: [threat_level]"
+ . += "Storyteller: [storyteller.name] "
+ . += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width]. "
+ . += "On average, [peaceful_percentage] % of the rounds are more peaceful. "
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
index 48e306b2b5..6a7671cd5b 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
@@ -105,7 +105,7 @@
if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles)))
job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it
- var/threat = CLAMP(round(mode.threat_level/10),1,10)
+ var/threat = clamp(round(mode.threat_level/10),1,10)
if (job_check < required_enemies[threat])
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles")
return FALSE
@@ -642,6 +642,9 @@
for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list)
if(isturf(L.loc))
spawn_locs += L.loc
+ for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list)
+ if(isturf(L.loc))
+ spawn_locs += L.loc
if(!spawn_locs.len)
return FALSE
spawn_loc = pick(spawn_locs)
@@ -671,7 +674,7 @@
message_admins("[ADMIN_LOOKUPFLW(Ninja)] has been made into a ninja by dynamic.")
log_game("[key_name(Ninja)] was spawned as a ninja by dynamic.")
return Ninja
-
+
/datum/dynamic_ruleset/midround/from_ghosts/ninja/finish_setup(mob/new_character, index)
return
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
index a7fc9b86ce..edaadeae1c 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
@@ -789,7 +789,7 @@
if (prob(meteorminutes/2))
wavetype = GLOB.meteors_catastrophic
- var/ramp_up_final = CLAMP(round(meteorminutes/rampupdelta), 1, 10)
+ var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10)
spawn_meteors(ramp_up_final, wavetype)
diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm
index c37eb9bc2a..561b38fde1 100644
--- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm
+++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm
@@ -11,7 +11,7 @@
WAROPS_ALWAYS_ALLOWED: Can always do warops, regardless of threat level.
USE_PREF_WEIGHTS: Will use peoples' preferences to change the threat centre.
FORCE_IF_WON: If this mode won the vote, forces it
- USE_PREV_ROUND_WEIGHTS: Changes its threat centre based on the average chaos of previous rounds.
+ USE_PREV_ROUND_WEIGHTS: Changes its threat centre based on the average chaos of previous rounds.
*/
var/flags = 0
var/dead_player_weight = 1 // How much dead players matter for threat calculation
@@ -22,11 +22,11 @@
var/datum/game_mode/dynamic/mode = null // Cached as soon as it's made, by dynamic.
/**
-Property weights are:
+Property weights are:
"story_potential" -- essentially how many different ways the antag can be played.
"trust" -- How much it makes the crew trust each other. Negative values means they're suspicious. Team antags are like this.
"chaos" -- How chaotic it makes the round. Has some overlap with "valid" and somewhat contradicts "extended".
-"valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to
+"valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to
let everyone into the armory, wizard moving around and being a nuisance, nightmare busting lights.
"extended" -- How much the antag is conducive to a long round. Nukies and cults are bad for this; Wizard is less bad; and so on.
"conversion" -- Basically a bool. Conversion antags, well, convert. It's its own class for a good reason.
@@ -34,13 +34,13 @@ Property weights are:
/datum/dynamic_storyteller/proc/start_injection_cooldowns()
var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_latejoin_delay_max + GLOB.dynamic_first_latejoin_delay_min)
- mode.latejoin_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_first_latejoin_delay_min, GLOB.dynamic_first_latejoin_delay_max)) + world.time
+ mode.latejoin_injection_cooldown = round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_first_latejoin_delay_min, GLOB.dynamic_first_latejoin_delay_max)) + world.time
var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_midround_delay_min + GLOB.dynamic_first_midround_delay_max)
- mode.midround_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time
-
+ mode.midround_injection_cooldown = round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time
+
var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min)
- mode.event_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time)
+ mode.event_injection_cooldown = (round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time)
/datum/dynamic_storyteller/proc/calculate_threat()
var/threat = 0
@@ -99,15 +99,15 @@ Property weights are:
/datum/dynamic_storyteller/proc/get_midround_cooldown()
var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_midround_delay_max + GLOB.dynamic_midround_delay_min)
- return round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max))
+ return round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max))
/datum/dynamic_storyteller/proc/get_event_cooldown()
var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min)
- return round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max))
+ return round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max))
/datum/dynamic_storyteller/proc/get_latejoin_cooldown()
var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_latejoin_delay_max + GLOB.dynamic_latejoin_delay_min)
- return round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max))
+ return round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max))
/datum/dynamic_storyteller/proc/get_injection_chance(dry_run = FALSE)
if(mode.forced_injection)
@@ -115,7 +115,7 @@ Property weights are:
return 100
var/threat_perc = mode.threat/mode.threat_level
- return round(max(0,100*(1-(threat_perc*threat_perc*threat_perc))))
+ return clamp(round(100*(1-(threat_perc*threat_perc))**2,1),0,100)
/datum/dynamic_storyteller/proc/roundstart_draft()
var/list/drafted_rules = list()
@@ -144,7 +144,7 @@ Property weights are:
if(!(rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway
var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat))
/* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to
- pick this particular ruleset.
+ pick this particular ruleset.
Let's use a toy example: there's 60 threat level and 10 threat spent.
We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets.
Ruleset 1 has 30 cost, ruleset 2 has 5 cost.
@@ -152,7 +152,7 @@ Property weights are:
is 2.26 times as likely to be picked, all other things considered.
Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight.
*/
- threat_weight = 1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0))
+ threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0)))
if (rule.ready())
var/property_weight = 0
for(var/property in property_weights)
@@ -209,10 +209,10 @@ Property weights are:
weight = 1
event_frequency_lower = 2 MINUTES
event_frequency_upper = 10 MINUTES
- flags = WAROPS_ALWAYS_ALLOWED
- min_players = 40
+ flags = WAROPS_ALWAYS_ALLOWED | FORCE_IF_WON
+ min_players = 30
var/refund_cooldown = 0
-
+
/datum/dynamic_storyteller/chaotic/do_process()
if(refund_cooldown < world.time)
mode.create_threat(20)
@@ -221,7 +221,7 @@ Property weights are:
/datum/dynamic_storyteller/chaotic/get_midround_cooldown()
return ..() / 4
-
+
/datum/dynamic_storyteller/chaotic/get_latejoin_cooldown()
return ..() / 4
@@ -232,7 +232,7 @@ Property weights are:
curve_centre = 2
curve_width = 1.5
weight = 2
- min_players = 30
+ min_players = 20
flags = WAROPS_ALWAYS_ALLOWED | USE_PREV_ROUND_WEIGHTS
property_weights = list("valid" = 3, "trust" = 5)
@@ -331,7 +331,7 @@ Property weights are:
/datum/dynamic_storyteller/story/calculate_threat()
var/current_time = (world.time / SSautotransfer.targettime)*180
mode.threat_level = round(mode.initial_threat_level*(sin(current_time)+0.25),0.1)
- ..()
+ return ..()
/datum/dynamic_storyteller/classic
name = "Classic"
@@ -358,7 +358,7 @@ Property weights are:
flags = NO_ASSASSIN | FORCE_IF_WON
weight = 1
dead_player_weight = 5
- property_weights = list("extended" = 2, "chaos" = -1, "valid" = -1, "story_potential" = 1, "conversion" = -10)
+ property_weights = list("extended" = 2, "chaos" = -1, "valid" = -1, "conversion" = -10)
/datum/dynamic_storyteller/no_antag
name = "Extended"
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 5affeba6d6..a7ccada9f2 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -272,7 +272,7 @@
reports += config.mode_reports[config_tag]
Count++
for(var/i in Count to rand(3,5)) //Between three and five wrong entries on the list.
- var/false_report_type = pickweightAllowZero(report_weights)
+ var/false_report_type = pickweight(report_weights, 0)
report_weights[false_report_type] = 0 //Make it so the same false report won't be selected twice
reports += config.mode_reports[false_report_type]
@@ -417,7 +417,7 @@
if(player.assigned_role == job)
candidates -= player
- if(candidates.len < recommended_enemies)
+ if(candidates.len < recommended_enemies && CONFIG_GET(keyed_list/force_antag_count)[config_tag])
for(var/mob/dead/new_player/player in players)
if(player.client && player.ready == PLAYER_READY_TO_PLAY)
if(!(role in player.client.prefs.be_special)) // We don't have enough people who want to be antagonist, make a separate list of people who don't want to be one
@@ -604,3 +604,7 @@
/// Mode specific admin panel.
/datum/game_mode/proc/admin_panel()
return
+
+/// Mode specific info for ghost game_info
+/datum/game_mode/proc/ghost_info()
+ return
diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm
index 858c10c46c..dca50be5b9 100644
--- a/code/game/gamemodes/gangs/dominator.dm
+++ b/code/game/gamemodes/gangs/dominator.dm
@@ -229,7 +229,7 @@
if(!was_stranded)
priority_announce("All hostile activity within station systems has ceased.","Network Alert")
- if(get_security_level() == "delta")
+ if(NUM2SECLEVEL(GLOB.security_level) == "delta")
set_security_level("red")
SSshuttle.clearHostileEnvironment(src)
diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm
index 7857eb8253..afeebb770b 100644
--- a/code/game/gamemodes/meteor/meteor.dm
+++ b/code/game/gamemodes/meteor/meteor.dm
@@ -25,7 +25,7 @@
if (prob(meteorminutes/2))
wavetype = GLOB.meteors_catastrophic
- var/ramp_up_final = CLAMP(round(meteorminutes/rampupdelta), 1, 10)
+ var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10)
spawn_meteors(ramp_up_final, wavetype)
diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm
index d2cdd2e029..f08d84eae2 100644
--- a/code/game/gamemodes/objective_sabotage.dm
+++ b/code/game/gamemodes/objective_sabotage.dm
@@ -90,7 +90,10 @@
sabotage_type = "cloner"
/datum/sabotage_objective/cloner/check_conditions()
- return !(locate(/obj/machinery/clonepod) in GLOB.machines)
+ for(var/obj/machinery/clonepod/cloner in GLOB.machines)
+ if(is_station_level(cloner.z))
+ return FALSE
+ return TRUE
/datum/sabotage_objective/ai_law
name = "Upload a hacked law to the AI."
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 74554ac9f8..9eed18d906 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -70,7 +70,7 @@
/datum/game_mode/revolution/post_setup()
var/list/heads = SSjob.get_living_heads()
var/list/sec = SSjob.get_living_sec()
- var/weighted_score = CLAMP(round(heads.len - ((3 - sec.len) / 3)), 1, max_headrevs)
+ var/weighted_score = clamp(round(heads.len - ((3 - sec.len) / 3)), 1, max_headrevs)
for(var/datum/mind/rev_mind in headrev_candidates) //People with return to lobby may still be in the lobby. Let's pick someone else in that case.
if(isnewplayer(rev_mind.current))
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 6fa7fa30c0..33560dbb8b 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -17,7 +17,6 @@
var/list/L = list()
var/list/LL = list()
var/hacked = FALSE
- var/hackable = TRUE
var/disabled = 0
var/shocked = FALSE
var/hack_wire
@@ -28,11 +27,11 @@
var/prod_coeff = 1
var/datum/design/being_built
- var/datum/techweb/stored_research
var/list/datum/design/matching_designs
var/selected_category
var/screen = 1
+ var/datum/techweb/specialized/autounlocking/stored_research = /datum/techweb/specialized/autounlocking/autolathe
var/list/categories = list(
"Tools",
"Electronics",
@@ -45,9 +44,7 @@
"Dinnerware",
"Imported"
)
-
-/obj/machinery/autolathe/Initialize()
- var/static/list/allowed_types = list(
+ var/list/allowed_materials = list(
/datum/material/iron,
/datum/material/glass,
/datum/material/gold,
@@ -63,10 +60,15 @@
/datum/material/adamantine,
/datum/material/mythril
)
- AddComponent(/datum/component/material_container, allowed_types, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert))
+
+ /// Base print speed
+ var/base_print_speed = 10
+
+/obj/machinery/autolathe/Initialize()
+ AddComponent(/datum/component/material_container, allowed_materials, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert))
. = ..()
wires = new /datum/wires/autolathe(src)
- stored_research = new /datum/techweb/specialized/autounlocking/autolathe
+ stored_research = new stored_research
matching_designs = list()
/obj/machinery/autolathe/Destroy()
@@ -91,7 +93,7 @@
if(AUTOLATHE_SEARCH_MENU)
dat = search_win(user)
- var/datum/browser/popup = new(user, "autolathe", name, 400, 500)
+ var/datum/browser/popup = new(user, name, name, 400, 500)
popup.set_content(dat)
popup.open()
@@ -169,7 +171,7 @@
var/multiplier = text2num(href_list["multiplier"])
var/is_stack = ispath(being_built.build_path, /obj/item/stack)
- multiplier = CLAMP(multiplier,1,50)
+ multiplier = clamp(multiplier,1,50)
/////////////////
@@ -206,7 +208,7 @@
busy = TRUE
use_power(power)
icon_state = "autolathe_n"
- var/time = is_stack ? 32 : 32*coeff*multiplier
+ var/time = is_stack ? 10 : base_print_speed * coeff * multiplier
addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack), time)
else
to_chat(usr, "Not enough materials for this operation. ")
@@ -254,10 +256,12 @@
T += MB.rating*75000
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
materials.max_amount = T
- T=1.2
+ var/manips = 0
+ var/total_manip_rating = 0
for(var/obj/item/stock_parts/manipulator/M in component_parts)
- T -= M.rating*0.2
- prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4
+ total_manip_rating += M.rating
+ manips++
+ prod_coeff = STANDARD_PART_LEVEL_LATHE_COEFFICIENT(total_manip_rating / (manips? manips : 1))
/obj/machinery/autolathe/examine(mob/user)
. += ..()
@@ -420,11 +424,11 @@
/obj/machinery/autolathe/proc/adjust_hacked(state)
hacked = state
- if(!hackable && hacked)
- return
for(var/id in SSresearch.techweb_designs)
var/datum/design/D = SSresearch.techweb_design_by_id(id)
- if((D.build_type & AUTOLATHE) && ("hacked" in D.category))
+ if(D.build_type & stored_research.design_autounlock_skip_types)
+ continue
+ if((D.build_type & stored_research.design_autounlock_buildtypes) && ("hacked" in D.category))
if(hacked)
stored_research.add_design(D)
else
@@ -436,11 +440,35 @@
/obj/machinery/autolathe/secure
name = "secured autolathe"
- desc = "An autolathe reprogrammed with security protocols to prevent hacking."
- hackable = FALSE
+ desc = "It produces items using metal and glass. This model was reprogrammed without some of the more hazardous designs."
circuit = /obj/item/circuitboard/machine/autolathe/secure
+ stored_research = /datum/techweb/specialized/autounlocking/autolathe/public
+ base_print_speed = 20
-//Called when the object is constructed by an autolathe
-//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes
-/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A)
- return
+/obj/machinery/autolathe/toy
+ name = "autoylathe"
+ desc = "It produces toys using plastic, metal and glass."
+ circuit = /obj/item/circuitboard/machine/autolathe/toy
+
+ stored_research = /datum/techweb/specialized/autounlocking/autolathe/toy
+ categories = list(
+ "Toys",
+ "Figurines",
+ "Pistols",
+ "Rifles",
+ "Heavy",
+ "Melee",
+ "Armor",
+ "Adult",
+ "Misc",
+ "Imported"
+ )
+ allowed_materials = list(
+ /datum/material/iron,
+ /datum/material/glass,
+ /datum/material/plastic
+ )
+
+/obj/machinery/autolathe/toy/hacked/Initialize()
+ . = ..()
+ adjust_hacked(TRUE)
diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm
index 235da620d7..669f810c06 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -16,6 +16,9 @@
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/machinery/button/Initialize(mapload, ndir = 0, built = 0)
+ if(istext(id) && mapload)
+ if(copytext(id, 1, 2) == "!")
+ id = SSmapping.get_obfuscated_id(id)
. = ..()
if(built)
setDir(ndir)
@@ -269,6 +272,11 @@
req_access = list()
id = 1
+/obj/machinery/button/electrochromatic
+ name = "window dim control"
+ desc = "Controls linked electrochromatic windows"
+ device_type = /obj/item/assembly/control/electrochromatic
+
/obj/item/wallframe/button
name = "button frame"
desc = "Used for building buttons."
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 1766391709..b6af0600e4 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -48,8 +48,7 @@
if(2)
// State 2
if(istype(W, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/C = W
- if(C.use(2))
+ if(W.use_tool(src, user, 0, 2))
to_chat(user, "You add wires to the assembly. ")
state = 3
else
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 036e214c7c..d2a3c08f94 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -69,8 +69,8 @@
for(var/obj/item/stock_parts/manipulator/P in component_parts)
speed_coeff += (P.rating / 2)
speed_coeff = max(1, speed_coeff)
- heal_level = CLAMP((efficiency * 10) + 10, MINIMUM_HEAL_LEVEL, 100)
-
+ heal_level = clamp((efficiency * 10) + 10, MINIMUM_HEAL_LEVEL, 100)
+
//Clonepod
/obj/machinery/clonepod/examine(mob/user)
diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm
index 6d22f9d6c8..eae2d5fa5b 100644
--- a/code/game/machinery/computer/apc_control.dm
+++ b/code/game/machinery/computer/apc_control.dm
@@ -150,7 +150,7 @@
return
log_activity("changed greater than charge filter to \"[new_filter]\"")
if(new_filter)
- new_filter = CLAMP(new_filter, 0, 100)
+ new_filter = clamp(new_filter, 0, 100)
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
result_filters["Charge Above"] = new_filter
if(href_list["below_filter"])
@@ -160,7 +160,7 @@
return
log_activity("changed lesser than charge filter to \"[new_filter]\"")
if(new_filter)
- new_filter = CLAMP(new_filter, 0, 100)
+ new_filter = clamp(new_filter, 0, 100)
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
result_filters["Charge Below"] = new_filter
if(href_list["access_filter"])
diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm
index 370f85b4b9..ad325455ad 100644
--- a/code/game/machinery/computer/arcade/minesweeper.dm
+++ b/code/game/machinery/computer/arcade/minesweeper.dm
@@ -308,12 +308,12 @@
var/new_rows = input(user, "How many rows do you want? (Minimum: 4, Maximum: 30)", "Minesweeper Rows") as null|num
if(!new_rows || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
return FALSE
- new_rows = CLAMP(new_rows + 1, 4, 30)
+ new_rows = clamp(new_rows + 1, 4, 30)
playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10)
var/new_columns = input(user, "How many columns do you want? (Minimum: 4, Maximum: 50)", "Minesweeper Squares") as null|num
if(!new_columns || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
return FALSE
- new_columns = CLAMP(new_columns + 1, 4, 50)
+ new_columns = clamp(new_columns + 1, 4, 50)
playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10)
var/grid_area = (new_rows - 1) * (new_columns - 1)
var/lower_limit = round(grid_area*0.156)
@@ -324,7 +324,7 @@
playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10)
rows = new_rows
columns = new_columns
- mine_limit = CLAMP(new_mine_limit, lower_limit, upper_limit)
+ mine_limit = clamp(new_mine_limit, lower_limit, upper_limit)
return TRUE
/obj/machinery/computer/arcade/minesweeper/proc/make_mines(var/reset_everything)
diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm
index b891941056..750a660ec0 100644
--- a/code/game/machinery/computer/atmos_control.dm
+++ b/code/game/machinery/computer/atmos_control.dm
@@ -296,7 +296,7 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers)
if("rate")
var/target = text2num(params["rate"])
if(!isnull(target))
- target = CLAMP(target, 0, MAX_TRANSFER_RATE)
+ target = clamp(target, 0, MAX_TRANSFER_RATE)
signal.data += list("tag" = input_tag, "set_volume_rate" = target)
. = TRUE
if("output")
@@ -305,7 +305,7 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers)
if("pressure")
var/target = text2num(params["pressure"])
if(!isnull(target))
- target = CLAMP(target, 0, MAX_OUTPUT_PRESSURE)
+ target = clamp(target, 0, MAX_OUTPUT_PRESSURE)
signal.data += list("tag" = output_tag, "set_internal_pressure" = target)
. = TRUE
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 71193ca252..f71a3a8e39 100755
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -111,7 +111,7 @@
to_chat(usr, "Authorization confirmed. Modifying security level. ")
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
//Only notify people if an actual change happened
- var/security_level = get_security_level()
+ var/security_level = NUM2SECLEVEL(GLOB.security_level)
log_game("[key_name(usr)] has changed the security level to [security_level] with [src] at [AREACOORD(usr)].")
message_admins("[ADMIN_LOOKUPFLW(usr)] has changed the security level to [security_level] with [src] at [AREACOORD(usr)].")
deadchat_broadcast("[usr.real_name] has changed the security level to [security_level] with [src] at [get_area_name(usr, TRUE)] . ", usr)
@@ -400,7 +400,7 @@
security_level_cd = world.time + 15 SECONDS
if(GLOB.security_level != old_level)
//Only notify people if an actual change happened
- var/security_level = get_security_level()
+ var/security_level = NUM2SECLEVEL(GLOB.security_level)
log_game("[key_name(usr)] has changed the security level to [security_level] from [src] at [AREACOORD(usr)].")
message_admins("[ADMIN_LOOKUPFLW(usr)] has changed the security level to [security_level] from [src] at [AREACOORD(usr)].")
deadchat_broadcast("[usr.real_name] has changed the security level to [security_level] from [src] at [get_area_name(usr, TRUE)]. ", usr)
@@ -551,7 +551,7 @@
dat += " Biohazard \] "
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
if(STATE_ALERT_LEVEL)
- dat += "Current alert level: [get_security_level()] "
+ dat += "Current alert level: [NUM2SECLEVEL(GLOB.security_level)] "
if(GLOB.security_level == SEC_LEVEL_DELTA)
dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate. "
else
@@ -559,8 +559,8 @@
dat += "Blue "
dat += "Green "
if(STATE_CONFIRM_LEVEL)
- dat += "Current alert level: [get_security_level()] "
- dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)] "
+ dat += "Current alert level: [NUM2SECLEVEL(GLOB.security_level)] "
+ dat += "Confirm the change to: [NUM2SECLEVEL(tmp_alertlevel)] "
dat += "Swipe ID to confirm change. "
if(STATE_TOGGLE_EMERGENCY)
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
@@ -692,7 +692,7 @@
dat += " Biohazard \] "
if(STATE_ALERT_LEVEL)
- dat += "Current alert level: [get_security_level()] "
+ dat += "Current alert level: [NUM2SECLEVEL(GLOB.security_level)] "
if(GLOB.security_level == SEC_LEVEL_DELTA)
dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate. "
else
diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm
index 9055ff62ec..dd925fbe3b 100644
--- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm
+++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm
@@ -97,7 +97,7 @@
return
if(!new_goal)
new_goal = default_goal
- contained_id.goal = CLAMP(new_goal, 0, 1000) //maximum 1000 points
+ contained_id.goal = clamp(new_goal, 0, 1000) //maximum 1000 points
return TRUE
if("toggle_open")
if(teleporter.locked)
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index b007bc0161..5ee8223625 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -83,7 +83,6 @@
if(istype(P, /obj/item/stack/cable_coil))
if(!P.tool_start_check(user, amount=5))
return
-
to_chat(user, "You start to add cables to the frame... ")
if(P.use_tool(src, user, 20, volume=50, amount=5))
to_chat(user, "You add cables to the frame. ")
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 118145ed88..07f95c17ff 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -405,7 +405,7 @@
// Ghost and delete the mob.
if(!mob_occupant.get_ghost(1))
- mob_occupant.ghostize(FALSE, penalize = TRUE)
+ mob_occupant.ghostize(FALSE, penalize = TRUE, voluntary = TRUE)
QDEL_NULL(occupant)
for(var/I in cryo_items) //only "CRYO_DESTROY_LATER" atoms are left)
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 686b62d1c3..67113fcf78 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -33,7 +33,7 @@
to_chat(user, "You begin repairing [src]... ")
if(I.use_tool(src, user, 40, volume=40))
- obj_integrity = CLAMP(obj_integrity + 20, 0, max_integrity)
+ obj_integrity = clamp(obj_integrity + 20, 0, max_integrity)
else
return ..()
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index 05f4c03eb0..fe01438998 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -135,7 +135,7 @@
. /= 10
/obj/machinery/door_timer/proc/set_timer(value)
- var/new_time = CLAMP(value,0,MAX_TIMER)
+ var/new_time = clamp(value,0,MAX_TIMER)
. = new_time == timer_duration //return 1 on no change
timer_duration = new_time
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 1b83bb4b96..28b9796bb6 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -400,12 +400,11 @@
"You begin adding wires to [src]... ")
playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1)
if(do_after(user, 60, target = src))
- if(constructionStep != CONSTRUCTION_GUTTED || B.get_amount() < 5 || !B)
+ if(constructionStep != CONSTRUCTION_GUTTED || !B.use_tool(src, user, 0, 5))
return
user.visible_message("[user] adds wires to [src]. ", \
"You wire [src]. ")
playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1)
- B.use(5)
constructionStep = CONSTRUCTION_WIRES_EXPOSED
update_icon()
return
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index f4f308c490..4a0042e1da 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -205,11 +205,9 @@
return
if(1)
if(istype(W, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/coil = W
- if(coil.get_amount() < 5)
+ if(!W.use_tool(src, user, 0, 5))
to_chat(user, "You need more cable for this! ")
else
- coil.use(5)
buildstage = 2
to_chat(user, "You wire \the [src]. ")
update_icon()
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 067f10fa0f..3a79ff3c82 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -396,7 +396,6 @@ GLOBAL_LIST_EMPTY(network_holopads)
Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY)
Hologram.Impersonation = user
- Hologram.copy_known_languages_from(user,replace = TRUE)
Hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it.
Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them.
Hologram.setAnchored(TRUE)//So space wind cannot drag it.
@@ -555,9 +554,8 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
Hologram.alpha = 170
Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY)
Hologram.dir = SOUTH //for now
- Hologram.grant_all_languages(omnitongue=TRUE)
var/datum/language_holder/holder = Hologram.get_language_holder()
- holder.selected_default_language = record.language
+ holder.selected_language = record.language
Hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it.
Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them.
Hologram.setAnchored(TRUE)//So space wind cannot drag it.
@@ -649,7 +647,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
return
if(HOLORECORD_LANGUAGE)
var/datum/language_holder/holder = replay_holo.get_language_holder()
- holder.selected_default_language = entry[2]
+ holder.selected_language = entry[2]
if(HOLORECORD_PRESET)
var/preset_type = entry[2]
var/datum/preset_holoimage/H = new preset_type
@@ -672,6 +670,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
updateDialog()
/obj/effect/overlay/holo_pad_hologram
+ initial_language_holder = /datum/language_holder/universal
var/mob/living/Impersonation
var/datum/holocall/HC
diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm
index d3247253c6..63ef40e045 100644
--- a/code/game/machinery/launch_pad.dm
+++ b/code/game/machinery/launch_pad.dm
@@ -68,9 +68,9 @@
if(teleporting)
return
if(!isnull(x))
- x_offset = CLAMP(x, -range, range)
+ x_offset = clamp(x, -range, range)
if(!isnull(y))
- y_offset = CLAMP(y, -range, range)
+ y_offset = clamp(y, -range, range)
/obj/machinery/launchpad/proc/doteleport(mob/user, sending)
if(teleporting)
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index b0e26ce129..c144616c05 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -55,9 +55,9 @@
new /obj/item/pipe_meter(loc)
wait = world.time + 15
if(href_list["layer_up"])
- piping_layer = CLAMP(++piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
+ piping_layer = clamp(++piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
if(href_list["layer_down"])
- piping_layer = CLAMP(--piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
+ piping_layer = clamp(--piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
return
/obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params)
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index 24fd956677..8545e6f35c 100755
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -53,6 +53,11 @@
using_power = FALSE
update_icon()
+/obj/machinery/recharger/Exited(atom/movable/M, atom/newloc)
+ . = ..()
+ if(charging == M)
+ setCharging()
+
/obj/machinery/recharger/attackby(obj/item/G, mob/user, params)
if(istype(G, /obj/item/wrench))
if(charging)
@@ -109,15 +114,12 @@
add_fingerprint(user)
if(charging)
charging.update_icon()
- charging.forceMove(drop_location())
user.put_in_hands(charging)
- setCharging(null)
/obj/machinery/recharger/attack_tk(mob/user)
if(charging)
charging.update_icon()
charging.forceMove(drop_location())
- setCharging(null)
/obj/machinery/recharger/process()
if(stat & (NOPOWER|BROKEN) || !anchored)
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index c152e302fe..6793d361b5 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -160,10 +160,7 @@
to_chat(user, "You need one length of cable to repair [src]! ")
return
to_chat(user, "You begin to replace the wires... ")
- if(do_after(user, 30, target = src))
- if(coil.get_amount() < 1)
- return
- coil.use(1)
+ if(W.use_tool(src, user, 30, 1))
obj_integrity = max_integrity
stat &= ~BROKEN
to_chat(user, "You repair \the [src]. ")
@@ -270,7 +267,7 @@
use_stored_power(50)
/obj/machinery/shieldwallgen/proc/use_stored_power(amount)
- power = CLAMP(power - amount, 0, maximum_stored_power)
+ power = clamp(power - amount, 0, maximum_stored_power)
update_activity()
/obj/machinery/shieldwallgen/proc/update_activity()
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index af8f1af9f9..60d9a7376c 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -127,7 +127,7 @@
settableTemperatureRange = cap * 30
efficiency = (cap + 1) * 10000
- targetTemperature = CLAMP(targetTemperature,
+ targetTemperature = clamp(targetTemperature,
max(settableTemperatureMedian - settableTemperatureRange, TCMB),
settableTemperatureMedian + settableTemperatureRange)
@@ -230,7 +230,7 @@
target= text2num(target) + T0C
. = TRUE
if(.)
- targetTemperature = CLAMP(round(target),
+ targetTemperature = clamp(round(target),
max(settableTemperatureMedian - settableTemperatureRange, TCMB),
settableTemperatureMedian + settableTemperatureRange)
if("eject")
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index b8d4ef26e8..50984c43b8 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -195,7 +195,7 @@
/obj/machinery/syndicatebomb/proc/settings(mob/user)
var/new_timer = input(user, "Please set the timer.", "Timer", "[timer_set]") as num
if(in_range(src, user) && isliving(user)) //No running off and setting bombs from across the station
- timer_set = CLAMP(new_timer, minimum_timer, maximum_timer)
+ timer_set = clamp(new_timer, minimum_timer, maximum_timer)
loc.visible_message("[icon2html(src, viewers(src))] timer set for [timer_set] seconds. ")
if(alert(user,"Would you like to start the countdown now?",,"Yes","No") == "Yes" && in_range(src, user) && isliving(user))
if(defused || active)
diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm
index 4e3e11d1e2..a9b6736f05 100644
--- a/code/game/machinery/telecomms/broadcasting.dm
+++ b/code/game/machinery/telecomms/broadcasting.dm
@@ -100,7 +100,7 @@
obj/source, // the originating radio
frequency, // the frequency the signal is taking place on
atom/movable/virtualspeaker/speaker, // representation of the method's speaker
- datum/language/language, // the langauge of the message
+ datum/language/language, // the language of the message
message, // the text content of the message
spans // the list of spans applied to the message
)
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index 985c1166b7..16ae158ea7 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -70,7 +70,7 @@
com.target = null
visible_message("Cannot authenticate locked on coordinates. Please reinstate coordinate matrix. ")
return
- if (ismovableatom(M))
+ if (ismovable(M))
if(do_teleport(M, com.target, channel = TELEPORT_CHANNEL_BLUESPACE))
use_power(5000)
diff --git a/code/game/machinery/toylathe.dm b/code/game/machinery/toylathe.dm
deleted file mode 100644
index c679f3f983..0000000000
--- a/code/game/machinery/toylathe.dm
+++ /dev/null
@@ -1,415 +0,0 @@
-#define AUTOYLATHE_MAIN_MENU 1
-#define AUTOYLATHE_CATEGORY_MENU 2
-#define AUTOYLATHE_SEARCH_MENU 3
-
-/obj/machinery/autoylathe
- name = "autoylathe"
- desc = "It produces toys using plastic, metal and glass."
- icon_state = "autolathe"
- density = TRUE
- use_power = IDLE_POWER_USE
- idle_power_usage = 10
- active_power_usage = 100
- circuit = /obj/item/circuitboard/machine/autoylathe
- layer = BELOW_OBJ_LAYER
-
- var/operating = FALSE
- var/list/L = list()
- var/list/LL = list()
- var/hacked = FALSE
- var/disabled = 0
- var/shocked = FALSE
- var/hack_wire
- var/disable_wire
- var/shock_wire
-
- var/busy = FALSE
- var/prod_coeff = 1
-
- var/datum/design/being_built
- var/datum/techweb/stored_research
- var/list/datum/design/matching_designs
- var/selected_category
- var/screen = 1
-
- var/list/categories = list(
- "Toys",
- "Figurines",
- "Pistols",
- "Rifles",
- "Heavy",
- "Melee",
- "Armor",
- "Adult",
- "Misc",
- "Imported"
- )
-
-/obj/machinery/autoylathe/Initialize()
- var/static/list/allowed_materials = list(
- /datum/material/iron,
- /datum/material/glass,
- /datum/material/plastic
- )
- AddComponent(/datum/component/material_container, allowed_materials, 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert))
- . = ..()
-
- wires = new /datum/wires/autoylathe(src)
- stored_research = new /datum/techweb/specialized/autounlocking/autoylathe
- matching_designs = list()
-
-/obj/machinery/autoylathe/Destroy()
- QDEL_NULL(wires)
- return ..()
-
-/obj/machinery/autoylathe/ui_interact(mob/user)
- . = ..()
- if(!is_operational())
- return
-
- if(shocked && !(stat & NOPOWER))
- shock(user,50)
-
- var/dat
-
- switch(screen)
- if(AUTOYLATHE_MAIN_MENU)
- dat = main_win(user)
- if(AUTOYLATHE_CATEGORY_MENU)
- dat = category_win(user,selected_category)
- if(AUTOYLATHE_SEARCH_MENU)
- dat = search_win(user)
-
- var/datum/browser/popup = new(user, "Autoylathe", name, 400, 500)
- popup.set_content(dat)
- popup.open()
-
-/obj/machinery/autoylathe/on_deconstruction()
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- materials.retrieve_all()
-
-/obj/machinery/autoylathe/attackby(obj/item/O, mob/user, params)
- if (busy)
- to_chat(user, "The autoylathe is busy. Please wait for completion of previous operation. ")
- return TRUE
-
- if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", O))
- updateUsrDialog()
- return TRUE
-
- if(default_deconstruction_crowbar(O))
- return TRUE
-
- if(panel_open && is_wire_tool(O))
- wires.interact(user)
- return TRUE
-
- if(user.a_intent == INTENT_HARM) //so we can hit the machine
- return ..()
-
- if(stat)
- return TRUE
-
- if(istype(O, /obj/item/disk/design_disk))
- user.visible_message("[user] begins to load \the [O] in \the [src]...",
- "You begin to load a design from \the [O]...",
- "You hear the chatter of a floppy drive.")
- busy = TRUE
- var/obj/item/disk/design_disk/D = O
- if(do_after(user, 14.4, target = src))
- for(var/B in D.blueprints)
- if(B)
- stored_research.add_design(B)
- busy = FALSE
- return TRUE
-
- return ..()
-
-/obj/machinery/autoylathe/proc/AfterMaterialInsert(obj/item/item_inserted, id_inserted, amount_inserted)
- if(item_inserted.custom_materials?.len && item_inserted.custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)])
- flick("autolathe_r",src)//plays glass insertion animation by default otherwise
- else
- flick("autolathe_o",src)//plays metal insertion animation
-
- use_power(min(1000, amount_inserted / 100))
- updateUsrDialog()
-
-/obj/machinery/autoylathe/Topic(href, href_list)
- if(..())
- return
- if (!busy)
- if(href_list["menu"])
- screen = text2num(href_list["menu"])
- updateUsrDialog()
-
- if(href_list["category"])
- selected_category = href_list["category"]
- updateUsrDialog()
-
- if(href_list["make"])
-
- /////////////////
- //href protection
- being_built = stored_research.isDesignResearchedID(href_list["make"])
- if(!being_built)
- return
-
- var/multiplier = text2num(href_list["multiplier"])
- var/is_stack = ispath(being_built.build_path, /obj/item/stack)
- multiplier = CLAMP(multiplier,1,50)
-
- /////////////////
-
- var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient
- var/total_amount = 0
- for(var/MAT in being_built.materials)
- total_amount += being_built.materials[MAT]
- var/power = max(2000, (total_amount)*multiplier/5) //Change this to use all materials
-
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
-
- var/list/materials_used = list()
- var/list/custom_materials = list() //These will apply their material effect, This should usually only be one.
-
- for(var/MAT in being_built.materials)
- var/datum/material/used_material = MAT
- var/amount_needed = being_built.materials[MAT] * coeff * multiplier
- if(istext(used_material)) //This means its a category
- var/list/list_to_show = list()
- for(var/i in SSmaterials.materials_by_category[used_material])
- if(materials.materials[i] > 0)
- list_to_show += i
-
- used_material = input("Choose [used_material]", "Custom Material") as null|anything in list_to_show
- if(!used_material)
- return //Didn't pick any material, so you can't build shit either.
- custom_materials[used_material] += amount_needed
-
- materials_used[used_material] = amount_needed
-
- if(materials.has_materials(materials_used))
- busy = TRUE
- use_power(power)
- icon_state = "autolathe_n"
- var/time = is_stack ? 32 : 32*coeff*multiplier
- addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack), time)
- else
- to_chat(usr, "Not enough materials for this operation. ")
-
- if(href_list["search"])
- matching_designs.Cut()
-
- for(var/v in stored_research.researched_designs)
- var/datum/design/D = SSresearch.techweb_design_by_id(v)
- if(findtext(D.name,href_list["to_search"]))
- matching_designs.Add(D)
- updateUsrDialog()
- else
- to_chat(usr, "The autoylathe is busy. Please wait for completion of previous operation. ")
-
- updateUsrDialog()
-
- return
-
-/obj/machinery/autoylathe/proc/make_item(power, list/materials_used, list/picked_materials, multiplier, coeff, is_stack)
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- var/atom/A = drop_location()
- use_power(power)
- materials.use_materials(materials_used)
-
- if(is_stack)
- var/obj/item/stack/N = new being_built.build_path(A, multiplier)
- N.update_icon()
- N.autoylathe_crafted(src)
- else
- for(var/i=1, i<=multiplier, i++)
- var/obj/item/new_item = new being_built.build_path(A)
- new_item.autoylathe_crafted(src)
- if(length(picked_materials))
- new_item.set_custom_materials(picked_materials, 1 / multiplier) //Ensure we get the non multiplied amount
- icon_state = "autolathe"
- busy = FALSE
- updateDialog()
-
-/obj/machinery/autoylathe/RefreshParts()
- var/T = 0
- for(var/obj/item/stock_parts/matter_bin/MB in component_parts)
- T += MB.rating*75000
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- materials.max_amount = T
- T=1.2
- for(var/obj/item/stock_parts/manipulator/M in component_parts)
- T -= M.rating*0.2
- prod_coeff = CLAMP(T,1,0) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4
-
-/obj/machinery/autoylathe/proc/main_win(mob/user)
- var/dat = "Autoylathe Menu: "
- dat += materials_printout()
-
- dat += "
"
-
- var/line_length = 1
- dat += "
"
-
- for(var/C in categories)
- if(line_length > 2)
- dat += " "
- line_length = 1
-
- dat += "[C] "
- line_length++
-
- dat += "
"
- return dat
-
-/obj/machinery/autoylathe/proc/category_win(mob/user,selected_category)
- var/dat = "Return to main menu "
- dat += "Browsing [selected_category]: "
- dat += materials_printout()
-
- for(var/v in stored_research.researched_designs)
- var/datum/design/D = SSresearch.techweb_design_by_id(v)
- if(!(selected_category in D.category))
- continue
-
- if(disabled || !can_build(D))
- dat += "
[D.name] "
- else
- dat += "
[D.name] "
-
- if(ispath(D.build_path, /obj/item/stack))
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- var/max_multiplier
- for(var/datum/material/mat in D.materials)
- max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat]))
- if (max_multiplier>10 && !disabled)
- dat += "
x10 "
- if (max_multiplier>25 && !disabled)
- dat += "
x25 "
- if(max_multiplier > 0 && !disabled)
- dat += "
x[max_multiplier] "
- else
- if(!disabled && can_build(D, 5))
- dat += "
x5 "
- if(!disabled && can_build(D, 10))
- dat += "
x10 "
-
- dat += "[get_design_cost(D)]
"
-
- dat += "
"
- return dat
-
-/obj/machinery/autoylathe/proc/search_win(mob/user)
- var/dat = "Return to main menu "
- dat += "Search results: "
- dat += materials_printout()
-
- for(var/v in matching_designs)
- var/datum/design/D = v
- if(disabled || !can_build(D))
- dat += "
[D.name] "
- else
- dat += "
[D.name] "
-
- if(ispath(D.build_path, /obj/item/stack))
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- var/max_multiplier
- for(var/datum/material/mat in D.materials)
- max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat]))
- if (max_multiplier>10 && !disabled)
- dat += "
x10 "
- if (max_multiplier>25 && !disabled)
- dat += "
x25 "
- if(max_multiplier > 0 && !disabled)
- dat += "
x[max_multiplier] "
-
- dat += "[get_design_cost(D)]
"
-
- dat += "
"
- return dat
-
-/obj/machinery/autoylathe/proc/materials_printout()
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3 "
- for(var/mat_id in materials.materials)
- var/datum/material/M = mat_id
- var/mineral_amount = materials.materials[mat_id]
- if(mineral_amount > 0)
- dat += "[M.name] amount: [mineral_amount] cm3 "
- return dat
-
-/obj/machinery/autoylathe/proc/can_build(datum/design/D, amount = 1)
- if(D.make_reagents.len)
- return FALSE
-
- var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff)
-
- var/list/required_materials = list()
-
- for(var/i in D.materials)
- required_materials[i] = D.materials[i] * coeff * amount
-
- var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
-
- return materials.has_materials(required_materials)
-
-/obj/machinery/autoylathe/proc/get_design_cost(datum/design/D)
- var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff)
- var/dat
- for(var/i in D.materials)
- if(istext(i)) //Category handling
- dat += "[D.materials[i] * coeff] [i]"
- else
- var/datum/material/M = i
- dat += "[D.materials[i] * coeff] [M.name] "
- return dat
-
-/obj/machinery/autoylathe/proc/reset(wire)
- switch(wire)
- if(WIRE_HACK)
- if(!wires.is_cut(wire))
- adjust_hacked(FALSE)
- if(WIRE_SHOCK)
- if(!wires.is_cut(wire))
- shocked = FALSE
- if(WIRE_DISABLE)
- if(!wires.is_cut(wire))
- disabled = FALSE
-
-/obj/machinery/autoylathe/proc/shock(mob/user, prb)
- if(stat & (BROKEN|NOPOWER)) // unpowered, no shock
- return FALSE
- if(!prob(prb))
- return FALSE
- var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
- s.set_up(5, 1, src)
- s.start()
- if (electrocute_mob(user, get_area(src), src, 0.7, TRUE))
- return TRUE
- else
- return FALSE
-
-/obj/machinery/autoylathe/proc/adjust_hacked(state)
- hacked = state
- for(var/id in SSresearch.techweb_designs)
- var/datum/design/D = SSresearch.techweb_designs[id]
- if((D.build_type & AUTOYLATHE) && ("hacked" in D.category))
- if(hacked)
- stored_research.add_design(D)
- else
- stored_research.remove_design(D)
-
-/obj/machinery/autoylathe/hacked/Initialize()
- . = ..()
- adjust_hacked(TRUE)
-
-//Called when the object is constructed by an autoylathe
-//Has a reference to the autoylathe so you can do !!FUN!! things with hacked lathes
-/obj/item/proc/autoylathe_crafted(obj/machinery/autoylathe/A)
- return
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index 7ff8696084..4a4d58ea73 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -530,7 +530,6 @@
equip_cooldown = 0
var/obj/item/gun/medbeam/mech/medigun
custom_materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000)
- material_flags = MATERIAL_NO_EFFECTS
/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/Initialize()
. = ..()
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index f1fa5ddd20..65aa001fe1 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -484,7 +484,7 @@
/obj/item/punching_glove/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(!..())
- if(ismovableatom(hit_atom))
+ if(ismovable(hit_atom))
var/atom/movable/AM = hit_atom
AM.safe_throw_at(get_edge_target_turf(AM,get_dir(src, AM)), 7, 2)
qdel(src)
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 9acc8921b9..93228c7fee 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -19,6 +19,7 @@
var/processing_queue = 0
var/screen = "main"
var/temp
+ var/offstation_security_levels = TRUE
var/list/part_sets = list(
"Cyborg",
"Ripley",
@@ -72,6 +73,8 @@
for(var/obj/item/stock_parts/manipulator/Ml in component_parts)
T += Ml.rating
time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01)
+ var/obj/item/circuitboard/machine/mechfab/C = circuit
+ offstation_security_levels = C.offstation_security_levels
/obj/machinery/mecha_part_fabricator/examine(mob/user)
. = ..()
@@ -106,13 +109,27 @@
if(!(set_name in D.category))
continue
output += "[output_part_info(D)]
\["
- if(check_resources(D))
+ if(check_clearance(D) && check_resources(D))
output += "
Build | "
output += "
Add to queue \]\[
? \]
"
return output
+/obj/machinery/mecha_part_fabricator/proc/check_clearance(datum/design/D)
+ if(!(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z)) && !ISINRANGE(GLOB.security_level, D.min_security_level, D.max_security_level))
+ return FALSE
+ return TRUE
+
/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D)
- var/output = "[initial(D.name)] (Cost: [output_part_cost(D)]) [get_construction_time_w_coeff(D)/10]sec"
+ var/clearance = !(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z))
+ var/sec_text = ""
+ if(clearance && (D.min_security_level > SEC_LEVEL_GREEN || D.max_security_level < SEC_LEVEL_DELTA))
+ sec_text = " (Allowed security levels: "
+ for(var/n in D.min_security_level to D.max_security_level)
+ sec_text += NUM2SECLEVEL(n)
+ if(n + 1 <= D.max_security_level)
+ sec_text += ", "
+ sec_text += ") "
+ var/output = "[initial(D.name)] (Cost: [output_part_cost(D)]) [sec_text][get_construction_time_w_coeff(D)/10]sec"
return output
/obj/machinery/mecha_part_fabricator/proc/output_part_cost(datum/design/D)
@@ -171,7 +188,6 @@
var/location = get_step(src,(dir))
var/obj/item/I = new D.build_path(location)
- I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this.
I.set_custom_materials(res_coef)
say("\The [I] is complete.")
being_built = null
@@ -216,6 +232,11 @@
while(D)
if(stat&(NOPOWER|BROKEN))
return FALSE
+ if(!check_clearance(D))
+ say("Security level not met. Queue processing stopped.")
+ temp = {"Security level not met to build next part.
+ Try again | Return "}
+ return FALSE
if(!check_resources(D))
say("Not enough resources. Queue processing stopped.")
temp = {"Not enough resources to build next part.
@@ -236,7 +257,7 @@
for(var/datum/design/D in queue)
i++
var/obj/part = D.build_path
- output += ""
+ output += " "
output += initial(part.name) + " - "
output += "[i>1?"↑ ":null] "
output += "[i↓ ":null] "
@@ -440,3 +461,7 @@
return FALSE
return TRUE
+
+/obj/machinery/mecha_part_fabricator/offstation
+ offstation_security_levels = FALSE
+ circuit = /obj/item/circuitboard/machine/mechfab/offstation
diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm
index de1c035000..19b6d0a9bd 100644
--- a/code/game/mecha/mecha_construction_paths.dm
+++ b/code/game/mecha/mecha_construction_paths.dm
@@ -3,6 +3,46 @@
////////////////////////////////
/datum/component/construction/mecha
var/base_icon
+ var/looky_helpy = TRUE
+
+/datum/component/construction/mecha/examine(mob/user)
+ . = ..()
+ if(looky_helpy)
+ switch(steps[index]["key"])
+ if(TOOL_WRENCH)
+ . += "The mech could be wrenched into place. "
+ if(TOOL_SCREWDRIVER)
+ . += "The mech could be screwed into place. "
+ if(TOOL_WIRECUTTER)
+ . += "The mech wires could be trimmed into place. "
+ if(/obj/item/stack/cable_coil)
+ . += "The mech could use some wiring . "
+ if(/obj/item/circuitboard)
+ . += "The mech could use a type ofcircuitboard . "
+ if(/obj/item/stock_parts/scanning_module)
+ . += "The mech could use a scanning stock part . "
+ if(/obj/item/stock_parts/capacitor)
+ . += "The mech could use a power based stock part . "
+ if(/obj/item/stock_parts/cell)
+ . += "The mech could use a power source . "
+ if(/obj/item/stack/sheet/metal)
+ . += "The mech could use some sheets of metal . "
+ if(/obj/item/stack/sheet/plasteel)
+ . += "The mech could use some sheets of strong steel . "
+ if(/obj/item/bikehorn)
+ . += "HONK IT!. "
+ if(/obj/item/clothing/mask/gas/clown_hat)
+ . += "GIVE IT CLOWN MAKEUP HONK!. "
+ if(/obj/item/clothing/shoes/clown_shoes)
+ . += "GIVE IT GOOFY SHOES HONK HONK!. "
+ if(/obj/item/mecha_parts/part)
+ . += "The mech could use a mech part . "
+ if(/obj/item/stack/ore/bluespace_crystal)
+ . += "The mech could use a crystal of sorts. "
+ if(/obj/item/assembly/signaler/anomaly)
+ . += "The mech could use a anomaly of sorts. "
+ else
+ return
/datum/component/construction/mecha/spawn_result()
if(!result)
diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm
index 581283d339..53768fe9a9 100644
--- a/code/game/mecha/mecha_defense.dm
+++ b/code/game/mecha/mecha_defense.dm
@@ -220,8 +220,7 @@
return
else if(istype(W, /obj/item/stack/cable_coil))
if(state == 3 && (internal_damage & MECHA_INT_SHORT_CIRCUIT))
- var/obj/item/stack/cable_coil/CC = W
- if(CC.use(2))
+ if(W.use_tool(src, user, 0, 2))
clearInternalDamage(MECHA_INT_SHORT_CIRCUIT)
to_chat(user, "You replace the fused wires. ")
else
diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index 0e14af75a9..bacb8c6669 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -55,8 +55,12 @@
M.buckling = null
return FALSE
- if(M.pulledby && buckle_prevents_pull)
- M.pulledby.stop_pulling()
+ if(M.pulledby)
+ if(buckle_prevents_pull)
+ M.pulledby.stop_pulling()
+ else if(isliving(M.pulledby))
+ var/mob/living/L = M.pulledby
+ L.reset_pull_offsets(M, TRUE)
if(!check_loc && M.loc != loc)
M.forceMove(loc)
@@ -137,4 +141,7 @@
"You unbuckle yourself from [src]. ",\
"You hear metal clanking. ")
add_fingerprint(user)
+ if(isliving(M.pulledby))
+ var/mob/living/L = M.pulledby
+ L.set_pull_offsets(M, L.grab_state)
return M
diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm
index 3b5a029df4..5276062121 100644
--- a/code/game/objects/effects/alien_acid.dm
+++ b/code/game/objects/effects/alien_acid.dm
@@ -17,7 +17,7 @@
target = get_turf(src)
if(acid_amt)
- acid_level = min( (CLAMP(round(acid_amt, 1), 0, INFINITY)) *acid_pwr, 12000) //capped so the acid effect doesn't last a half hour on the floor.
+ acid_level = min( (clamp(round(acid_amt, 1), 0, INFINITY)) *acid_pwr, 12000) //capped so the acid effect doesn't last a half hour on the floor.
//handle APCs and newscasters and stuff nicely
pixel_x = target.pixel_x + rand(-4,4)
diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm
index 8f0ce83c82..979b811bc5 100644
--- a/code/game/objects/effects/effects.dm
+++ b/code/game/objects/effects/effects.dm
@@ -7,7 +7,7 @@
move_resist = INFINITY
obj_flags = 0
- vis_flags = NONE
+ vis_flags = VIS_INHERIT_PLANE
/obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
return
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 04f14692e3..992e9c84a7 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -313,6 +313,11 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
name = "carpspawn"
icon_state = "carp_spawn"
+// lone op (optional)
+/obj/effect/landmark/loneopspawn
+ name = "loneop+ninjaspawn"
+ icon_state = "snukeop_spawn"
+
// observer-start.
/obj/effect/landmark/observer_start
name = "Observer-Start"
@@ -483,7 +488,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
if(!SSmapping.station_room_templates[t])
log_world("Station room spawner placed at ([T.x], [T.y], [T.z]) has invalid ruin name of \"[t]\" in its list")
templates -= t
- template_name = pickweightAllowZero(templates)
+ template_name = pickweight(templates, 0)
if(!template_name)
GLOB.stationroom_landmarks -= src
qdel(src)
@@ -492,7 +497,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
if(!template)
return FALSE
testing("Room \"[template_name]\" placed at ([T.x], [T.y], [T.z])")
- template.load(T, centered = FALSE)
+ template.load(T, centered = FALSE, orientation = dir, rotate_placement_to_orientation = TRUE)
template.loaded++
GLOB.stationroom_landmarks -= src
qdel(src)
@@ -504,7 +509,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
templates = list("Engine SM" = 3, "Engine Singulo" = 3, "Engine Tesla" = 3)
icon = 'icons/rooms/box/engine.dmi'
-
/obj/effect/landmark/stationroom/box/engine/New()
. = ..()
templates = CONFIG_GET(keyed_list/box_random_engine)
@@ -513,3 +517,9 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
/obj/effect/landmark/stationroom/lavaland/station
templates = list("Public Mining Base" = 3)
icon = 'icons/rooms/Lavaland/Mining.dmi'
+
+// handled in portals.dm, id connected to one-way portal
+/obj/effect/landmark/portal_exit
+ name = "portal exit"
+ icon_state = "portal_exit"
+ var/id
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 2fb068a29b..1fe5e46e25 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -170,7 +170,7 @@
if(!victim.client || !istype(victim))
return
to_chat(victim, "You feel fast! ")
- victim.add_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
+ victim.add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb)
sleep(duration)
- victim.remove_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB)
+ victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb)
to_chat(victim, "You slow down. ")
diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm
index 596e428c7f..b310119827 100644
--- a/code/game/objects/effects/overlays.dm
+++ b/code/game/objects/effects/overlays.dm
@@ -49,5 +49,6 @@
/obj/effect/overlay/vis
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
anchored = TRUE
+ vis_flags = NONE
var/unused = 0 //When detected to be unused it gets set to world.time, after a while it gets removed
var/cache_expiration = 2 MINUTES // overlays which go unused for 2 minutes get cleaned up
diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm
index 04e194f6c3..504b931685 100644
--- a/code/game/objects/effects/portals.dm
+++ b/code/game/objects/effects/portals.dm
@@ -29,6 +29,7 @@
var/allow_anchored = FALSE
var/innate_accuracy_penalty = 0
var/last_effect = 0
+ var/force_teleport = FALSE
/obj/effect/portal/anom
name = "wormhole"
@@ -162,7 +163,7 @@
no_effect = TRUE
else
last_effect = world.time
- if(do_teleport(M, real_target, innate_accuracy_penalty, no_effects = no_effect, channel = teleport_channel))
+ if(do_teleport(M, real_target, innate_accuracy_penalty, no_effects = no_effect, channel = teleport_channel, forced = force_teleport))
if(istype(M, /obj/item/projectile))
var/obj/item/projectile/P = M
P.ignore_source_check = TRUE
@@ -183,3 +184,47 @@
else
real_target = get_turf(linked)
return real_target
+
+/obj/effect/portal/permanent
+ name = "permanent portal"
+ desc = "An unwavering portal that will never fade."
+ hardlinked = FALSE // dont qdel my portal nerd
+ force_teleport = TRUE // force teleports because they're a mapmaker tool
+ var/id // var edit or set id in map editor
+
+/obj/effect/portal/permanent/proc/set_linked()
+ if(!id)
+ return
+ for(var/obj/effect/portal/permanent/P in GLOB.portals - src)
+ if(P.id == id)
+ P.linked = src
+ linked = P
+ break
+
+/obj/effect/portal/permanent/teleport(atom/movable/M, force = FALSE)
+ set_linked() // update portal links
+ . = ..()
+
+/obj/effect/portal/permanent/one_way // doesn't have a return portal, can have multiple exits, /obj/effect/landmark/portal_exit to mark them
+ name = "one-way portal"
+ desc = "You get the feeling that this might not be the safest thing you've ever done."
+
+/obj/effect/portal/permanent/one_way/set_linked()
+ if(!id)
+ return
+ var/list/possible_turfs = list()
+ for(var/obj/effect/landmark/portal_exit/PE in GLOB.landmarks_list)
+ if(PE.id == id)
+ var/turf/T = get_turf(PE)
+ if(T)
+ possible_turfs |= T
+ if(possible_turfs.len)
+ hard_target = pick(possible_turfs)
+
+/obj/effect/portal/permanent/one_way/one_use
+ name = "one-use portal"
+ desc = "This is probably the worst decision you'll ever make in your life."
+
+/obj/effect/portal/permanent/one_way/one_use/teleport(atom/movable/M, force = FALSE)
+ . = ..()
+ qdel(src)
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 2cdf57bf70..9893e9c7d3 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -521,7 +521,7 @@
/obj/item/gun/ballistic/automatic/toy/pistol = 5,
/obj/item/firing_pin = 5,
/obj/item/grenade/empgrenade = 15,
- /obj/item/clothing/gloves/combat = 10,
+ /obj/item/clothing/gloves/tackler/combat/insulated = 10,
/obj/item/clothing/shoes/sneakers/noslip = 10
)
diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm
index 01edd82ccb..80178c95c4 100644
--- a/code/game/objects/effects/step_triggers.dm
+++ b/code/game/objects/effects/step_triggers.dm
@@ -52,7 +52,7 @@
var/list/affecting = list()
/obj/effect/step_trigger/thrower/Trigger(atom/A)
- if(!A || !ismovableatom(A))
+ if(!A || !ismovable(A))
return
var/atom/movable/AM = A
var/curtiles = 0
diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm
index d9f231b318..b63a126c5d 100644
--- a/code/game/objects/empulse.dm
+++ b/code/game/objects/empulse.dm
@@ -7,7 +7,7 @@
if(log)
message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
- log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
+ log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
if(heavy_range >= 1)
new /obj/effect/temp_visual/emp/pulse(epicenter)
@@ -29,4 +29,4 @@
T.emp_act(EMP_LIGHT)
else if(distance <= light_range)
T.emp_act(EMP_LIGHT)
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 5c80b81ba5..949ed050f5 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -132,6 +132,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder!
+ ///Skills vars
+ //list of skill PATHS exercised when using this item. An associated bitfield can be set to indicate additional ways the skill is used by this specific item.
+ var/list/datum/skill/used_skills
+ var/skill_difficulty = THRESHOLD_COMPETENT //how difficult it's to use this item in general.
+ var/skill_gain = DEF_SKILL_GAIN //base skill value gain from using this item.
+
/obj/item/Initialize()
if (attack_verb)
@@ -392,7 +398,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
if(item_flags & DROPDEL)
qdel(src)
item_flags &= ~IN_INVENTORY
- SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user)
+ if(SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user) & COMPONENT_DROPPED_RELOCATION)
+ . = ITEM_RELOCATED_BY_DROPPED
user.update_equipment_speed_mods()
// called just as an item is picked up (loc is not yet changed)
@@ -433,11 +440,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
// for items that can be placed in multiple slots
// note this isn't called during the initial dressing of a player
/obj/item/proc/equipped(mob/user, slot)
- SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot)
- for(var/X in actions)
- var/datum/action/A = X
- if(item_action_slot_check(slot, user, A)) //some items only give their actions buttons when in a specific slot.
- A.Grant(user)
+ . = SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot)
+ if(!(. & COMPONENT_NO_GRANT_ACTIONS))
+ for(var/X in actions)
+ var/datum/action/A = X
+ if(item_action_slot_check(slot, user, A)) //some items only give their actions buttons when in a specific slot.
+ A.Grant(user)
item_flags |= IN_INVENTORY
user.update_equipment_speed_mods()
@@ -781,7 +789,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
// Called when a mob tries to use the item as a tool.
// Handles most checks.
-/obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks)
+/obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks, skill_gain_mult = 1, max_level = INFINITY)
// No delay means there is no start message, and no reason to call tool_start_check before use_tool.
// Run the start check here so we wouldn't have to call it manually.
if(!delay && !tool_start_check(user, amount))
@@ -793,6 +801,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
play_tool_sound(target, volume)
if(delay)
+ if(user.mind && used_skills)
+ delay = user.mind.skill_holder.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, NONE, FALSE)
+
// Create a callback with checks that would be called every tick by do_after.
var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks)
@@ -817,6 +828,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
if(delay >= MIN_TOOL_SOUND_DELAY)
play_tool_sound(target, volume)
+ if(user.mind && used_skills && skill_gain_mult)
+ for(var/skill in used_skills)
+ if(!(used_skills[skill] & SKILL_TRAINING_TOOL))
+ continue
+ user.mind.skill_holder.auto_gain_experience(skill, skill_gain*skill_gain_mult, GET_STANDARD_LVL(max_level))
+
return TRUE
// Called before use_tool if there is a delay, or by use_tool if there isn't.
diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm
index 2daf6f0c0b..6648db46c4 100644
--- a/code/game/objects/items/cardboard_cutouts.dm
+++ b/code/game/objects/items/cardboard_cutouts.dm
@@ -6,17 +6,42 @@
icon_state = "cutout_basic"
w_class = WEIGHT_CLASS_BULKY
resistance_flags = FLAMMABLE
- // Possible restyles for the cutout;
- // add an entry in change_appearance() if you add to here
- var/list/possible_appearances = list("Assistant", "Clown", "Mime",
- "Traitor", "Nuke Op", "Cultist", "Brass Cultist", "Clockwork Cultist",
- "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Xenomorph Maid", "Swarmer",
- "Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon",
- "Laughter Demon", "Private Security Officer", "Securitron", "Gondola", "Monkey")
- var/pushed_over = FALSE //If the cutout is pushed over and has to be righted
- var/deceptive = FALSE //If the cutout actually appears as what it portray and not a discolored version
+ /// Possible restyles for the cutout, add an entry in change_appearance() if you add to here
+ var/static/list/possible_appearances
+ /// If the cutout is pushed over and has to be righted
+ var/pushed_over = FALSE
+ /// If the cutout actually appears as what it portray and not a discolored version
+ var/deceptive = FALSE
- var/lastattacker = null
+/obj/item/cardboard_cutout/Initialize()
+ . = ..()
+ if(possible_appearances)
+ return
+ possible_appearances = sortList(list(
+ "Assistant" = image(icon = src.icon, icon_state = "cutout_greytide"),
+ "Clown" = image(icon = src.icon, icon_state = "cutout_clown"),
+ "Mime" = image(icon = src.icon, icon_state = "cutout_mime"),
+ "Traitor" = image(icon = src.icon, icon_state = "cutout_traitor"),
+ "Nuke Op" = image(icon = src.icon, icon_state = "cutout_fluke"),
+ "Cultist" = image(icon = src.icon, icon_state = "cutout_cultist"),
+ "Brass Cultist" = image(icon = src.icon, icon_state = "cutout_servant"),
+ "Clockwork Cultist" = image(icon = src.icon, icon_state = "cutout_new_servant"),
+ "Revolutionary" = image(icon = src.icon, icon_state = "cutout_viva"),
+ "Wizard" = image(icon = src.icon, icon_state = "cutout_wizard"),
+ "Shadowling" = image(icon = src.icon, icon_state = "cutout_shadowling"),
+ "Xenomorph" = image(icon = src.icon, icon_state = "cutout_fukken_xeno"),
+ "Xenomorph Maid" = image(icon = src.icon, icon_state = "cutout_lusty"),
+ "Swarmer" = image(icon = src.icon, icon_state = "cutout_swarmer"),
+ "Ash Walker" = image(icon = src.icon, icon_state = "cutout_free_antag"),
+ "Deathsquad Officer" = image(icon = src.icon, icon_state = "cutout_deathsquad"),
+ "Ian" = image(icon = src.icon, icon_state = "cutout_ian"),
+ "Slaughter Demon" = image(icon = 'icons/mob/mob.dmi', icon_state = "daemon"),
+ "Laughter Demon" = image(icon = 'icons/mob/mob.dmi', icon_state = "bowmon"),
+ "Private Security Officer" = image(icon = src.icon, icon_state = "cutout_ntsec"),
+ "Securitron" = image(icon = src.icon, icon_state = "cutout_law"),
+ "Gondola" = image(icon = src.icon, icon_state = "cutout_gondola"),
+ "Monkey" = image(icon = src.icon, icon_state = "cutout_monky"),
+ ))
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/cardboard_cutout/attack_hand(mob/living/user)
@@ -76,22 +101,21 @@
push_over()
return BULLET_ACT_HIT
+/**
+ * change_appearance: Changes a skin of the cardboard cutout based on a user's choice
+ *
+ * Arguments:
+ * * crayon The crayon used to change and recolor the cardboard cutout
+ * * user The mob choosing a skin of the cardboard cutout
+ */
/obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user)
- if(!crayon || !user)
- return
- if(pushed_over)
- to_chat(user, "Right [src] first! ")
- return
- if(crayon.check_empty(user))
- return
- if(crayon.is_capped)
- to_chat(user, "Take the cap off first! ")
- return
- var/new_appearance = input(user, "Choose a new appearance for [src].", "26th Century Deception") as null|anything in possible_appearances
- if(!new_appearance || !crayon || !user.canUseTopic(src))
+ var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/check_menu, user, crayon), radius = 36, require_near = TRUE)
+ if(!new_appearance)
return
if(!do_after(user, 10, FALSE, src, TRUE))
- return
+ return FALSE
+ if(!check_menu(user, crayon))
+ return FALSE
user.visible_message("[user] gives [src] a new look. ", "Voila! You give [src] a new look. ")
crayon.use_charges(1)
crayon.check_empty(user)
@@ -196,7 +220,33 @@
name = "monkey ([rand(1, 999)])"
desc = "A cardboard cutout of a monkey."
icon_state = "cutout_monky"
- return 1
+ else
+ return FALSE
+ return TRUE
+
+/**
+ * check_menu: Checks if we are allowed to interact with a radial menu
+ *
+ * Arguments:
+ * * user The mob interacting with a menu
+ * * crayon The crayon used to interact with a menu
+ */
+/obj/item/cardboard_cutout/proc/check_menu(mob/living/user, obj/item/toy/crayon/crayon)
+ if(!istype(user))
+ return FALSE
+ if(user.incapacitated())
+ return FALSE
+ if(pushed_over)
+ to_chat(user, "Right [src] first! ")
+ return FALSE
+ if(!crayon || !user.is_holding(crayon))
+ return FALSE
+ if(crayon.check_empty(user))
+ return FALSE
+ if(crayon.is_capped)
+ to_chat(user, "Take the cap off first! ")
+ return FALSE
+ return TRUE
/obj/item/cardboard_cutout/setDir(newdir)
dir = SOUTH
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 20e0b09d26..c23bc2bd5b 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -258,6 +258,8 @@ update_label("John Doe", "Clowny")
chameleon_action.chameleon_type = /obj/item/card/id
chameleon_action.chameleon_name = "ID Card"
chameleon_action.initialize_disguises()
+ if(!anyone)
+ AddComponent(/datum/component/identification/syndicate, ID_COMPONENT_DEL_ON_IDENTIFY, ID_COMPONENT_EFFECT_NO_ACTIONS, NONE) //no deconstructive analyzer usage.
/obj/item/card/id/syndicate/afterattack(obj/item/O, mob/user, proximity)
if(!proximity)
diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm
index 6b3428698b..c3b6c0312f 100644
--- a/code/game/objects/items/chrono_eraser.dm
+++ b/code/game/objects/items/chrono_eraser.dm
@@ -193,7 +193,7 @@
/obj/effect/chrono_field/update_icon()
var/ttk_frame = 1 - (tickstokill / initial(tickstokill))
- ttk_frame = CLAMP(CEILING(ttk_frame * CHRONO_FRAME_COUNT, 1), 1, CHRONO_FRAME_COUNT)
+ ttk_frame = clamp(CEILING(ttk_frame * CHRONO_FRAME_COUNT, 1), 1, CHRONO_FRAME_COUNT)
if(ttk_frame != RPpos)
RPpos = ttk_frame
mob_underlay.icon_state = "frame[RPpos]"
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index aaa87bbf01..b788c3fcba 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -308,6 +308,13 @@
/obj/item/stock_parts/manipulator = 1,
/obj/item/stock_parts/micro_laser = 1,
/obj/item/stack/sheet/glass = 1)
+ var/offstation_security_levels = TRUE
+
+/obj/item/circuitboard/machine/mechfab/offstation
+ offstation_security_levels = FALSE
+
+/obj/item/circuitboard/machine/mechfab/rnd_crafted(obj/machinery/rnd/production/P)
+ offstation_security_levels = P.offstation_security_levels
/obj/item/circuitboard/machine/cryo_tube
name = "Cryotube (Machine Board)"
@@ -759,6 +766,13 @@
/obj/item/stock_parts/matter_bin = 1,
/obj/item/stock_parts/manipulator = 1,
/obj/item/reagent_containers/glass/beaker = 2)
+ var/offstation_security_levels = TRUE
+
+/obj/item/circuitboard/machine/circuit_imprinter/offstation
+ offstation_security_levels = FALSE
+
+/obj/item/circuitboard/machine/mechfab/rnd_crafted(obj/machinery/rnd/production/P)
+ offstation_security_levels = P.offstation_security_levels
/obj/item/circuitboard/machine/circuit_imprinter/department
name = "Departmental Circuit Imprinter (Machine Board)"
@@ -804,7 +818,7 @@
var/new_cloud = input("Set the public nanite chamber's Cloud ID (1-100).", "Cloud ID", cloud_id) as num|null
if(new_cloud == null)
return
- cloud_id = CLAMP(round(new_cloud, 1), 1, 100)
+ cloud_id = clamp(round(new_cloud, 1), 1, 100)
/obj/item/circuitboard/machine/public_nanite_chamber/examine(mob/user)
. = ..()
@@ -832,6 +846,13 @@
/obj/item/stock_parts/matter_bin = 2,
/obj/item/stock_parts/manipulator = 2,
/obj/item/reagent_containers/glass/beaker = 2)
+ var/offstation_security_levels = TRUE
+
+/obj/item/circuitboard/machine/protolathe/offstation
+ offstation_security_levels = FALSE
+
+/obj/item/circuitboard/machine/protolathe/rnd_crafted(obj/machinery/rnd/production/P)
+ offstation_security_levels = P.offstation_security_levels
/obj/item/circuitboard/machine/protolathe/department
name = "Departmental Protolathe (Machine Board)"
@@ -1033,9 +1054,9 @@
build_path = /obj/machinery/vending/kink
req_components = list(/obj/item/vending_refill/kink = 1)
-/obj/item/circuitboard/machine/autoylathe
+/obj/item/circuitboard/machine/autolathe/toy
name = "Autoylathe (Machine Board)"
- build_path = /obj/machinery/autoylathe
+ build_path = /obj/machinery/autolathe/toy
req_components = list(
/obj/item/stock_parts/matter_bin = 3,
/obj/item/stock_parts/manipulator = 1,
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 5012170b4b..3fb2b820c3 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -59,7 +59,7 @@
var/edible = TRUE // That doesn't mean eating it is a good idea
- var/list/reagent_contents = list(/datum/reagent/consumable/nutriment = 1)
+ var/list/reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1)
// If the user can toggle the colour, a la vanilla spraycan
var/can_change_colour = FALSE
@@ -346,8 +346,8 @@
var/clicky
if(click_params && click_params["icon-x"] && click_params["icon-y"])
- clickx = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
- clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
+ clickx = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
+ clicky = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
if(!instant)
to_chat(user, "You start drawing a [temp] on the [target.name]... ")
@@ -487,56 +487,56 @@
icon_state = "crayonred"
paint_color = "#DA0000"
crayon_color = "red"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/red = 0.9)
dye_color = DYE_RED
/obj/item/toy/crayon/orange
icon_state = "crayonorange"
paint_color = "#FF9300"
crayon_color = "orange"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/orange = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/orange = 0.9)
dye_color = DYE_ORANGE
/obj/item/toy/crayon/yellow
icon_state = "crayonyellow"
paint_color = "#FFF200"
crayon_color = "yellow"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 0.9)
dye_color = DYE_YELLOW
/obj/item/toy/crayon/green
icon_state = "crayongreen"
paint_color = "#A8E61D"
crayon_color = "green"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/green = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/green = 0.9)
dye_color = DYE_GREEN
/obj/item/toy/crayon/blue
icon_state = "crayonblue"
paint_color = "#00B7EF"
crayon_color = "blue"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/blue = 0.9)
dye_color = DYE_BLUE
/obj/item/toy/crayon/purple
icon_state = "crayonpurple"
paint_color = "#DA00FF"
crayon_color = "purple"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/purple = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/purple = 0.9)
dye_color = DYE_PURPLE
/obj/item/toy/crayon/black
icon_state = "crayonblack"
paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black.
crayon_color = "black"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/black = 0.9)
dye_color = DYE_BLACK
/obj/item/toy/crayon/white
icon_state = "crayonwhite"
paint_color = "#FFFFFF"
crayon_color = "white"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/white = 0.9)
dye_color = DYE_WHITE
/obj/item/toy/crayon/mime
@@ -544,7 +544,7 @@
desc = "A very sad-looking crayon."
paint_color = "#FFFFFF"
crayon_color = "mime"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 0.9)
charges = -1
dye_color = DYE_MIME
@@ -552,10 +552,9 @@
icon_state = "crayonrainbow"
paint_color = "#FFF000"
crayon_color = "rainbow"
- reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent = 0.9)
drawtype = RANDOM_ANY // just the default starter.
dye_color = DYE_RAINBOW
-
charges = -1
/obj/item/toy/crayon/rainbow/afterattack(atom/target, mob/user, proximity, params)
@@ -727,13 +726,12 @@
to_chat(usr, "A color that dark on an object like this? Surely not... ")
return FALSE
- target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY)
if(istype(target, /obj/structure/window))
- if(color_hex2num(paint_color) < 255)
- target.set_opacity(255)
- else
- target.set_opacity(initial(target.opacity))
+ var/obj/structure/window/W = target
+ W.spraycan_paint(paint_color)
+ else
+ target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY)
. = use_charges(user, 2)
var/fraction = min(1, . / reagents.maximum_volume)
diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm
index e5dcfc0075..e3385dc13f 100644
--- a/code/game/objects/items/devices/desynchronizer.dm
+++ b/code/game/objects/items/devices/desynchronizer.dm
@@ -39,7 +39,7 @@
var/new_duration = input(user, "Set the duration (5-300):", "Desynchronizer", duration / 10) as null|num
if(new_duration)
new_duration = new_duration SECONDS
- new_duration = CLAMP(new_duration, 50, max_duration)
+ new_duration = clamp(new_duration, 50, max_duration)
duration = new_duration
to_chat(user, "You set the duration to [DisplayTimeText(duration)]. ")
return TRUE
diff --git a/code/game/objects/items/devices/electrochromatic_kit.dm b/code/game/objects/items/devices/electrochromatic_kit.dm
new file mode 100644
index 0000000000..d582eab00e
--- /dev/null
+++ b/code/game/objects/items/devices/electrochromatic_kit.dm
@@ -0,0 +1,14 @@
+/obj/item/electronics/electrochromatic_kit
+ name = "electrochromatic kit"
+ desc = "A kit for upgrading a window into an electrochromatic one."
+ /// Electrochromatic ID
+ var/id
+
+/obj/item/electronics/electrochromatic_kit/attack_self(mob/user)
+ . = ..()
+ if(.)
+ return
+ var/new_id = input(user, "Set this kit's electrochromatic ID", "Set ID", id) as text|null
+ if(isnull(new_id))
+ return
+ id = new_id
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 29a31122bf..7329db0679 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -351,6 +351,12 @@
light_color = "#FFAA44"
flashlight_power = 0.8
+/obj/item/flashlight/lantern/jade
+ name = "jade lantern"
+ desc = "An ornate, green lantern."
+ color = LIGHT_COLOR_GREEN
+ light_color = LIGHT_COLOR_GREEN
+
/obj/item/flashlight/slime
gender = PLURAL
name = "glowing slime extract"
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index 9a09be093d..981a811bc3 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(GPS_list)
if(!ui)
// Variable window height, depending on how many GPS units there are
// to show, clamped to relatively safe range.
- var/gps_window_height = CLAMP(325 + GLOB.GPS_list.len * 14, 325, 700)
+ var/gps_window_height = clamp(325 + GLOB.GPS_list.len * 14, 325, 700)
ui = new(user, src, ui_key, "gps", "Global Positioning System", 470, gps_window_height, master_ui, state) //width, height
ui.open()
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index bee59b254c..9ab6115634 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -171,7 +171,7 @@
// Negative numbers will subtract
/obj/item/lightreplacer/proc/AddUses(amount = 1)
- uses = CLAMP(uses + amount, 0, max_uses)
+ uses = clamp(uses + amount, 0, max_uses)
/obj/item/lightreplacer/proc/AddShards(amount = 1, user)
bulb_shards += amount
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 63092b5a13..4d0ed362fc 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -68,10 +68,9 @@
update_icon()
/obj/item/multitool/update_icon_state()
+ icon_state = initial(icon_state)
if(selected_io)
- icon_state = "multitool_red"
- else
- icon_state = "multitool"
+ icon_state += "_red"
/obj/item/multitool/proc/wire(var/datum/integrated_io/io, mob/user)
if(!io.holder.assembly)
diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm
index 8520571d22..2b5c8d873b 100644
--- a/code/game/objects/items/devices/pressureplates.dm
+++ b/code/game/objects/items/devices/pressureplates.dm
@@ -8,6 +8,7 @@
level = 1
var/trigger_mob = TRUE
var/trigger_item = FALSE
+ var/specific_item = null
var/trigger_silent = FALSE
var/sound/trigger_sound = 'sound/effects/pressureplate.ogg'
var/obj/item/assembly/signaler/sigdev = null
@@ -35,6 +36,8 @@
. = ..()
if(!can_trigger || !active)
return
+ if(trigger_item && !istype(AM, specific_item))
+ return
if(trigger_mob && isliving(AM))
var/mob/living/L = AM
to_chat(L, "You feel something click beneath you! ")
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index c364d1eb48..47542eb495 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -84,7 +84,7 @@
if(!usr.canUseTopic(src, BE_CLOSE))
return
new_code = round(new_code)
- new_code = CLAMP(new_code, 1, 100)
+ new_code = clamp(new_code, 1, 100)
code = new_code
if(href_list["set"] == "power")
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index ae705168a9..97fce0f096 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -199,7 +199,7 @@
if(!spans)
spans = list(M.speech_span)
if(!language)
- language = M.get_default_language()
+ language = M.get_selected_language()
INVOKE_ASYNC(src, .proc/talk_into_impl, M, message, channel, spans.Copy(), language)
return ITALICS | REDUCE_RANGE
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index f48b9e2a0f..4d255fd339 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -240,7 +240,7 @@ effective or pretty fucking useless.
charge = max(0,charge - 25)//Quick decrease in light
else
charge = min(max_charge,charge + 50) //Charge in the dark
- animate(user,alpha = CLAMP(255 - charge,0,255),time = 10)
+ animate(user,alpha = clamp(255 - charge,0,255),time = 10)
/obj/item/jammer
diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm
index f572d0a841..4fdb862288 100644
--- a/code/game/objects/items/dice.dm
+++ b/code/game/objects/items/dice.dm
@@ -170,7 +170,7 @@
/obj/item/dice/proc/diceroll(mob/user)
result = roll(sides)
if(rigged && result != rigged)
- if(prob(CLAMP(1/(sides - 1) * 100, 25, 80)))
+ if(prob(clamp(1/(sides - 1) * 100, 25, 80)))
result = rigged
var/fake_result = roll(sides)//Daredevil isn't as good as he used to be
var/comment = ""
diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm
index 9749bae313..0a705df91c 100644
--- a/code/game/objects/items/granters.dm
+++ b/code/game/objects/items/granters.dm
@@ -57,6 +57,35 @@
on_reading_finished(user)
reading = FALSE
return TRUE
+///TRAITS///
+
+/obj/item/book/granter/trait
+ var/granted_trait
+ var/traitname = "being cool"
+
+/obj/item/book/granter/trait/already_known(mob/user)
+ if(!granted_trait)
+ return TRUE
+ if(HAS_TRAIT(user, granted_trait))
+ to_chat(user, "You already have all the insight you need about [traitname].")
+ return TRUE
+ return FALSE
+
+/obj/item/book/granter/trait/on_reading_start(mob/user)
+ to_chat(user, "You start reading about [traitname]... ")
+
+/obj/item/book/granter/trait/on_reading_finished(mob/user)
+ to_chat(user, "You feel like you've got a good handle on [traitname]! ")
+ ADD_TRAIT(user, granted_trait, BOOK_TRAIT)
+
+/obj/item/book/granter/trait/rifleman
+ name = "\proper the Neo-Russian Rifleman\'s Primer"
+ desc = "A book with stains of vodka and...blood? The back is hard to read, but says something about bolt-actions. Or pump-actions. Both, maybe."
+ oneuse = FALSE
+ granted_trait = TRAIT_FAST_PUMP
+ traitname = "riflery"
+ icon_state = "book1"
+ remarks = list("One smooth motion...", "Palm the bolt...", "Push up, rotate back, push forward, down...", "Don't slap yourself with the bolt...", "Wait, what's this about pumping?", "Who just scribbled \"Z\" and \"LMB\" on this page?")
///ACTION BUTTONS///
diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm
index acd71c57ac..91dde2899d 100644
--- a/code/game/objects/items/grenades/chem_grenade.dm
+++ b/code/game/objects/items/grenades/chem_grenade.dm
@@ -97,8 +97,7 @@
to_chat(user, "You add [A] to the [initial(name)] assembly. ")
else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/C = I
- if (C.use(1))
+ if (I.use_tool(src, user, 0, 1, max_level = JOB_SKILL_BASIC))
det_time = 50 // In case the cable_coil was removed and readded.
stage_change(WIRED)
to_chat(user, "You rig the [initial(name)] assembly. ")
diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm
index eaecae5a92..66869d6f04 100644
--- a/code/game/objects/items/grenades/plastic.dm
+++ b/code/game/objects/items/grenades/plastic.dm
@@ -94,7 +94,7 @@
return
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num
if(user.get_active_held_item() == src)
- newtime = CLAMP(newtime, 10, 60000)
+ newtime = clamp(newtime, 10, 60000)
det_time = newtime
to_chat(user, "Timer set for [det_time] seconds.")
diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index 1e0a6ce6dc..c7c9fa37a9 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -118,7 +118,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
custom_materials = list(/datum/material/iron=150, /datum/material/glass=75)
breakouttime = 300 //Deciseconds = 30s
- cuffsound = 'sound/weapons/cablecuff.ogg'
+ cuffsound = 'sound/weapons/cablecuff.ogg'
/obj/item/restraints/handcuffs/cable/attack_self(mob/user)
to_chat(user, "You start unwinding the cable restraints back into coil ")
@@ -130,7 +130,7 @@
user.put_in_hands(coil)
coil.color = color
to_chat(user, "You unwind the cable restraints back into coil ")
-
+
/obj/item/restraints/handcuffs/cable/red
color = "#ff0000"
@@ -225,7 +225,6 @@
/obj/item/restraints/handcuffs/fake/kinky
name = "kinky handcuffs"
desc = "Fake handcuffs meant for erotic roleplay."
- icon = 'modular_citadel/icons/obj/items_and_weapons.dmi'
icon_state = "handcuffgag"
item_state = "kinkycuff"
@@ -252,7 +251,7 @@
throw_range = 1
icon_state = "beartrap"
desc = "A trap used to catch bears and other legged creatures."
- var/armed = 0
+ var/armed = FALSE
var/trap_damage = 20
/obj/item/restraints/legcuffs/beartrap/Initialize()
@@ -275,14 +274,14 @@
if(armed && isturf(src.loc))
if(isliving(AM))
var/mob/living/L = AM
- var/snap = 0
+ var/snap = FALSE
var/def_zone = BODY_ZONE_CHEST
if(iscarbon(L))
var/mob/living/carbon/C = L
- snap = 1
if(!C.lying)
def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
if(!C.legcuffed && C.get_num_legs(FALSE) >= 2) //beartrap can't cuff your leg if there's already a beartrap or legcuffs, or you don't have two legs.
+ snap = TRUE
C.legcuffed = src
forceMove(C)
C.update_equipment_speed_mods()
@@ -291,21 +290,21 @@
else if(isanimal(L))
var/mob/living/simple_animal/SA = L
if(SA.mob_size > MOB_SIZE_TINY)
- snap = 1
- if(L.movement_type & FLYING)
- snap = 0
+ snap = TRUE
+ if(L.movement_type & (FLYING | FLOATING))
+ snap = FALSE
if(snap)
- armed = 0
+ armed = FALSE
icon_state = "[initial(icon_state)][armed]"
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
L.visible_message("[L] triggers \the [src]. ", \
"You trigger \the [src]! ")
- L.apply_damage(trap_damage,BRUTE, def_zone)
+ L.apply_damage(trap_damage, BRUTE, def_zone)
..()
/obj/item/restraints/legcuffs/beartrap/energy
name = "energy snare"
- armed = 1
+ armed = TRUE
icon_state = "e_snare"
trap_damage = 0
item_flags = DROPDEL
diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm
index c961134244..6e270b6374 100644
--- a/code/game/objects/items/his_grace.dm
+++ b/code/game/objects/items/his_grace.dm
@@ -197,9 +197,9 @@
/obj/item/his_grace/proc/adjust_bloodthirst(amt)
prev_bloodthirst = bloodthirst
if(prev_bloodthirst < HIS_GRACE_CONSUME_OWNER && !ascended)
- bloodthirst = CLAMP(bloodthirst + amt, HIS_GRACE_SATIATED, HIS_GRACE_CONSUME_OWNER)
+ bloodthirst = clamp(bloodthirst + amt, HIS_GRACE_SATIATED, HIS_GRACE_CONSUME_OWNER)
else if(!ascended)
- bloodthirst = CLAMP(bloodthirst + amt, HIS_GRACE_CONSUME_OWNER, HIS_GRACE_FALL_ASLEEP)
+ bloodthirst = clamp(bloodthirst + amt, HIS_GRACE_CONSUME_OWNER, HIS_GRACE_FALL_ASLEEP)
update_stats()
/obj/item/his_grace/proc/update_stats()
diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm
index 171b5a465a..381257721e 100644
--- a/code/game/objects/items/holy_weapons.dm
+++ b/code/game/objects/items/holy_weapons.dm
@@ -519,7 +519,9 @@
S.name = name
S.ckey = C.ckey
S.status_flags |= GODMODE
- S.language_holder = user.language_holder.copy(S)
+ S.copy_languages(user, LANGUAGE_MASTER) //Make sure the sword can understand and communicate with the user.
+ S.update_atom_languages()
+ grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue
S.AddElement(/datum/element/ghost_role_eligibility,penalize_on_ghost = TRUE)
START_PROCESSING(SSprocessing,src)
var/input = stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN)
diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm
index 5f74830c99..347ec118fd 100644
--- a/code/game/objects/items/hot_potato.dm
+++ b/code/game/objects/items/hot_potato.dm
@@ -74,7 +74,7 @@
L.SetAllImmobility(0)
L.SetSleeping(0)
L.SetUnconscious(0)
- L.reagents.add_reagent(/datum/reagent/medicine/muscle_stimulant, CLAMP(5 - L.reagents.get_reagent_amount(/datum/reagent/medicine/muscle_stimulant), 0, 5)) //If you don't have legs or get bola'd, tough luck!
+ L.reagents.add_reagent(/datum/reagent/medicine/muscle_stimulant, clamp(5 - L.reagents.get_reagent_amount(/datum/reagent/medicine/muscle_stimulant), 0, 5)) //If you don't have legs or get bola'd, tough luck!
colorize(L)
/obj/item/hot_potato/examine(mob/user)
diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index 502930bf65..f6e52181ef 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -3,6 +3,7 @@
* Fork
* Kitchen knives
* Ritual Knife
+ * Bloodletter
* Butcher's cleaver
* Combat Knife
* Rolling Pins
@@ -97,6 +98,28 @@
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
w_class = WEIGHT_CLASS_NORMAL
+/obj/item/kitchen/knife/bloodletter
+ name = "bloodletter"
+ desc = "An occult looking dagger that is cold to the touch. Somehow, the flawless orb on the pommel is made entirely of liquid blood."
+ icon = 'icons/obj/ice_moon/artifacts.dmi'
+ icon_state = "bloodletter"
+ w_class = WEIGHT_CLASS_NORMAL
+ /// Bleed stacks applied when an organic mob target is hit
+ var/bleed_stacks_per_hit = 3
+
+/obj/item/kitchen/knife/bloodletter/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
+ . = ..()
+ if(!isliving(target) || !proximity_flag)
+ return
+ var/mob/living/M = target
+ if(!(M.mob_biotypes & MOB_ORGANIC))
+ return
+ var/datum/status_effect/stacking/saw_bleed/bloodletting/B = M.has_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting)
+ if(!B)
+ M.apply_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting, bleed_stacks_per_hit)
+ else
+ B.add_stacks(bleed_stacks_per_hit)
+
/obj/item/kitchen/knife/butcher
name = "butcher's cleaver"
icon_state = "butch"
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 011837d48b..71437d4706 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -304,7 +304,7 @@
return
else
if(cooldown_check < world.time)
- if(target.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS)
+ if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS)
playsound(target, 'sound/weapons/genhit.ogg', 50, 1)
return
if(ishuman(target))
@@ -325,7 +325,7 @@
else
target.LAssailant = WEAKREF(user)
cooldown_check = world.time + cooldown
- user.adjustStaminaLossBuffered(getweight())//CIT CHANGE - makes swinging batons cost stamina
+ user.adjustStaminaLossBuffered(getweight(user, STAM_COST_BATON_MOB_MULT))
else
var/wait_desc = get_wait_description()
if(wait_desc)
@@ -648,7 +648,7 @@
item_state = "mace_greyscale"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
- material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color.
+ material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Material type changes the prefix as well as the color.
custom_materials = list(/datum/material/iron = 12000) //Defaults to an Iron Mace.
slot_flags = ITEM_SLOT_BELT
force = 14
diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm
index c6bb350929..c4bb8c594c 100644
--- a/code/game/objects/items/miscellaneous.dm
+++ b/code/game/objects/items/miscellaneous.dm
@@ -123,11 +123,3 @@
w_class = WEIGHT_CLASS_BULKY
attack_verb = list("skubbed")
-/obj/item/supermatterspray
- name = "supermatter spray"
- desc = "A spray bottle containing some kind of magical spray to fix the SM. \"Do not inhale.\" is written on the side. Unless aimed at the supermatter, it does nothing."
- icon = 'icons/obj/supermatter.dmi'
- icon_state = "supermatterspray"
- w_class = WEIGHT_CLASS_SMALL
- var/usesleft = 2
-
diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm
index bdf9ab4270..cd65149f5d 100644
--- a/code/game/objects/items/paint.dm
+++ b/code/game/objects/items/paint.dm
@@ -112,7 +112,7 @@
. = ..()
if(!proximity)
return
- if(!isturf(target) || !isobj(target))
+ if(!isturf(target) && !isobj(target))
return
if(target.color != initial(target.color))
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm
index 342f756ffc..23be8cbb9a 100644
--- a/code/game/objects/items/pneumaticCannon.dm
+++ b/code/game/objects/items/pneumaticCannon.dm
@@ -201,8 +201,8 @@
return target
var/x_o = (target.x - starting.x)
var/y_o = (target.y - starting.y)
- var/new_x = CLAMP((starting.x + (x_o * range_multiplier)), 0, world.maxx)
- var/new_y = CLAMP((starting.y + (y_o * range_multiplier)), 0, world.maxy)
+ var/new_x = clamp((starting.x + (x_o * range_multiplier)), 0, world.maxx)
+ var/new_y = clamp((starting.y + (y_o * range_multiplier)), 0, world.maxy)
var/turf/newtarget = locate(new_x, new_y, starting.z)
return newtarget
diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm
new file mode 100644
index 0000000000..648ba27897
--- /dev/null
+++ b/code/game/objects/items/puzzle_pieces.dm
@@ -0,0 +1,146 @@
+//**************
+//*****Keys*******************
+//************** ** **
+/obj/item/keycard
+ name = "security keycard"
+ desc = "This feels like it belongs to a door."
+ icon = 'icons/obj/puzzle_small.dmi'
+ icon_state = "keycard"
+ force = 0
+ throwforce = 0
+ w_class = WEIGHT_CLASS_TINY
+ throw_speed = 1
+ throw_range = 7
+ resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
+ var/puzzle_id = null
+
+//Two test keys for use alongside the two test doors.
+/obj/item/keycard/cheese
+ name = "cheese keycard"
+ desc = "Look, I still don't understand the reference. What the heck is a keyzza?"
+ color = "#f0da12"
+ puzzle_id = "cheese"
+
+/obj/item/keycard/swordfish
+ name = "titanic keycard"
+ desc = "Smells like it was at the bottom of a harbor."
+ color = "#3bbbdb"
+ puzzle_id = "swordfish"
+
+//***************
+//*****Doors*****
+//***************
+
+/obj/machinery/door/keycard
+ name = "locked door"
+ desc = "This door only opens when a keycard is swiped. It looks virtually indestructable."
+ icon = 'icons/obj/doors/puzzledoor/default.dmi'
+ icon_state = "door_closed"
+ explosion_block = 3
+ heat_proof = TRUE
+ max_integrity = 600
+ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
+ resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
+ damage_deflection = 70
+ /// Make sure that the key has the same puzzle_id as the keycard door!
+ var/puzzle_id = null
+ /// Message that occurs when the door is opened
+ var/open_message = "The door beeps, and slides opens."
+
+//Standard Expressions to make keycard doors basically un-cheeseable
+/obj/machinery/door/keycard/Bumped(atom/movable/AM)
+ return !density && ..()
+
+/obj/machinery/door/keycard/emp_act(severity)
+ return
+
+/obj/machinery/door/keycard/ex_act(severity, target)
+ return
+
+/obj/machinery/door/keycard/try_to_activate_door(mob/user)
+ add_fingerprint(user)
+ if(operating)
+ return
+
+/obj/machinery/door/keycard/attackby(obj/item/I, mob/user, params)
+ . = ..()
+ if(istype(I,/obj/item/keycard))
+ var/obj/item/keycard/key = I
+ if((!puzzle_id || puzzle_id == key.puzzle_id) && density)
+ if(open_message)
+ to_chat(user, "[open_message] ")
+ open()
+ return
+ else if(puzzle_id != key.puzzle_id)
+ to_chat(user, "[src] buzzes. This must not be the right key. ")
+ return
+ else
+ to_chat(user, "This door doesn't appear to close. ")
+ return
+
+//Test doors. Gives admins a few doors to use quickly should they so choose.
+/obj/machinery/door/keycard/cheese
+ name = "blue airlock"
+ desc = "Smells like... pizza?"
+ puzzle_id = "cheese"
+
+/obj/machinery/door/keycard/swordfish
+ name = "blue airlock"
+ desc = "If nautical nonsense be something you wish."
+ puzzle_id = "swordfish"
+
+//*************************
+//***Box Pushing Puzzles***
+//*************************
+//We're working off a subtype of pressureplates, which should work just a BIT better now.
+/obj/structure/holobox
+ name = "holobox"
+ desc = "A hard-light box, containing a secure decryption key."
+ icon = 'icons/obj/puzzle_small.dmi'
+ icon_state = "laserbox"
+ density = TRUE
+ resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
+
+//Uses the pressure_plate settings for a pretty basic custom pattern that waits for a specific item to trigger. Easy enough to retool for mapping purposes or subtypes.
+/obj/item/pressure_plate/hologrid
+ name = "hologrid"
+ desc = "A high power, electronic input port for a holobox, which can unlock the hologrid's storage compartment. Safe to stand on."
+ icon = 'icons/obj/puzzle_small.dmi'
+ icon_state = "lasergrid"
+ anchored = TRUE
+ trigger_mob = FALSE
+ trigger_item = TRUE
+ specific_item = /obj/structure/holobox
+ removable_signaller = FALSE //Being a pressure plate subtype, this can also use signals.
+ roundstart_signaller_freq = FREQ_HOLOGRID_SOLUTION //Frequency is kept on it's own default channel however.
+ active = TRUE
+ trigger_delay = 10
+ resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
+ var/reward = /obj/item/reagent_containers/food/snacks/cookie
+ var/claimed = FALSE
+
+/obj/item/pressure_plate/hologrid/examine(mob/user)
+ . = ..()
+ if(claimed)
+ . += "This one appears to be spent already. "
+
+/obj/item/pressure_plate/hologrid/trigger()
+ if(!claimed)
+ new reward(loc)
+ flick("lasergrid_a",src)
+ icon_state = "lasergrid_full"
+ claimed = TRUE
+
+/obj/item/pressure_plate/hologrid/Crossed(atom/movable/AM)
+ . = ..()
+ if(trigger_item && istype(AM, specific_item) && !claimed)
+ AM.anchored = TRUE
+ flick("laserbox_burn", AM)
+ trigger()
+ sleep(15)
+ qdel(AM)
+
+// snowflake code until undertile elements
+/obj/item/pressure_plate/hologrid/hide()
+ . = ..()
+ anchored = TRUE
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 318753e4ad..a5ed113e4c 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -11,7 +11,7 @@
var/charge_cost = 30
/obj/item/borg/stun/attack(mob/living/M, mob/living/user)
- if(M.run_block(src, 0, "[M]'s [name]", ATTACK_TYPE_MELEE, 0, user, ran_zone(user.zone_selected)) & BLOCK_SUCCESS)
+ if(M.mob_run_block(src, 0, "[M]'s [name]", ATTACK_TYPE_MELEE, 0, user, ran_zone(user.zone_selected), null) & BLOCK_SUCCESS)
playsound(M, 'sound/weapons/genhit.ogg', 50, 1)
return FALSE
if(iscyborg(user))
@@ -649,7 +649,7 @@
continue
usage += projectile_tick_speed_ecost
usage += (tracked[I] * projectile_damage_tick_ecost_coefficient)
- energy = CLAMP(energy - usage, 0, maxenergy)
+ energy = clamp(energy - usage, 0, maxenergy)
if(energy <= 0)
deactivate_field()
visible_message("[src] blinks \"ENERGY DEPLETED\". ")
@@ -659,7 +659,7 @@
if(iscyborg(host.loc))
host = host.loc
else
- energy = CLAMP(energy + energy_recharge, 0, maxenergy)
+ energy = clamp(energy + energy_recharge, 0, maxenergy)
return
if(host.cell && (host.cell.charge >= (host.cell.maxcharge * cyborg_cell_critical_percentage)) && (energy < maxenergy))
host.cell.use(energy_recharge*energy_recharge_cyborg_drain_coefficient)
diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm
index 93056adc99..014d4cb159 100644
--- a/code/game/objects/items/sharpener.dm
+++ b/code/game/objects/items/sharpener.dm
@@ -35,14 +35,14 @@
if(TH.force_wielded > initial(TH.force_wielded))
to_chat(user, "[TH] has already been refined before. It cannot be sharpened further! ")
return
- TH.force_wielded = CLAMP(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay
+ TH.force_wielded = clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay
if(I.force > initial(I.force))
to_chat(user, "[I] has already been refined before. It cannot be sharpened further! ")
return
user.visible_message("[user] sharpens [I] with [src]! ", "You sharpen [I], making it much more deadly than before. ")
I.sharpness = IS_SHARP_ACCURATE
- I.force = CLAMP(I.force + increment, 0, max)
- I.throwforce = CLAMP(I.throwforce + increment, 0, max)
+ I.force = clamp(I.force + increment, 0, max)
+ I.throwforce = clamp(I.throwforce + increment, 0, max)
I.name = "[prefix] [I.name]"
name = "worn out [name]"
desc = "[desc] At least, it used to."
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index 6d8e582c29..fc7b196bd2 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -33,11 +33,11 @@
return TRUE
/obj/item/shield/alt_pre_attack(atom/A, mob/living/user, params)
- user_shieldbash(user, A, user.a_intent != INTENT_HARM)
+ user_shieldbash(user, A, user.a_intent == INTENT_HARM)
return TRUE
/obj/item/shield/altafterattack(atom/target, mob/user, proximity_flag, click_parameters)
- user_shieldbash(user, target, user.a_intent != INTENT_HARM)
+ user_shieldbash(user, target, user.a_intent == INTENT_HARM)
return TRUE
/obj/item/shield/proc/do_shieldbash_effect(mob/living/user, dir, harmful)
@@ -52,13 +52,13 @@
px = 12
if(WEST)
px = -12
- var/oldpx = user.pixel_x
- var/oldpy = user.pixel_y
- animate(user, pixel_x = px, pixel_y = py, time = 3, easing = SINE_EASING | EASE_OUT, flags = ANIMATION_END_NOW)
- animate(user, pixel_x = oldpx, pixel_y = oldpy, time = 3)
- user.visible_message("[user] [harmful? "charges forwards with" : "sweeps"] [src]! ")
var/obj/effect/temp_visual/dir_setting/shield_bash/effect = new(user.loc, dir)
- animate(effect, alpha = 0, pixel_x = px + 4, pixel_y = py + 4, time = 3)
+ effect.pixel_x = user.pixel_x - 32 //96x96 effect, -32.
+ effect.pixel_y = user.pixel_y - 32
+ user.visible_message("[user] [harmful? "charges forwards with" : "sweeps"] [src]! ")
+ animate(user, pixel_x = px, pixel_y = py, time = 3, easing = SINE_EASING | EASE_OUT, flags = ANIMATION_PARALLEL | ANIMATION_RELATIVE)
+ animate(user, pixel_x = -px, pixel_y = -py, time = 3, flags = ANIMATION_RELATIVE)
+ animate(effect, alpha = 0, pixel_x = px * 1.5, pixel_y = py * 1.5, time = 3, flags = ANIMATION_PARALLEL | ANIMATION_RELATIVE)
/obj/item/shield/proc/bash_target(mob/living/user, mob/living/target, bashdir, harmful)
if(!(target.status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess..
@@ -76,7 +76,7 @@
"[user] shoves you with [src]! ")
for(var/i in 1 to harmful? shieldbash_knockback : shieldbash_push_distance)
var/turf/new_turf = get_step(target, bashdir)
- var/mob/living/carbon/human/H = locate() in new_turf
+ var/mob/living/carbon/human/H = locate() in (new_turf.contents - target)
if(H && harmful)
H.visible_message("[target] is sent crashing into [H]! ",
"[target] is sent crashing into you! ")
@@ -107,13 +107,19 @@
return TRUE
/obj/item/shield/proc/user_shieldbash(mob/living/user, atom/target, harmful)
+ if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //Combat mode has to be enabled for shield bashing
+ return FALSE
if(!(shield_flags & SHIELD_CAN_BASH))
to_chat(user, "[src] can't be used to shield bash! ")
return FALSE
+ if(!CHECK_MOBILITY(user, MOBILITY_STAND))
+ to_chat(user, "You can't bash with [src] while on the ground! ")
+ return FALSE
if(world.time < last_shieldbash + shieldbash_cooldown)
to_chat(user, "You can't bash with [src] again so soon! ")
return FALSE
- if(isliving(target)) //GROUND SLAAAM
+ var/mob/living/livingtarget = target //only access after an isliving check!
+ if(isliving(target) && !CHECK_MOBILITY(livingtarget, MOBILITY_STAND)) //GROUND SLAAAM
if(!(shield_flags & SHIELD_BASH_GROUND_SLAM))
to_chat(user, "You can't ground slam with [src]! ")
return FALSE
@@ -122,7 +128,7 @@
playsound(src, harmful? "swing_hit" : 'sound/weapons/thudswoosh.ogg', 75, 1)
last_shieldbash = world.time
user.adjustStaminaLossBuffered(shieldbash_stamcost)
- return 1
+ return TRUE
// Directional sweep!
last_shieldbash = world.time
user.adjustStaminaLossBuffered(shieldbash_stamcost)
@@ -164,11 +170,12 @@
attack_verb = list("shoved", "bashed")
var/cooldown = 0 //shield bash cooldown. based on world.time
var/repair_material = /obj/item/stack/sheet/mineral/titanium
+ var/can_shatter = TRUE
shield_flags = SHIELD_FLAGS_DEFAULT | SHIELD_TRANSPARENT
max_integrity = 75
/obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- if(ismovableatom(object))
+ if(ismovable(object))
var/atom/movable/AM = object
if(CHECK_BITFIELD(shield_flags, SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS))
return BLOCK_NONE
@@ -213,7 +220,7 @@
new /obj/item/shard((get_turf(src)))
/obj/item/shield/riot/on_shield_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- if(obj_integrity <= damage)
+ if(can_shatter && (obj_integrity <= damage))
var/turf/T = get_turf(owner)
T.visible_message("[attack_text] destroys [src]! ")
shatter(owner)
@@ -324,7 +331,6 @@ obj/item/shield/riot/bullet_proof
armor = list("melee" = 25, "bullet" = 25, "laser" = 5, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 80)
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
- icon = 'icons/obj/items_and_weapons.dmi'
item_state = "metal"
icon_state = "makeshift_shield"
custom_materials = list(/datum/material/iron = 18000)
@@ -340,7 +346,6 @@ obj/item/shield/riot/bullet_proof
armor = list("melee" = 95, "bullet" = 95, "laser" = 75, "energy" = 60, "bomb" = 90, "bio" = 90, "rad" = 0, "fire" = 90, "acid" = 10) //Armor for the item, dosnt transfer to user
item_state = "metal"
icon_state = "metal"
- icon = 'icons/obj/items_and_weapons.dmi'
block_chance = 75 //1/4 shots will hit*
force = 16
slowdown = 2
@@ -356,20 +361,47 @@ obj/item/shield/riot/bullet_proof
block_chance = 50
/obj/item/shield/riot/implant
- name = "riot tower shield"
- desc = "A massive shield that can block a lot of attacks and can take a lot of abuse before breaking." //It cant break unless it is removed from the implant
+ name = "telescoping shield implant"
+ desc = "A compact, arm-mounted telescopic shield. While nigh-indestructible when powered by a host user, it will eventually overload from damage. Recharges while inside its implant."
item_state = "metal"
icon_state = "metal"
- block_chance = 30 //May be big but hard to move around to block.
+ block_chance = 50
slowdown = 1
shield_flags = SHIELD_FLAGS_DEFAULT
+ max_integrity = 60
+ obj_integrity = 60
+ can_shatter = FALSE
item_flags = SLOWS_WHILE_IN_HAND
+ var/recharge_timerid
+ var/recharge_delay = 15 SECONDS
-/obj/item/shield/riot/implant/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- if(attack_type & ATTACK_TYPE_PROJECTILE)
- final_block_chance = 60 //Massive shield
- return ..()
+/// Entirely overriden take_damage. This shouldn't exist outside of an implant (other than maybe christmas).
+/obj/item/shield/riot/implant/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0)
+ obj_integrity -= damage_amount
+ if(obj_integrity < 0)
+ obj_integrity = 0
+ if(obj_integrity == 0)
+ if(ismob(loc))
+ var/mob/living/L = loc
+ playsound(src, 'sound/effects/glassbr3.ogg', 100)
+ L.visible_message("[src] overloads from the damage sustained! ")
+ L.dropItemToGround(src) //implant component catch hook will grab it.
+/obj/item/shield/riot/implant/Moved()
+ . = ..()
+ if(istype(loc, /obj/item/organ/cyberimp/arm/shield))
+ recharge_timerid = addtimer(CALLBACK(src, .proc/recharge), recharge_delay, flags = TIMER_STOPPABLE)
+ else //extending
+ if(recharge_timerid)
+ deltimer(recharge_timerid)
+ recharge_timerid = null
+
+/obj/item/shield/riot/implant/proc/recharge()
+ if(obj_integrity == max_integrity)
+ return
+ obj_integrity = max_integrity
+ if(ismob(loc.loc)) //cyberimplant.user
+ to_chat(loc, "[src] has recharged its reinforcement matrix and is ready for use! ")
/obj/item/shield/energy
name = "energy combat shield"
diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm
index 4c64ed9dd4..dc761ee3bf 100644
--- a/code/game/objects/items/singularityhammer.dm
+++ b/code/game/objects/items/singularityhammer.dm
@@ -37,7 +37,7 @@
/obj/item/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder)
for(var/atom/X in orange(5,pull))
- if(ismovableatom(X))
+ if(ismovable(X))
var/atom/movable/A = X
if(A == wielder)
continue
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 50e9b94e97..19c15b309b 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -59,6 +59,9 @@
self_delay = 20
grind_results = list(/datum/reagent/medicine/styptic_powder = 10)
+/obj/item/stack/medical/bruise_pack/one
+ amount = 1
+
/obj/item/stack/medical/bruise_pack/heal(mob/living/M, mob/user)
if(M.stat == DEAD)
to_chat(user, " [M] is dead. You can not help [M.p_them()]! ")
@@ -100,6 +103,7 @@
if(!H.bleedsuppress && H.bleed_rate) //so you can't stack bleed suppression
H.suppress_bloodloss(stop_bleeding)
to_chat(user, "You stop the bleeding of [M]! ")
+ H.adjustBruteLoss(-(heal_brute))
return TRUE
to_chat(user, "You can not use \the [src] on [M]! ")
@@ -127,6 +131,15 @@
stop_bleeding = 900
heal_brute = 0
+/obj/item/stack/medical/gauze/adv
+ name = "sterilized medical gauze"
+ desc = "A roll of elastic sterilized cloth that is extremely effective at stopping bleeding, heals minor wounds and cleans them."
+ singular_name = "sterilized medical gauze"
+ self_delay = 5
+
+/obj/item/stack/medical/gauze/adv/one
+ amount = 1
+
/obj/item/stack/medical/gauze/cyborg
custom_materials = null
is_cyborg = 1
@@ -144,6 +157,9 @@
self_delay = 20
grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10)
+/obj/item/stack/medical/ointment/one
+ amount = 1
+
/obj/item/stack/medical/ointment/heal(mob/living/M, mob/user)
if(M.stat == DEAD)
to_chat(user, " [M] is dead. You can not help [M.p_them()]! ")
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index c8ee6b05c7..c34ad44d5c 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
if (get_amount() < 1 || CC.get_amount() < 5)
to_chat(user, "You attach wire to the [name]. ")
var/obj/item/stack/light_w/new_tile = new(user.loc)
@@ -109,7 +109,6 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
merge_type = /obj/item/stack/sheet/plasmaglass
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10)
tableVariant = /obj/structure/table/plasmaglass
- material_flags = MATERIAL_NO_EFFECTS
shard_type = /obj/item/shard/plasma
/obj/item/stack/sheet/plasmaglass/fifty
@@ -209,7 +208,6 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5,)
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
- material_flags = MATERIAL_NO_EFFECTS
merge_type = /obj/item/stack/sheet/plasmarglass
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10)
point_value = 23
@@ -259,7 +257,6 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
item_state = "sheet-plastitaniumglass"
custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
- material_flags = MATERIAL_NO_EFFECTS
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plastitaniumglass
shard_type = /obj/item/shard
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 65931db2f5..f655e831d8 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -178,6 +178,11 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \
icon_state = "sinew"
novariants = TRUE
+/obj/item/stack/sheet/sinew/wolf
+ name = "wolf sinew"
+ desc = "Long stringy filaments which came from the insides of a wolf."
+ singular_name = "wolf sinew"
+
GLOBAL_LIST_INIT(sinew_recipes, list ( \
new/datum/stack_recipe("sinew restraints", /obj/item/restraints/handcuffs/sinew, 1), \
@@ -202,6 +207,11 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \
w_class = WEIGHT_CLASS_NORMAL
layer = MOB_LAYER
+/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide
+ name = "polar bear hides"
+ desc = "Pieces of a polar bear's fur, these might be able to make your suit a bit more durable to attack from the local fauna."
+ icon_state = "polar_bear_hide"
+ singular_name = "polar bear hide"
/obj/item/stack/sheet/animalhide/ashdrake
name = "ash drake hide"
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 4a7156db72..d28ae52b52 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -324,7 +324,6 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \
custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT)
point_value = 45
merge_type = /obj/item/stack/sheet/mineral/plastitanium
- material_flags = MATERIAL_NO_EFFECTS
/obj/item/stack/sheet/mineral/plastitanium/fifty
amount = 50
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index b658502808..835dd8b548 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -215,7 +215,6 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \
grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20)
point_value = 23
tableVariant = /obj/structure/table/reinforced
- material_flags = MATERIAL_NO_EFFECTS
/obj/item/stack/sheet/plasteel/get_main_recipes()
. = ..()
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 70b00c72ec..add9ebd6b2 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -71,9 +71,9 @@
/obj/item/stack/proc/update_weight()
if(amount <= (max_amount * (1/3)))
- w_class = CLAMP(full_w_class-2, WEIGHT_CLASS_TINY, full_w_class)
+ w_class = clamp(full_w_class-2, WEIGHT_CLASS_TINY, full_w_class)
else if (amount <= (max_amount * (2/3)))
- w_class = CLAMP(full_w_class-1, WEIGHT_CLASS_TINY, full_w_class)
+ w_class = clamp(full_w_class-1, WEIGHT_CLASS_TINY, full_w_class)
else
w_class = full_w_class
diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm
index 50edc9d15a..1bcd8d72ca 100644
--- a/code/game/objects/items/stacks/tiles/tile_mineral.dm
+++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm
@@ -78,4 +78,3 @@
turf_type = /turf/open/floor/mineral/plastitanium
mineralType = "plastitanium"
custom_materials = list(/datum/material/titanium=250, /datum/material/plasma=250)
- material_flags = MATERIAL_NO_EFFECTS
\ No newline at end of file
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index 103dabdeec..52802fa3df 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -412,7 +412,7 @@
STR.max_combined_w_class = 200
STR.max_items = 25
STR.insert_preposition = "in"
- STR.can_hold = typecacheof(list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/monkeycube, /obj/item/organ, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/bodypart))
+ STR.can_hold = typecacheof(list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/cube, /obj/item/organ, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/bodypart))
STR.cant_hold = typecacheof(list(/obj/item/organ/brain, /obj/item/organ/liver/cybernetic, /obj/item/organ/heart/cybernetic, /obj/item/organ/lungs/cybernetic, /obj/item/organ/tongue/cybernetic, /obj/item/organ/ears/cybernetic, /obj/item/organ/eyes/robotic, /obj/item/organ/cyberimp))
/obj/item/storage/bag/bio/holding
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index dc6f5f701e..97b7ee8a38 100755
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -695,7 +695,10 @@
/obj/item/gun/ballistic/revolver,
/obj/item/ammo_box,
/obj/item/toy/gun,
- /obj/item/gun/energy/e_gun/mini
+ /obj/item/gun/energy/e_gun/mini,
+ /obj/item/gun/ballistic/automatic/magrifle/pistol,
+ /obj/item/gun/energy/disabler,
+ /obj/item/gun/energy/taser
))
/obj/item/storage/belt/holster/full/PopulateContents()
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 515c39ffcb..9dbbb35862 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -454,11 +454,11 @@
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 7
- STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/monkeycube))
+ STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/cube/monkey))
/obj/item/storage/box/monkeycubes/PopulateContents()
for(var/i in 1 to 5)
- new /obj/item/reagent_containers/food/snacks/monkeycube(src)
+ new /obj/item/reagent_containers/food/snacks/cube/monkey(src)
/obj/item/storage/box/ids
name = "box of spare IDs"
@@ -850,12 +850,6 @@
-#define NODESIGN "None"
-#define NANOTRASEN "NanotrasenStandard"
-#define SYNDI "SyndiSnacks"
-#define HEART "Heart"
-#define SMILEY "SmileyFace"
-
/obj/item/storage/box/papersack
name = "paper sack"
desc = "A sack neatly crafted out of paper."
@@ -863,7 +857,18 @@
item_state = "paperbag_None"
resistance_flags = FLAMMABLE
foldable = null
- var/design = NODESIGN
+ /// A list of all available papersack reskins
+ var/list/papersack_designs = list()
+
+/obj/item/storage/box/papersack/Initialize(mapload)
+ . = ..()
+ papersack_designs = sortList(list(
+ "None" = image(icon = src.icon, icon_state = "paperbag_None"),
+ "NanotrasenStandard" = image(icon = src.icon, icon_state = "paperbag_NanotrasenStandard"),
+ "SyndiSnacks" = image(icon = src.icon, icon_state = "paperbag_SyndiSnacks"),
+ "Heart" = image(icon = src.icon, icon_state = "paperbag_Heart"),
+ "SmileyFace" = image(icon = src.icon, icon_state = "paperbag_SmileyFace")
+ ))
/obj/item/storage/box/papersack/update_icon_state()
if(contents.len == 0)
@@ -871,55 +876,64 @@
else
icon_state = "[item_state]_closed"
+
/obj/item/storage/box/papersack/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/pen))
- //if a pen is used on the sack, dialogue to change its design appears
- if(contents.len)
- to_chat(user, "You can't modify [src] with items still inside! ")
- return
- var/list/designs = list(NODESIGN, NANOTRASEN, SYNDI, HEART, SMILEY, "Cancel")
- var/switchDesign = input("Select a Design:", "Paper Sack Design", designs[1]) in designs
- if(get_dist(usr, src) > 1)
- to_chat(usr, "You have moved too far away! ")
- return
- var/choice = designs.Find(switchDesign)
- if(design == designs[choice] || designs[choice] == "Cancel")
- return 0
- to_chat(usr, "You make some modifications to [src] using your pen. ")
- design = designs[choice]
- icon_state = "paperbag_[design]"
- item_state = "paperbag_[design]"
- switch(designs[choice])
- if(NODESIGN)
+ var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, .proc/check_menu, user, W), radius = 36, require_near = TRUE)
+ if(!choice)
+ return FALSE
+ if(icon_state == "paperbag_[choice]")
+ return FALSE
+ switch(choice)
+ if("None")
desc = "A sack neatly crafted out of paper."
- if(NANOTRASEN)
+ if("NanotrasenStandard")
desc = "A standard Nanotrasen paper lunch sack for loyal employees on the go."
- if(SYNDI)
+ if("SyndiSnacks")
desc = "The design on this paper sack is a remnant of the notorious 'SyndieSnacks' program."
- if(HEART)
+ if("Heart")
desc = "A paper sack with a heart etched onto the side."
- if(SMILEY)
+ if("SmileyFace")
desc = "A paper sack with a crude smile etched onto the side."
- return 0
+ else
+ return FALSE
+ to_chat(user, "You make some modifications to [src] using your pen. ")
+ icon_state = "paperbag_[choice]"
+ item_state = "paperbag_[choice]"
+ return FALSE
else if(W.get_sharpness())
if(!contents.len)
if(item_state == "paperbag_None")
user.show_message("You cut eyeholes into [src]. ", MSG_VISUAL)
new /obj/item/clothing/head/papersack(user.loc)
qdel(src)
- return 0
+ return FALSE
else if(item_state == "paperbag_SmileyFace")
user.show_message("You cut eyeholes into [src] and modify the design. ", MSG_VISUAL)
new /obj/item/clothing/head/papersack/smiley(user.loc)
qdel(src)
- return 0
+ return FALSE
return ..()
-#undef NODESIGN
-#undef NANOTRASEN
-#undef SYNDI
-#undef HEART
-#undef SMILEY
+/**
+ * check_menu: Checks if we are allowed to interact with a radial menu
+ *
+ * Arguments:
+ * * user The mob interacting with a menu
+ * * P The pen used to interact with a menu
+ */
+/obj/item/storage/box/papersack/proc/check_menu(mob/user, obj/item/pen/P)
+ if(!istype(user))
+ return FALSE
+ if(user.incapacitated())
+ return FALSE
+ if(contents.len)
+ to_chat(user, "You can't modify [src] with items still inside! ")
+ return FALSE
+ if(!P || !user.is_holding(P))
+ to_chat(user, "You need a pen to modify [src]! ")
+ return FALSE
+ return TRUE
/obj/item/storage/box/ingredients //This box is for the randomly chosen version the chef spawns with, it shouldn't actually exist.
name = "ingredients box"
@@ -1117,9 +1131,9 @@
desc = "A box containing a gift for worthy golems."
/obj/item/storage/box/rndboards/PopulateContents()
- new /obj/item/circuitboard/machine/protolathe(src)
+ new /obj/item/circuitboard/machine/protolathe/offstation(src)
new /obj/item/circuitboard/machine/destructive_analyzer(src)
- new /obj/item/circuitboard/machine/circuit_imprinter(src)
+ new /obj/item/circuitboard/machine/circuit_imprinter/offstation(src)
new /obj/item/circuitboard/computer/rdconsole(src)
/obj/item/storage/box/silver_sulf
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index 50620b90fe..64e0a6b492 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -138,7 +138,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
new /obj/item/crowbar/red(src)
new /obj/item/wirecutters(src, "red")
new /obj/item/multitool(src)
- new /obj/item/clothing/gloves/combat(src)
+ new /obj/item/clothing/gloves/tackler/combat/insulated(src)
/obj/item/storage/toolbox/drone
name = "mechanical toolbox"
@@ -311,7 +311,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
new /obj/item/crowbar/red(src)
new /obj/item/wirecutters(src, "red")
new /obj/item/multitool/ai_detect(src)
- new /obj/item/clothing/gloves/combat(src)
+ new /obj/item/clothing/gloves/tackler/combat/insulated(src)
/obj/item/storage/toolbox/gold_real/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index 874c858b3f..ffa3d83304 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -294,18 +294,18 @@
name = "chameleon kit"
/obj/item/storage/box/syndie_kit/chameleon/PopulateContents()
- new /obj/item/clothing/under/chameleon(src)
- new /obj/item/clothing/suit/chameleon(src)
- new /obj/item/clothing/gloves/chameleon(src)
- new /obj/item/clothing/shoes/chameleon(src)
- new /obj/item/clothing/glasses/chameleon(src)
- new /obj/item/clothing/head/chameleon(src)
- new /obj/item/clothing/mask/chameleon(src)
- new /obj/item/storage/backpack/chameleon(src)
- new /obj/item/radio/headset/chameleon(src)
- new /obj/item/stamp/chameleon(src)
- new /obj/item/pda/chameleon(src)
- new /obj/item/clothing/neck/cloak/chameleon(src)
+ new /obj/item/clothing/under/chameleon/syndicate(src)
+ new /obj/item/clothing/suit/chameleon/syndicate(src)
+ new /obj/item/clothing/gloves/chameleon/insulated/syndicate(src)
+ new /obj/item/clothing/shoes/chameleon/syndicate(src)
+ new /obj/item/clothing/glasses/chameleon/syndicate(src)
+ new /obj/item/clothing/head/chameleon/syndicate(src)
+ new /obj/item/clothing/mask/chameleon/syndicate(src)
+ new /obj/item/storage/backpack/chameleon/syndicate(src)
+ new /obj/item/radio/headset/chameleon/syndicate(src)
+ new /obj/item/stamp/chameleon/syndicate(src)
+ new /obj/item/pda/chameleon/syndicate(src)
+ new /obj/item/clothing/neck/cloak/chameleon/syndicate(src)
//5*(2*4) = 5*8 = 45, 45 damage if you hit one person with all 5 stars.
//Not counting the damage it will do while embedded (2*4 = 8, at 15% chance)
@@ -501,3 +501,13 @@
new item2(src)
new item3(src)
new /obj/item/paper/contractor_guide(src) //Paper guide
+
+/obj/item/storage/box/syndie_kit/northstar
+
+/obj/item/storage/box/syndie_kit/northstar/PopulateContents()
+ new /obj/item/clothing/gloves/fingerless/pugilist/rapid(src)
+ new /obj/item/clothing/accessory/padding(src)
+ new /obj/item/clothing/under/chameleon(src)
+ new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
+ new /obj/item/lighter(src)
+
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 0fc47f649a..634537e5a2 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -163,14 +163,14 @@
if(status)
if(baton_stun(M, user, disarming))
user.do_attack_animation(M)
- user.adjustStaminaLossBuffered(getweight()) //CIT CHANGE - makes stunbatonning others cost stamina
+ user.adjustStaminaLossBuffered(getweight(user, STAM_COST_BATON_MOB_MULT))
else if(user.a_intent != INTENT_HARM) //they'll try to bash in the last proc.
M.visible_message("[user] has prodded [M] with [src]. Luckily it was off. ", \
"[user] has prodded you with [src]. Luckily it was off ")
return disarming || (user.a_intent != INTENT_HARM)
/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, disarming = FALSE)
- if(L.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) //No message; check_shields() handles that
+ if(L.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; check_shields() handles that
playsound(L, 'sound/weapons/genhit.ogg', 50, 1)
return FALSE
var/stunpwr = stamforce
@@ -232,11 +232,8 @@
/obj/item/melee/baton/stunsword
name = "stunsword"
desc = "not actually sharp, this sword is functionally identical to a stunbaton"
- icon = 'modular_citadel/icons/obj/stunsword.dmi'
icon_state = "stunsword"
item_state = "sword"
- lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi'
- righthand_file = 'modular_citadel/icons/mob/inhands/stunsword_right.dmi'
/obj/item/melee/baton/stunsword/get_belt_overlay()
if(istype(loc, /obj/item/storage/belt/sabre))
diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm
index f592055338..e81294ceea 100644
--- a/code/game/objects/items/tanks/jetpack.dm
+++ b/code/game/objects/items/tanks/jetpack.dm
@@ -52,7 +52,7 @@
ion_trail.start()
RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/move_react)
if(full_speed)
- user.add_movespeed_modifier(MOVESPEED_ID_JETPACK, priority=100, multiplicative_slowdown=-2, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK)
+ user.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed)
/obj/item/tank/jetpack/proc/turn_off(mob/user)
on = FALSE
@@ -60,7 +60,7 @@
icon_state = initial(icon_state)
ion_trail.stop()
UnregisterSignal(user, COMSIG_MOVABLE_MOVED)
- user.remove_movespeed_modifier(MOVESPEED_ID_JETPACK)
+ user.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed)
/obj/item/tank/jetpack/proc/move_react(mob/user)
allow_thrust(0.01, user)
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index c76977947f..0877f56725 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -204,7 +204,7 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- distribute_pressure = CLAMP(round(pressure), TANK_MIN_RELEASE_PRESSURE, TANK_MAX_RELEASE_PRESSURE)
+ distribute_pressure = clamp(round(pressure), TANK_MIN_RELEASE_PRESSURE, TANK_MAX_RELEASE_PRESSURE)
/obj/item/tank/remove_air(amount)
return air_contents.remove(amount)
diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm
index 6fbf9316ed..08390e1607 100644
--- a/code/game/objects/items/theft_tools.dm
+++ b/code/game/objects/items/theft_tools.dm
@@ -256,7 +256,7 @@
. = ..()
if(!sliver)
return
- if(proximity && ismovableatom(O) && O != sliver)
+ if(proximity && ismovable(O) && O != sliver)
Consume(O, user)
/obj/item/hemostat/supermatter/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) // no instakill supermatter javelins
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 9291b72467..ff59b85332 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -241,11 +241,13 @@
playsound(user, activation_sound, transform_volume, 1)
w_class = WEIGHT_CLASS_BULKY
AddElement(/datum/element/sword_point)
+ total_mass = total_mass_on
else
to_chat(user, "[deactivation_message] ")
playsound(user, deactivation_sound, transform_volume, 1)
w_class = WEIGHT_CLASS_SMALL
RemoveElement(/datum/element/sword_point)
+ total_mass = initial(total_mass)
update_icon()
add_fingerprint(user)
@@ -287,9 +289,6 @@
else
return ..()
-/obj/item/toy/sword/getweight()
- return (active ? total_mass_on : total_mass) || w_class *1.25
-
/obj/item/toy/sword/cx
name = "\improper DX Non-Euplastic LightSword"
desc = "A deluxe toy replica of an energy sword. Realistic visuals and sounds! Ages 8 and up."
@@ -903,79 +902,57 @@
name = "hand of cards"
desc = "A number of cards not in a deck, customarily held in ones hand."
icon = 'icons/obj/toy.dmi'
- icon_state = "nanotrasen_hand2"
+ icon_state = "none"
w_class = WEIGHT_CLASS_TINY
var/list/currenthand = list()
var/choice = null
-
/obj/item/toy/cards/cardhand/attack_self(mob/user)
- user.set_machine(src)
+ var/list/handradial = list()
interact(user)
-/obj/item/toy/cards/cardhand/ui_interact(mob/user)
- . = ..()
- var/dat = "You have: "
for(var/t in currenthand)
- dat += "A [t]. "
- dat += "Which card will you remove next?"
- var/datum/browser/popup = new(user, "cardhand", "Hand of Cards", 400, 240)
- popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
- popup.set_content(dat)
- popup.open()
+ handradial[t] = image(icon = src.icon, icon_state = "sc_[t]_[deckstyle]")
-
-/obj/item/toy/cards/cardhand/Topic(href, href_list)
- if(..())
- return
if(usr.stat || !ishuman(usr))
return
var/mob/living/carbon/human/cardUser = usr
- var/O = src
- if(href_list["pick"])
- if (cardUser.is_holding(src))
- var/choice = href_list["pick"]
- var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc)
- src.currenthand -= choice
- C.parentdeck = src.parentdeck
- C.cardname = choice
- C.apply_card_vars(C,O)
- C.pickup(cardUser)
- cardUser.put_in_hands(C)
- cardUser.visible_message("[cardUser] draws a card from [cardUser.p_their()] hand. ", "You take the [C.cardname] from your hand. ")
-
- interact(cardUser)
- if(src.currenthand.len < 3)
- src.icon_state = "[deckstyle]_hand2"
- else if(src.currenthand.len < 4)
- src.icon_state = "[deckstyle]_hand3"
- else if(src.currenthand.len < 5)
- src.icon_state = "[deckstyle]_hand4"
- if(src.currenthand.len == 1)
- var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(src.loc)
- N.parentdeck = src.parentdeck
- N.cardname = src.currenthand[1]
- N.apply_card_vars(N,O)
- qdel(src)
- N.pickup(cardUser)
- cardUser.put_in_hands(N)
- to_chat(cardUser, "You also take [currenthand[1]] and hold it. ")
- cardUser << browse(null, "window=cardhand")
+ if(!(cardUser.mobility_flags & MOBILITY_USE))
return
+ var/O = src
+ var/choice = show_radial_menu(usr,src, handradial, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 36, require_near = TRUE)
+ if(!choice)
+ return FALSE
+ var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc)
+ currenthand -= choice
+ handradial -= choice
+ C.parentdeck = parentdeck
+ C.cardname = choice
+ C.apply_card_vars(C,O)
+ C.pickup(cardUser)
+ cardUser.put_in_hands(C)
+ cardUser.visible_message("[cardUser] draws a card from [cardUser.p_their()] hand. ", "You take the [C.cardname] from your hand. ")
+
+ interact(cardUser)
+ update_sprite()
+ if(length(currenthand) == 1)
+ var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(loc)
+ N.parentdeck = parentdeck
+ N.cardname = currenthand[1]
+ N.apply_card_vars(N,O)
+ qdel(src)
+ N.pickup(cardUser)
+ cardUser.put_in_hands(N)
+ to_chat(cardUser, "You also take [currenthand[1]] and hold it. ")
/obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living/user, params)
if(istype(C))
if(C.parentdeck == src.parentdeck)
src.currenthand += C.cardname
- user.visible_message("[user] adds a card to [user.p_their()] hand.", "You add the [C.cardname] to your hand. ")
+ user.visible_message("[user] adds a card to [user.p_their()] hand. ", "You add the [C.cardname] to your hand. ")
qdel(C)
interact(user)
- if(currenthand.len > 4)
- src.icon_state = "[deckstyle]_hand5"
- else if(currenthand.len > 3)
- src.icon_state = "[deckstyle]_hand4"
- else if(currenthand.len > 2)
- src.icon_state = "[deckstyle]_hand3"
+ update_sprite(src)
else
to_chat(user, "You can't mix cards from other decks! ")
else
@@ -984,7 +961,7 @@
/obj/item/toy/cards/cardhand/apply_card_vars(obj/item/toy/cards/newobj,obj/item/toy/cards/sourceobj)
..()
newobj.deckstyle = sourceobj.deckstyle
- newobj.icon_state = "[deckstyle]_hand2" // Another dumb hack, without this the hand is invisible (or has the default deckstyle) until another card is added.
+ update_sprite()
newobj.card_hitsound = sourceobj.card_hitsound
newobj.card_force = sourceobj.card_force
newobj.card_throwforce = sourceobj.card_throwforce
@@ -993,6 +970,31 @@
newobj.card_attack_verb = sourceobj.card_attack_verb
newobj.resistance_flags = sourceobj.resistance_flags
+/**
+ * check_menu: Checks if we are allowed to interact with a radial menu
+ *
+ * Arguments:
+ * * user The mob interacting with a menu
+ */
+/obj/item/toy/cards/cardhand/proc/check_menu(mob/living/user)
+ if(!istype(user))
+ return FALSE
+ if(user.incapacitated())
+ return FALSE
+ return TRUE
+
+/**
+ * This proc updates the sprite for when you create a hand of cards
+ */
+/obj/item/toy/cards/cardhand/proc/update_sprite()
+ cut_overlays()
+ var/overlay_cards = currenthand.len
+
+ var/k = overlay_cards == 2 ? 1 : overlay_cards - 2
+ for(var/i = k; i <= overlay_cards; i++)
+ var/card_overlay = image(icon=src.icon,icon_state="sc_[currenthand[i]]_[deckstyle]",pixel_x=(1-i+k)*3,pixel_y=(1-i+k)*3)
+ add_overlay(card_overlay)
+
/obj/item/toy/cards/singlecard
name = "card"
desc = "a card"
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index 2b6a91eb51..acfc9a6e85 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -1182,7 +1182,7 @@
if(iscyborg(target))
..()
return
- if(target.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) //No message; run_block() handles that
+ if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; run_block() handles that
playsound(target, 'sound/weapons/genhit.ogg', 50, 1)
return FALSE
if(user.a_intent != INTENT_HARM)
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 8496a8a216..2d132e4eef 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -303,7 +303,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
custom_materials = list(/datum/material/iron=500, /datum/material/glass=500)
resistance_flags = FIRE_PROOF
-
/obj/item/switchblade
name = "switchblade"
icon_state = "switchblade"
@@ -639,6 +638,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
w_class = WEIGHT_CLASS_SMALL
//Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc.
var/list/strong_against
+ var/list/spider_panic
/obj/item/melee/flyswatter/Initialize()
. = ..()
@@ -648,7 +648,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
/mob/living/simple_animal/cockroach,
/obj/item/queen_bee
))
-
+ spider_panic = typecacheof(list(
+ /mob/living/simple_animal/banana_spider,
+ /mob/living/simple_animal/hostile/poison/giant_spider,
+ ))
/obj/item/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag)
. = ..()
@@ -659,6 +662,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
if(istype(target, /mob/living/))
var/mob/living/bug = target
bug.death(1)
+ if(is_type_in_typecache(target, spider_panic))
+ to_chat(user, "You easily land a critical blow on the [target]. ")
+ if(istype(target, /mob/living/))
+ var/mob/living/bug = target
+ bug.adjustBruteLoss(-35) //What kinda mad man would go into melee with a spider?!
else
qdel(target)
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index e582aa7e67..8dac972d04 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -31,7 +31,7 @@
if(damage_flag)
armor_protection = armor.getRating(damage_flag)
if(armor_protection) //Only apply weak-against-armor/hollowpoint effects if there actually IS armor.
- armor_protection = CLAMP(armor_protection - armour_penetration, 0, 100)
+ armor_protection = clamp(armor_protection - armour_penetration, 0, 100)
return round(damage_amount * (100 - armor_protection)*0.01, DAMAGE_PRECISION)
//the sound played when the obj is damaged.
@@ -213,7 +213,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
if(T.intact && level == 1) //fire can't damage things hidden below the floor.
return
if(exposed_temperature && !(resistance_flags & FIRE_PROOF))
- take_damage(CLAMP(0.02 * exposed_temperature, 0, 20), BURN, "fire", 0)
+ take_damage(clamp(0.02 * exposed_temperature, 0, 20), BURN, "fire", 0)
if(!(resistance_flags & ON_FIRE) && (resistance_flags & FLAMMABLE))
resistance_flags |= ON_FIRE
SSfire_burning.processing[src] = src
@@ -244,7 +244,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
if(has_buckled_mobs())
for(var/m in buckled_mobs)
var/mob/living/buckled_mob = m
- buckled_mob.electrocute_act((CLAMP(round(strength/400), 10, 90) + rand(-5, 5)), src, flags = SHOCK_TESLA)
+ buckled_mob.electrocute_act((clamp(round(strength/400), 10, 90) + rand(-5, 5)), src, flags = SHOCK_TESLA)
/obj/proc/reset_shocked()
obj_flags &= ~BEING_SHOCKED
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index d2d72193b7..199f0c51e2 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -3,6 +3,7 @@
var/crit_fail = FALSE
animate_movement = 2
speech_span = SPAN_ROBOT
+ vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of obj in openspace.
var/obj_flags = CAN_BE_HIT
var/set_obj_flags // ONLY FOR MAPPING: Sets flags from a string list, handled in Initialize. Usage: set_obj_flags = "EMAGGED;!CAN_BE_HIT" to set EMAGGED and clear CAN_BE_HIT.
@@ -314,3 +315,11 @@
current_skin = choice
icon_state = unique_reskin[choice]
to_chat(M, "[src] is now skinned as '[choice]'.")
+
+//Called when the object is constructed by an autolathe
+//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes
+/obj/proc/autolathe_crafted(obj/machinery/autolathe/A)
+ return
+
+/obj/proc/rnd_crafted(obj/machinery/rnd/production/P)
+ return
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 3e35c12314..1090bae9f8 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -131,7 +131,7 @@
if(C.get_amount() >= 5)
playsound(loc, 'sound/items/deconstruct.ogg', 50, 1)
to_chat(user, "You start to add cables to the frame... ")
- if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5))
+ if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use_tool(src, user, 0, 5))
to_chat(user, "You add cables to the frame. ")
state = CABLED_CORE
update_icon()
diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm
index d2fff9649d..821409c26b 100644
--- a/code/game/objects/structures/barsigns.dm
+++ b/code/game/objects/structures/barsigns.dm
@@ -84,7 +84,6 @@
panel_open = FALSE
else if(istype(I, /obj/item/stack/cable_coil) && panel_open)
- var/obj/item/stack/cable_coil/C = I
if(obj_flags & EMAGGED) //Emagged, not broken by EMP
to_chat(user, "Sign has been damaged beyond repair! ")
return
@@ -92,7 +91,7 @@
to_chat(user, "This sign is functioning properly! ")
return
- if(C.use(2))
+ if(I.use_tool(src, user, 0, 2))
to_chat(user, "You replace the burnt wiring. ")
broken = FALSE
else
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index c593451c24..d3e8ecf0a6 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -153,7 +153,7 @@
///Material chair
/obj/structure/chair/greyscale
icon_state = "chair_greyscale"
- material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
+ material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS
item_chair = /obj/item/chair/greyscale
buildstacktype = null //Custom mats handle this
@@ -382,7 +382,7 @@
/obj/item/chair/greyscale
icon_state = "chair_greyscale_toppled"
item_state = "chair_greyscale"
- material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
+ material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS
origin_type = /obj/structure/chair/greyscale
/obj/item/chair/stool
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index a40314c7ad..5da04a6686 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -505,7 +505,7 @@
/obj/structure/closet/container_resist(mob/living/user)
if(opened)
return
- if(ismovableatom(loc))
+ if(ismovable(loc))
user.changeNext_move(CLICK_CD_BREAKOUT)
user.last_special = world.time + CLICK_CD_BREAKOUT
var/atom/movable/AM = loc
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index 83827b56b6..0da502283b 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -37,8 +37,8 @@
..()
new /obj/item/clothing/glasses/eyepatch(src)
new /obj/item/clothing/glasses/sunglasses(src)
- new /obj/item/clothing/gloves/combat(src)
- new /obj/item/clothing/gloves/combat(src)
+ new /obj/item/clothing/gloves/tackler/combat(src)
+ new /obj/item/clothing/gloves/tackler/combat(src)
new /obj/item/clothing/head/helmet/swat(src)
new /obj/item/clothing/head/helmet/swat(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 58d72e6ee0..05798df953 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -77,6 +77,7 @@
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson/engine(src)
new /obj/item/storage/box/emptysandbags(src)
+ new /obj/item/cartridge/engineering(src)
/obj/structure/closet/secure_closet/atmospherics
name = "\proper atmospheric technician's locker"
@@ -97,6 +98,7 @@
new /obj/item/clothing/head/hardhat/atmos(src)
new /obj/item/clothing/glasses/meson/engine/tray(src)
new /obj/item/extinguisher/advanced(src)
+ new /obj/item/cartridge/atmos(src)
/*
* Empty lockers
diff --git a/code/game/objects/structures/fireplace.dm b/code/game/objects/structures/fireplace.dm
index ee8f285230..ca66dbd8de 100644
--- a/code/game/objects/structures/fireplace.dm
+++ b/code/game/objects/structures/fireplace.dm
@@ -130,7 +130,7 @@
if(burn_time_remaining() < MAXIMUM_BURN_TIMER)
flame_expiry_timer = world.time + MAXIMUM_BURN_TIMER
else
- fuel_added = CLAMP(fuel_added + amount, 0, MAXIMUM_BURN_TIMER)
+ fuel_added = clamp(fuel_added + amount, 0, MAXIMUM_BURN_TIMER)
/obj/structure/fireplace/proc/burn_time_remaining()
if(lit)
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index 261dae1ea2..c0ee7bb987 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -350,11 +350,28 @@
icon = 'icons/obj/flora/rocks.dmi'
resistance_flags = FIRE_PROOF
density = TRUE
+ /// Itemstack that is dropped when a rock is mined with a pickaxe
+ var/obj/item/stack/mineResult = /obj/item/stack/ore/glass/basalt
+ /// Amount of the itemstack to drop
+ var/mineAmount = 20
/obj/structure/flora/rock/Initialize()
. = ..()
icon_state = "[icon_state][rand(1,3)]"
+/obj/structure/flora/rock/attackby(obj/item/W, mob/user, params)
+ if(!mineResult || W.tool_behaviour != TOOL_MINING)
+ return ..()
+ if(flags_1 & NODECONSTRUCT_1)
+ return ..()
+ to_chat(user, "You start mining... ")
+ if(W.use_tool(src, user, 40, volume=50))
+ to_chat(user, "You finish mining the rock. ")
+ if(mineResult && mineAmount)
+ new mineResult(get_turf(src), mineAmount)
+ SSblackbox.record_feedback("tally", "pick_used_mining", 1, W.type)
+ qdel(src)
+
/obj/structure/flora/rock/pile
icon_state = "lavarocks"
desc = "A pile of rocks."
diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index c918e7b867..082c4bd723 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -32,6 +32,7 @@
new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere?
new_spawn.socks = "Nude"
new_spawn.update_body(TRUE)
+ new_spawn.language_holder.selected_language = /datum/language/sylvan
//Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers.
@@ -63,10 +64,6 @@
else
to_chat(new_spawn, "You have been born outside of your natural home! Whether you decide to return home, or make due with your new home is your own decision. ")
- new_spawn.grant_language(/datum/language/draconic)
- var/datum/language_holder/holder = new_spawn.get_language_holder()
- holder.selected_default_language = /datum/language/draconic
-
//Ash walkers on birth understand how to make bone bows, bone arrows and ashen arrows
new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_arrow)
@@ -453,7 +450,7 @@
name = "Syndicate Operative Empty"
uniform = /obj/item/clothing/under/syndicate
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
ears = /obj/item/radio/headset/syndicate/alt
back = /obj/item/storage/backpack
implants = list(/obj/item/implant/weapons_auth)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 7c373f2734..fd62ffd368 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -294,7 +294,7 @@
/obj/structure/girder/CanAStarPass(ID, dir, caller)
. = !density
- if(ismovableatom(caller))
+ if(ismovable(caller))
var/atom/movable/mover = caller
. = . || (mover.pass_flags & PASSGRILLE)
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 61983dcb4f..54e08db210 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -129,7 +129,7 @@
/obj/structure/grille/CanAStarPass(ID, dir, caller)
. = !density
- if(ismovableatom(caller))
+ if(ismovable(caller))
var/atom/movable/mover = caller
. = . || (mover.pass_flags & PASSGRILLE)
diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm
new file mode 100644
index 0000000000..e68918c764
--- /dev/null
+++ b/code/game/objects/structures/icemoon/cave_entrance.dm
@@ -0,0 +1,179 @@
+GLOBAL_LIST_INIT(ore_probability, list(/obj/item/stack/ore/uranium = 50,
+ /obj/item/stack/ore/iron = 100,
+ /obj/item/stack/ore/plasma = 75,
+ /obj/item/stack/ore/silver = 50,
+ /obj/item/stack/ore/gold = 50,
+ /obj/item/stack/ore/diamond = 25,
+ /obj/item/stack/ore/bananium = 5,
+ /obj/item/stack/ore/titanium = 75))
+
+/obj/structure/spawner/ice_moon
+ name = "cave entrance"
+ desc = "A hole in the ground, filled with monsters ready to defend it."
+ icon = 'icons/mob/nest.dmi'
+ icon_state = "hole"
+ faction = list("mining")
+ max_mobs = 3
+ max_integrity = 250
+ mob_types = list(/mob/living/simple_animal/hostile/asteroid/wolf)
+ move_resist = INFINITY
+ anchored = TRUE
+
+/obj/structure/spawner/ice_moon/Initialize()
+ . = ..()
+ clear_rock()
+
+/**
+ * Clears rocks around the spawner when it is created
+ *
+ */
+/obj/structure/spawner/ice_moon/proc/clear_rock()
+ for(var/turf/F in RANGE_TURFS(2, src))
+ if(abs(src.x - F.x) + abs(src.y - F.y) > 3)
+ continue
+ if(ismineralturf(F))
+ var/turf/closed/mineral/M = F
+ M.ScrapeAway(null, CHANGETURF_IGNORE_AIR)
+
+/obj/structure/spawner/ice_moon/deconstruct(disassembled)
+ destroy_effect()
+ drop_loot()
+ return ..()
+
+/**
+ * Effects and messages created when the spawner is destroyed
+ *
+ */
+/obj/structure/spawner/ice_moon/proc/destroy_effect()
+ playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE)
+ visible_message("[src] collapses, sealing everything inside! \nOres fall out of the cave as it is destroyed! ")
+
+/**
+ * Drops items after the spawner is destroyed
+ *
+ */
+/obj/structure/spawner/ice_moon/proc/drop_loot()
+ for(var/type in GLOB.ore_probability)
+ var/chance = GLOB.ore_probability[type]
+ if(!prob(chance))
+ continue
+ new type(loc, rand(5, 10))
+
+/obj/structure/spawner/ice_moon/polarbear
+ max_mobs = 1
+ spawn_time = 60 SECONDS
+ mob_types = list(/mob/living/simple_animal/hostile/asteroid/polarbear)
+
+/obj/structure/spawner/ice_moon/polarbear/clear_rock()
+ for(var/turf/F in RANGE_TURFS(1, src))
+ if(ismineralturf(F))
+ var/turf/closed/mineral/M = F
+ M.ScrapeAway(null, CHANGETURF_IGNORE_AIR)
+
+/obj/structure/spawner/ice_moon/demonic_portal
+ name = "demonic portal"
+ desc = "A portal that goes to another world, normal creatures couldn't survive there."
+ icon_state = "nether"
+ mob_types = list(/mob/living/simple_animal/hostile/asteroid/ice_demon)
+ light_range = 1
+ light_color = LIGHT_COLOR_RED
+
+/obj/structure/spawner/ice_moon/demonic_portal/clear_rock()
+ for(var/turf/F in RANGE_TURFS(3, src))
+ if(abs(src.x - F.x) + abs(src.y - F.y) > 5)
+ continue
+ if(ismineralturf(F))
+ var/turf/closed/mineral/M = F
+ M.ScrapeAway(null, CHANGETURF_IGNORE_AIR)
+
+/obj/structure/spawner/ice_moon/demonic_portal/destroy_effect()
+ new /obj/effect/collapsing_demonic_portal(loc)
+
+/obj/structure/spawner/ice_moon/demonic_portal/drop_loot()
+ return
+
+/obj/structure/spawner/ice_moon/demonic_portal/ice_whelp
+ mob_types = list(/mob/living/simple_animal/hostile/asteroid/ice_whelp)
+
+/obj/structure/spawner/ice_moon/demonic_portal/snowlegion
+ mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril)
+
+/obj/effect/collapsing_demonic_portal
+ name = "collapsing demonic portal"
+ desc = "It's slowly fading!"
+ layer = TABLE_LAYER
+ icon = 'icons/mob/nest.dmi'
+ icon_state = "nether"
+ anchored = TRUE
+ density = TRUE
+
+/obj/effect/collapsing_demonic_portal/Initialize()
+ . = ..()
+ playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE)
+ visible_message("[src] begins to collapse, cutting it off from this world! ")
+ animate(src, transform = matrix().Scale(0, 1), alpha = 50, time = 5 SECONDS)
+ addtimer(CALLBACK(src, .proc/collapse), 5 SECONDS)
+
+/obj/effect/collapsing_demonic_portal/proc/collapse()
+ visible_message("Something slips out of [src]! ")
+ var/loot = rand(1, 28)
+ switch(loot)
+ if(1)
+ new /obj/item/clothing/suit/space/hardsuit/cult(loc)
+ if(2)
+ new /obj/item/clothing/glasses/godeye(loc)
+ if(3)
+ new /obj/item/reagent_containers/glass/bottle/potion/flight(loc)
+ if(4)
+ new /obj/item/organ/heart/cursed/wizard(loc)
+ if(5)
+ new /obj/item/jacobs_ladder(loc)
+ if(6)
+ new /obj/item/rod_of_asclepius(loc)
+ if(7)
+ new /obj/item/warp_cube/red(loc)
+ if(8)
+ new /obj/item/wisp_lantern(loc)
+ if(9)
+ new /obj/item/immortality_talisman(loc)
+ if(10)
+ new /obj/item/book/granter/spell/summonitem(loc)
+ if(11)
+ new /obj/item/clothing/neck/necklace/memento_mori(loc)
+ if(12)
+ new /obj/item/borg/upgrade/modkit/lifesteal(loc)
+ new /obj/item/bedsheet/cult(loc)
+ if(13)
+ new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(loc)
+ if(14)
+ new /obj/item/disk/design_disk/modkit_disc/bounty(loc)
+ if(15)
+ new /obj/item/ship_in_a_bottle(loc)
+ new /obj/item/oar(loc)
+ if(16)
+ new /obj/item/seeds/gatfruit(loc)
+ if(17)
+ new /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola(loc)
+ if(18)
+ new /obj/item/assembly/signaler/anomaly/bluespace(loc)
+ if(19)
+ new /obj/item/disk/design_disk/modkit_disc/resonator_blast(loc)
+ if(20)
+ new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(loc)
+ if(21)
+ new /obj/item/slimepotion/transference(loc)
+ if(22)
+ new /obj/item/slime_extract/adamantine(loc)
+ if(23)
+ new /obj/item/weldingtool/abductor(loc)
+ if(24)
+ new /obj/structure/elite_tumor(loc)
+ if(25)
+ new /mob/living/simple_animal/hostile/retaliate/clown/clownhulk(loc)
+ if(26)
+ new /obj/item/clothing/shoes/winterboots/ice_boots(loc)
+ if(27)
+ new /obj/item/book/granter/spell/sacredflame(loc)
+ if(28)
+ new /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom(loc)
+ qdel(src)
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index b10ca8002c..38133d9089 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -32,7 +32,6 @@
/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user)
if(!user.transferItemToLoc(I, src))
return
- updateUsrDialog()
to_chat(user, "You put [I] into [src]. ")
return
@@ -96,70 +95,82 @@
. = ..()
if(.)
return
- user.set_machine(src)
- var/dat
+
+ var/list/items = list()
if(mybag)
- dat += "[mybag.name] "
+ items += list("Trash bag" = image(icon = mybag.icon, icon_state = mybag.icon_state))
if(mymop)
- dat += "[mymop.name] "
+ items += list("Mop" = image(icon = mymop.icon, icon_state = mymop.icon_state))
if(mybroom)
- dat += "[mybroom.name] "
+ items += list("Broom" = image(icon = mybroom.icon, icon_state = mybroom.icon_state))
if(myspray)
- dat += "[myspray.name] "
+ items += list("Spray bottle" = image(icon = myspray.icon, icon_state = myspray.icon_state))
if(myreplacer)
- dat += "[myreplacer.name] "
- if(signs)
- dat += "[signs] sign\s "
- var/datum/browser/popup = new(user, "janicart", name, 240, 160)
- popup.set_content(dat)
- popup.open()
+ items += list("Light replacer" = image(icon = myreplacer.icon, icon_state = myreplacer.icon_state))
+ var/obj/item/caution/sign = locate() in src
+ if(sign)
+ items += list("Sign" = image(icon = sign.icon, icon_state = sign.icon_state))
-
-/obj/structure/janitorialcart/Topic(href, href_list)
- if(!in_range(src, usr))
+ if(!length(items))
return
- if(!isliving(usr))
+ items = sortList(items)
+ var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 38, require_near = TRUE)
+ if(!pick)
return
- var/mob/living/user = usr
- if(href_list["garbage"])
- if(mybag)
+ switch(pick)
+ if("Trash bag")
+ if(!mybag)
+ return
user.put_in_hands(mybag)
to_chat(user, "You take [mybag] from [src]. ")
mybag = null
- if(href_list["mop"])
- if(mymop)
+ if("Mop")
+ if(!mymop)
+ return
user.put_in_hands(mymop)
to_chat(user, "You take [mymop] from [src]. ")
mymop = null
- if(href_list["broom"])
- if(mybroom)
+ if("Broom")
+ if(!mybroom)
+ return
user.put_in_hands(mybroom)
to_chat(user, "You take [mybroom] from [src]. ")
mybroom = null
- if(href_list["spray"])
- if(myspray)
+ if("Spray bottle")
+ if(!myspray)
+ return
user.put_in_hands(myspray)
to_chat(user, "You take [myspray] from [src]. ")
myspray = null
- if(href_list["replacer"])
- if(myreplacer)
+ if("Light replacer")
+ if(!myreplacer)
+ return
user.put_in_hands(myreplacer)
to_chat(user, "You take [myreplacer] from [src]. ")
myreplacer = null
- if(href_list["sign"])
- if(signs)
- var/obj/item/caution/Sign = locate() in src
- if(Sign)
- user.put_in_hands(Sign)
- to_chat(user, "You take \a [Sign] from [src]. ")
- signs--
- else
- WARNING("Signs ([signs]) didn't match contents")
- signs = 0
+ if("Sign")
+ if(signs <= 0)
+ return
+ user.put_in_hands(sign)
+ to_chat(user, "You take \a [sign] from [src]. ")
+ signs--
+ else
+ return
update_icon()
- updateUsrDialog()
+/**
+ * check_menu: Checks if we are allowed to interact with a radial menu
+ *
+ * Arguments:
+ * * user The mob interacting with a menu
+ */
+/obj/structure/janitorialcart/proc/check_menu(mob/living/user)
+ if(!istype(user))
+ return FALSE
+ if(user.incapacitated())
+ return FALSE
+ return TRUE
/obj/structure/janitorialcart/update_overlays()
. = ..()
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index 53a1f609d1..f321498bfd 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -91,8 +91,13 @@
if (!is_ghost && !in_range(src, user))
return
+ var/list/tool_list = list(
+ "Up" = image(icon = 'icons/testing/turf_analysis.dmi', icon_state = "red_arrow", dir = NORTH),
+ "Down" = image(icon = 'icons/testing/turf_analysis.dmi', icon_state = "red_arrow", dir = SOUTH)
+ )
+
if (up && down)
- var/result = alert("Go up or down [src]?", "Ladder", "Up", "Down", "Cancel")
+ var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
if (!is_ghost && !in_range(src, user))
return // nice try
switch(result)
@@ -112,6 +117,11 @@
if(!is_ghost)
add_fingerprint(user)
+/obj/structure/ladder/proc/check_menu(mob/user)
+ if(user.incapacitated() || !user.Adjacent(src))
+ return FALSE
+ return TRUE
+
/obj/structure/ladder/attack_hand(mob/user)
. = ..()
if(.)
diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm
new file mode 100644
index 0000000000..4f6256e9c4
--- /dev/null
+++ b/code/game/objects/structures/lavaland/geyser.dm
@@ -0,0 +1,86 @@
+//If you look at the "geyser_soup" overlay icon_state, you'll see that the first frame has 25 ticks.
+//That's because the first 18~ ticks are completely skipped for some ungodly weird fucking byond reason
+
+/obj/structure/geyser
+ name = "geyser"
+ icon = 'icons/obj/lavaland/terrain.dmi'
+ icon_state = "geyser"
+ anchored = TRUE
+
+ var/erupting_state = null //set to null to get it greyscaled from "[icon_state]_soup". Not very usable with the whole random thing, but more types can be added if you change the spawn prob
+ var/activated = FALSE //whether we are active and generating chems
+ var/reagent_id = /datum/reagent/fuel/oil
+ var/potency = 2 //how much reagents we add every process (2 seconds)
+ var/max_volume = 500
+ var/start_volume = 50
+
+/obj/structure/geyser/proc/start_chemming()
+ activated = TRUE
+ create_reagents(max_volume, DRAINABLE)
+ reagents.add_reagent(reagent_id, start_volume)
+ START_PROCESSING(SSfluids, src) //It's main function is to be plumbed, so use SSfluids
+ if(erupting_state)
+ icon_state = erupting_state
+ else
+ var/mutable_appearance/I = mutable_appearance('icons/obj/lavaland/terrain.dmi', "[icon_state]_soup")
+ I.color = mix_color_from_reagents(reagents.reagent_list)
+ add_overlay(I)
+
+/obj/structure/geyser/process()
+ if(activated && reagents.total_volume <= reagents.maximum_volume) //this is also evaluated in add_reagent, but from my understanding proc calls are expensive
+ reagents.add_reagent(reagent_id, potency)
+
+/obj/structure/geyser/plunger_act(obj/item/plunger/P, mob/living/user, _reinforced)
+ if(!_reinforced)
+ to_chat(user, "The [P.name] isn't strong enough! ")
+ return
+ if(activated)
+ to_chat(user, "The [name] is already active! ")
+ return
+
+ to_chat(user, "You start vigorously plunging [src]! ")
+ if(do_after(user, 50 * P.plunge_mod, target = src) && !activated)
+ start_chemming()
+
+/obj/structure/geyser/random
+ erupting_state = null
+ var/list/options = list(/datum/reagent/clf3 = 10, /datum/reagent/water/hollowwater = 10, /datum/reagent/medicine/omnizine/protozine = 6, /datum/reagent/wittel = 1)
+
+/obj/structure/geyser/random/Initialize()
+ . = ..()
+ reagent_id = pickweight(options)
+
+/obj/item/plunger
+ name = "plunger"
+ desc = "It's a plunger for plunging."
+ icon = 'icons/obj/watercloset.dmi'
+ icon_state = "plunger"
+
+ slot_flags = ITEM_SLOT_MASK
+
+ var/plunge_mod = 1 //time*plunge_mod = total time we take to plunge an object
+ var/reinforced = FALSE //whether we do heavy duty stuff like geysers
+
+/obj/item/plunger/attack_obj(obj/O, mob/living/user)
+ if(!O.plunger_act(src, user, reinforced))
+ return ..()
+
+/obj/item/plunger/throw_impact(atom/hit_atom, datum/thrownthing/tt)
+ . = ..()
+ if(tt.target_zone != BODY_ZONE_HEAD)
+ return
+ if(iscarbon(hit_atom))
+ var/mob/living/carbon/H = hit_atom
+ if(!H.wear_mask)
+ H.equip_to_slot_if_possible(src, ITEM_SLOT_MASK)
+ H.visible_message("The plunger slams into [H]'s face! ", "The plunger suctions to your face! ")
+
+/obj/item/plunger/reinforced
+ name = "reinforced plunger"
+ desc = "It's an M. 7 Reinforced Plunger© for heavy duty plunging."
+ icon_state = "reinforced_plunger"
+
+ reinforced = TRUE
+ plunge_mod = 0.8
+
+ custom_premium_price = 1200
diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm
index 6ce0228f54..2911babd83 100644
--- a/code/game/objects/structures/lavaland/necropolis_tendril.dm
+++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm
@@ -25,6 +25,9 @@
/obj/structure/spawner/lavaland/legion
mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril)
+/obj/structure/spawner/lavaland/icewatcher
+ mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing)
+
GLOBAL_LIST_INIT(tendrils, list())
/obj/structure/spawner/lavaland/Initialize()
. = ..()
@@ -94,4 +97,4 @@ GLOBAL_LIST_INIT(tendrils, list())
for(var/turf/T in range(2,src))
if(!T.density)
T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland, flags = CHANGETURF_INHERIT_AIR)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm
index 2244742f3a..ad128b01c2 100644
--- a/code/game/objects/structures/loom.dm
+++ b/code/game/objects/structures/loom.dm
@@ -38,7 +38,4 @@
user.show_message("You weave \the [S.name] into a workable fabric. ", MSG_VISUAL)
return TRUE
-/obj/structure/loom/unanchored
- anchored = FALSE
-
#undef FABRIC_PER_SHEET
\ No newline at end of file
diff --git a/code/game/objects/structures/loot_pile.dm b/code/game/objects/structures/loot_pile.dm
new file mode 100644
index 0000000000..b6249ec1e4
--- /dev/null
+++ b/code/game/objects/structures/loot_pile.dm
@@ -0,0 +1,66 @@
+ /*
+ * Loot piles structures, somewhat inspired from Polaris 13 ones but without the one search per pile ckey/mind restriction
+ * because the actual code is located its own element and has enough variables already. the piles themselves merely cosmetical.
+ */
+/obj/structure/loot_pile
+ name = "pile of junk"
+ desc = "Lots of junk lying around. They say one man's trash is another man's treasure."
+ icon = 'icons/obj/loot_piles.dmi'
+ icon_state = "randompile"
+ density = FALSE
+ anchored = TRUE
+ var/loot_amount = 5
+ var/delete_on_depletion = FALSE
+ var/can_use_hands = TRUE
+ var/scavenge_time = 12 SECONDS
+ var/allowed_tools = list(TOOL_SHOVEL = 0.6) //list of tool_behaviours with associated speed multipliers (lower is better)
+ var/icon_states_to_use = list("junk_pile1", "junk_pile2", "junk_pile3", "junk_pile4", "junk_pile5")
+ var/list/loot
+
+ /*
+ * Associated values in this list are not weights but numbers of times the kery can be rolled
+ * before being removed from ALL piles with same kind. This is why I wanted 'scavenging' to be an element and not a component.
+ */
+ var/list/unique_loot
+
+ /*
+ * used for restrictions such as "one per mind", "one per ckey". Depending on the setting, these can be either limited to
+ * the current pile or shared throughout all atoms attached to this element.
+ */
+ var/loot_restriction = NO_LOOT_RESTRICTION
+ var/maximum_loot_per_player = 1
+
+/obj/structure/loot_pile/Initialize()
+ . = ..()
+ icon_state = pick(icon_states_to_use)
+
+/obj/structure/loot_pile/ComponentInitialize()
+ . = ..()
+ if(loot)
+ AddElement(/datum/element/scavenging, loot_amount, loot, unique_loot, scavenge_time, can_use_hands, allowed_tools, null, delete_on_depletion, loot_restriction, maximum_loot_per_player)
+
+//uses the maintenance_loot global list, mostly boring stuff and mices.
+/obj/structure/loot_pile/maint
+ name = "trash pile"
+ desc = "A heap of garbage, but maybe there's something interesting inside?"
+ density = TRUE
+ layer = TABLE_LAYER
+ climbable = TRUE
+ pass_flags = LETPASSTHROW
+ loot = list(
+ SCAVENGING_FOUND_NOTHING = 50,
+ SCAVENGING_SPAWN_MOUSE = 10,
+ SCAVENGING_SPAWN_MICE = 5,
+ SCAVENGING_SPAWN_TOM = 1,
+ /obj/item/clothing/gloves/color/yellow = 0.5)
+ unique_loot = list(/obj/item/clothing/gloves/color/yellow = 5, SCAVENGING_SPAWN_TOM = 1)
+
+/obj/structure/loot_pile/maint/ComponentInitialize()
+ var/static/safe_maint_items
+ if(!safe_maint_items)
+ safe_maint_items = list()
+ for(var/A in GLOB.maintenance_loot)
+ if(ispath(A, /obj/item))
+ safe_maint_items[A] = GLOB.maintenance_loot[A]
+ loot += safe_maint_items
+ return ..()
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index be783f387e..e32def727a 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -159,7 +159,7 @@
if(H.dna.species.use_skintones)
var/list/choices = GLOB.skin_tones
- if(CONFIG_GET(number/allow_custom_skintones))
+ if(CONFIG_GET(flag/allow_custom_skintones))
choices += "custom"
var/new_s_tone = input(H, "Choose your skin tone:", "Race change") as null|anything in choices
if(new_s_tone)
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 6d9e30b25f..19106f5fc4 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -341,7 +341,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
to_chat(user, "That's not connected to anything! ")
/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user)
- if(!ismovableatom(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user)
+ if(!ismovable(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user)
return
if(!ismob(O))
if(!istype(O, /obj/structure/closet/body_bag))
@@ -383,6 +383,6 @@ GLOBAL_LIST_EMPTY(crematoriums)
/obj/structure/tray/m_tray/CanAStarPass(ID, dir, caller)
. = !density
- if(ismovableatom(caller))
+ if(ismovable(caller))
var/atom/movable/mover = caller
. = . || (mover.pass_flags & PASSTABLE)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 550c0216c6..30e451aa14 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -103,7 +103,7 @@
/obj/structure/table/CanAStarPass(ID, dir, caller)
. = !density
- if(ismovableatom(caller))
+ if(ismovable(caller))
var/atom/movable/mover = caller
. = . || (mover.pass_flags & PASSTABLE)
@@ -175,8 +175,8 @@
if(!click_params || !click_params["icon-x"] || !click_params["icon-y"])
return
//Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
- I.pixel_x = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
- I.pixel_y = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
+ I.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
+ I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
return 1
else
return ..()
@@ -211,7 +211,7 @@
/obj/structure/table/greyscale
icon = 'icons/obj/smooth_structures/table_greyscale.dmi'
icon_state = "table"
- material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
+ material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS
buildstack = null //No buildstack, so generate from mat datums
/*
@@ -610,7 +610,7 @@
/obj/structure/rack/CanAStarPass(ID, dir, caller)
. = !density
- if(ismovableatom(caller))
+ if(ismovable(caller))
var/atom/movable/mover = caller
. = . || (mover.pass_flags & PASSTABLE)
diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm
index 17ca178cd9..c3b388fc29 100644
--- a/code/game/objects/structures/transit_tubes/station.dm
+++ b/code/game/objects/structures/transit_tubes/station.dm
@@ -152,8 +152,8 @@
pod_moving = 0
if(!QDELETED(pod))
var/datum/gas_mixture/floor_mixture = loc.return_air()
- ARCHIVE_TEMPERATURE(floor_mixture)
- ARCHIVE_TEMPERATURE(pod.air_contents)
+ ARCHIVE(floor_mixture)
+ ARCHIVE(pod.air_contents)
pod.air_contents.share(floor_mixture, 1) //mix the pod's gas mixture with the tile it's on
air_update_turf()
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index 04c3909696..4544cab3da 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -169,8 +169,7 @@
if(do_after(user, 40, target = src))
if(!src || !anchored || src.state != "01")
return
- var/obj/item/stack/cable_coil/CC = W
- if(!CC.use(1))
+ if(!W.use_tool(src, user, 0, 1))
to_chat(user, "You need more cable to do this! ")
return
to_chat(user, "You wire the windoor. ")
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 5dd4e7d987..e4d93ea8de 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -1,3 +1,18 @@
+#define NOT_ELECTROCHROMATIC 0
+#define ELECTROCHROMATIC_OFF 1
+#define ELECTROCHROMATIC_DIMMED 2
+
+GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
+
+/proc/do_electrochromatic_toggle(new_status, id)
+ var/list/windows = GLOB.electrochromatic_window_lookup["[id]"]
+ if(!windows)
+ return
+ var/obj/structure/window/W //define outside for performance because obviously this matters.
+ for(var/i in windows)
+ W = i
+ new_status? W.electrochromatic_dim() : W.electrochromatic_off()
+
/obj/structure/window
name = "window"
desc = "A window."
@@ -28,8 +43,15 @@
rad_insulation = RAD_VERY_LIGHT_INSULATION
rad_flags = RAD_PROTECT_CONTENTS
+ /// Electrochromatic status
+ var/electrochromatic_status = NOT_ELECTROCHROMATIC
+ /// Electrochromatic ID. Set the first character to ! to replace with a SSmapping generated pseudorandom obfuscated ID for mapping purposes.
+ var/electrochromatic_id
+
/obj/structure/window/examine(mob/user)
. = ..()
+ if(electrochromatic_status != NOT_ELECTROCHROMATIC)
+ . += "The window has electrochromatic circuitry on it. "
if(reinf)
if(anchored && state == WINDOW_SCREWED_TO_FRAME)
. += "The window is screwed to the frame. "
@@ -52,6 +74,10 @@
if(reinf && anchored)
state = WINDOW_SCREWED_TO_FRAME
+ if(mapload && electrochromatic_id)
+ if(copytext(electrochromatic_id, 1, 2) == "!")
+ electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id)
+
ini_dir = dir
air_update_turf(1)
@@ -62,6 +88,12 @@
real_explosion_block = explosion_block
explosion_block = EXPLOSION_BLOCK_PROC
+ if(electrochromatic_status != NOT_ELECTROCHROMATIC)
+ var/old = electrochromatic_status
+ make_electrochromatic()
+ if(old == ELECTROCHROMATIC_DIMMED)
+ electrochromatic_dim()
+
/obj/structure/window/ComponentInitialize()
. = ..()
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation))
@@ -177,6 +209,24 @@
to_chat(user, "[src] is already in good condition! ")
return
+ if(istype(I, /obj/item/electronics/electrochromatic_kit) && user.a_intent == INTENT_HELP)
+ var/obj/item/electronics/electrochromatic_kit/K = I
+ if(electrochromatic_status != NOT_ELECTROCHROMATIC)
+ to_chat(user, "[src] is already electrochromatic! ")
+ return
+ if(anchored)
+ to_chat(user, "[src] must not be attached to the floor! ")
+ return
+ if(!K.id)
+ to_chat(user, "[K] has no ID set! ")
+ return
+ if(!user.temporarilyRemoveItemFromInventory(K))
+ to_chat(user, "[K] is stuck to your hand! ")
+ return
+ user.visible_message("[user] upgrades [src] with [I]. ", "You upgrade [src] with [I]. ")
+ make_electrochromatic(K.id)
+ qdel(K)
+
if(!(flags_1&NODECONSTRUCT_1))
if(istype(I, /obj/item/screwdriver))
I.play_tool_sound(src, 75)
@@ -224,6 +274,91 @@
air_update_turf(TRUE)
update_nearby_icons()
+/obj/structure/window/proc/spraycan_paint(paint_color)
+ if(color_hex2num(paint_color) < 255)
+ set_opacity(255)
+ else
+ set_opacity(initial(opacity))
+ add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY)
+
+/obj/structure/window/proc/electrochromatic_dim()
+ if(electrochromatic_status == ELECTROCHROMATIC_DIMMED)
+ return
+ electrochromatic_status = ELECTROCHROMATIC_DIMMED
+ animate(src, color = "#222222", time = 2)
+ set_opacity(TRUE)
+
+/obj/structure/window/proc/electrochromatic_off()
+ if(electrochromatic_status == ELECTROCHROMATIC_OFF)
+ return
+ electrochromatic_status = ELECTROCHROMATIC_OFF
+ var/current = color
+ update_atom_colour()
+ var/newcolor = color
+ color = current
+ animate(src, color = newcolor, time = 2)
+
+/obj/structure/window/proc/remove_electrochromatic()
+ electrochromatic_off()
+ electrochromatic_status = NOT_ELECTROCHROMATIC
+ if(!electrochromatic_id)
+ return
+ var/list/L = GLOB.electrochromatic_window_lookup["[electrochromatic_id]"]
+ if(L)
+ L -= src
+ electrochromatic_id = null
+
+/obj/structure/window/vv_edit_var(var_name, var_value)
+ var/check_status
+ if(var_name == NAMEOF(src, electrochromatic_id))
+ if(electrochromatic_id && GLOB.electrochromatic_window_lookup["[electrochromatic_id]"])
+ GLOB.electrochromatic_window_lookup[electrochromatic_id] -= src
+ if(var_name == NAMEOF(src, electrochromatic_status))
+ check_status = TRUE
+ . = ..() //do this first incase it runtimes.
+ if(var_name == NAMEOF(src, electrochromatic_id))
+ if((electrochromatic_status != NOT_ELECTROCHROMATIC) && electrochromatic_id)
+ LAZYINITLIST(GLOB.electrochromatic_window_lookup[electrochromatic_id])
+ GLOB.electrochromatic_window_lookup[electrochromatic_id] += src
+ if(check_status)
+ if(electrochromatic_status == NOT_ELECTROCHROMATIC)
+ remove_electrochromatic()
+ return
+ else if(electrochromatic_status == ELECTROCHROMATIC_OFF)
+ if(!electrochromatic_id)
+ return
+ else
+ make_electrochromatic()
+ electrochromatic_off()
+ return
+ else if(electrochromatic_status == ELECTROCHROMATIC_DIMMED)
+ if(!electrochromatic_id)
+ return
+ else
+ make_electrochromatic()
+ electrochromatic_dim()
+ return
+ else
+ remove_electrochromatic()
+
+/obj/structure/window/proc/make_electrochromatic(new_id = electrochromatic_id)
+ remove_electrochromatic()
+ if(!new_id)
+ CRASH("Attempted to make electrochromatic with null ID.")
+ electrochromatic_id = new_id
+ electrochromatic_status = ELECTROCHROMATIC_OFF
+ LAZYINITLIST(GLOB.electrochromatic_window_lookup["[electrochromatic_id]"])
+ GLOB.electrochromatic_window_lookup[electrochromatic_id] |= src
+
+/obj/structure/window/update_atom_colour()
+ if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED))
+ return FALSE
+ . = ..()
+ if(color && (color_hex2num(color) < 255))
+ set_opacity(255)
+ else
+ set_opacity(FALSE)
+
/obj/structure/window/proc/check_state(checked_state)
if(state == checked_state)
return TRUE
@@ -263,7 +398,6 @@
if(BURN)
playsound(src, 'sound/items/Welder.ogg', 100, 1)
-
/obj/structure/window/deconstruct(disassembled = TRUE)
if(QDELETED(src))
return
@@ -272,6 +406,9 @@
if(!(flags_1 & NODECONSTRUCT_1))
for(var/obj/item/shard/debris in spawnDebris(drop_location()))
transfer_fingerprints_to(debris) // transfer fingerprints to shards only
+ if(electrochromatic_status != NOT_ELECTROCHROMATIC) //eh fine keep your kit.
+ new /obj/item/electronics/electrochromatic_kit(drop_location())
+ // Intentionally not setting the ID so you can't decon one to know all of the IDs.
qdel(src)
update_nearby_icons()
@@ -315,9 +452,9 @@
density = FALSE
air_update_turf(1)
update_nearby_icons()
+ remove_electrochromatic()
return ..()
-
/obj/structure/window/Move()
var/turf/T = loc
. = ..()
@@ -731,7 +868,6 @@
set_opacity(TRUE)
queue_smooth(src)
-
/obj/structure/window/paperframe/attackby(obj/item/W, mob/user)
if(W.get_temperature())
fire_act(W.get_temperature())
@@ -749,3 +885,7 @@
return
..()
update_icon()
+
+#undef NOT_ELECTROCHROMATIC
+#undef ELECTROCHROMATIC_OFF
+#undef ELECTROCHROMATIC_DIMMED
diff --git a/code/game/say.dm b/code/game/say.dm
index 85ae9f0681..187994f432 100644
--- a/code/game/say.dm
+++ b/code/game/say.dm
@@ -25,7 +25,7 @@ GLOBAL_LIST_INIT(freqtospan, list(
return
spans |= speech_span
if(!language)
- language = get_default_language()
+ language = get_selected_language()
send_speech(message, 7, src, , spans, message_language=language)
/atom/movable/proc/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
@@ -96,21 +96,26 @@ GLOBAL_LIST_INIT(freqtospan, list(
return "[say_mod(input, message_mode)][spanned ? ", \"[spanned]\"" : ""]"
// Citadel edit [spanned ? ", \"[spanned]\"" : ""]"
-/atom/movable/proc/lang_treat(atom/movable/speaker, datum/language/language, raw_message, list/spans, message_mode)
+/// Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when?
+/atom/movable/proc/quoteless_say_quote(input, list/spans = list(speech_span), message_mode)
+ var/pos = findtext(input, "*")
+ return pos? copytext(input, pos + 1) : input
+
+/atom/movable/proc/lang_treat(atom/movable/speaker, datum/language/language, raw_message, list/spans, message_mode, no_quote = FALSE)
if(has_language(language))
var/atom/movable/AM = speaker.GetSource()
if(AM) //Basically means "if the speaker is virtual"
- return AM.say_quote(raw_message, spans, message_mode)
+ return no_quote ? AM.quoteless_say_quote(raw_message, spans, message_mode) : AM.say_quote(raw_message, spans, message_mode)
else
- return speaker.say_quote(raw_message, spans, message_mode)
+ return no_quote ? speaker.quoteless_say_quote(raw_message, spans, message_mode) : speaker.say_quote(raw_message, spans, message_mode)
else if(language)
var/atom/movable/AM = speaker.GetSource()
var/datum/language/D = GLOB.language_datum_instances[language]
raw_message = D.scramble(raw_message)
if(AM)
- return AM.say_quote(raw_message, spans, message_mode)
+ return no_quote ? AM.quoteless_say_quote(raw_message, spans, message_mode) : AM.say_quote(raw_message, spans, message_mode)
else
- return speaker.say_quote(raw_message, spans, message_mode)
+ return no_quote ? speaker.quoteless_say_quote(raw_message, spans, message_mode) : speaker.say_quote(raw_message, spans, message_mode)
else
return "makes a strange sound."
diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm
index bc4cd8df33..3a719d05b9 100644
--- a/code/game/turfs/change_turf.dm
+++ b/code/game/turfs/change_turf.dm
@@ -256,9 +256,9 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
if(depth)
var/list/target_baseturfs
if(length(copytarget.baseturfs))
- // with default inputs this would be Copy(CLAMP(2, -INFINITY, baseturfs.len))
+ // with default inputs this would be Copy(clamp(2, -INFINITY, baseturfs.len))
// Don't forget a lower index is lower in the baseturfs stack, the bottom is baseturfs[1]
- target_baseturfs = copytarget.baseturfs.Copy(CLAMP(1 + ignore_bottom, 1 + copytarget.baseturfs.len - depth, copytarget.baseturfs.len))
+ target_baseturfs = copytarget.baseturfs.Copy(clamp(1 + ignore_bottom, 1 + copytarget.baseturfs.len - depth, copytarget.baseturfs.len))
else if(!ignore_bottom)
target_baseturfs = list(copytarget.baseturfs)
if(target_baseturfs)
diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm
index 9e593cafce..99c7ed8231 100644
--- a/code/game/turfs/closed.dm
+++ b/code/game/turfs/closed.dm
@@ -134,6 +134,15 @@
icon = 'icons/turf/walls.dmi'
icon_state = "icerock"
+/turf/closed/indestructible/rock/snow/ice/ore
+ icon = 'icons/turf/walls/icerock_wall.dmi'
+ icon_state = "icerock"
+ smooth = SMOOTH_MORE|SMOOTH_BORDER
+ canSmoothWith = list (/turf/closed)
+ pixel_x = -4
+ pixel_y = -4
+
+
/turf/closed/indestructible/paper
name = "thick paper wall"
desc = "A wall layered with impenetrable sheets of paper."
diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm
index d5b5cfc695..b81c5be44c 100644
--- a/code/game/turfs/open.dm
+++ b/code/game/turfs/open.dm
@@ -110,6 +110,9 @@
if(prob(12))
icon_state = "necro[rand(2,3)]"
+/turf/open/indestructible/necropolis/ice
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
/turf/open/indestructible/necropolis/air
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
diff --git a/code/game/turfs/openspace/openspace.dm b/code/game/turfs/openspace/openspace.dm
index 66507e7053..90fab29611 100644
--- a/code/game/turfs/openspace/openspace.dm
+++ b/code/game/turfs/openspace/openspace.dm
@@ -1,7 +1,20 @@
+GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdrop, new)
+
+/atom/movable/openspace_backdrop
+ name = "openspace_backdrop"
+
+ anchored = TRUE
+
+ icon = 'icons/turf/floors.dmi'
+ icon_state = "grey"
+ plane = OPENSPACE_BACKDROP_PLANE
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ layer = SPLASHSCREEN_LAYER
+
/turf/open/openspace
name = "open space"
desc = "Watch your step!"
- icon_state = "grey"
+ icon_state = "transparent"
baseturfs = /turf/open/openspace
CanAtmosPassVertical = ATMOS_PASS_YES
//mouse_opacity = MOUSE_OPACITY_TRANSPARENT
@@ -14,8 +27,9 @@
/turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker
. = ..()
- plane = FLOOR_OPENSPACE_PLANE
+ plane = OPENSPACE_PLANE
layer = OPENSPACE_LAYER
+ vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it.
return INITIALIZE_HINT_LATELOAD
/turf/open/openspace/LateInitialize()
@@ -132,3 +146,13 @@
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
return TRUE
return FALSE
+
+/turf/open/openspace/icemoon
+ name = "ice chasm"
+ baseturfs = /turf/open/openspace/icemoon
+ can_cover_up = FALSE
+ can_build_on = FALSE
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
+/turf/open/openspace/icemoon/can_zFall(atom/movable/A, levels = 1, turf/target)
+ return TRUE
diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm
index dab0c1c376..5e8f55feed 100644
--- a/code/game/turfs/simulated/chasm.dm
+++ b/code/game/turfs/simulated/chasm.dm
@@ -88,6 +88,15 @@
light_power = 0.65 //less bright, too
light_color = LIGHT_COLOR_LAVA //let's just say you're falling into lava, that makes sense right
+// Chasms for Ice moon, with planetary atmos and glow
+/turf/open/chasm/icemoon
+ icon = 'icons/turf/floors/icechasms.dmi'
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ baseturfs = /turf/open/chasm/icemoon
+ light_range = 1.9
+ light_power = 0.65
+ light_color = LIGHT_COLOR_PURPLE
// Chasms for the jungle, with planetary atmos and a different icon
/turf/open/chasm/jungle
@@ -115,4 +124,4 @@
. = ..()
var/turf/T = safepick(get_area_turfs(/area/fabric_of_reality))
if(T)
- set_target(T)
\ No newline at end of file
+ set_target(T)
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 720490942a..9f5ce679f9 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -48,7 +48,9 @@
"oldburning","light-on-r","light-on-y","light-on-g","light-on-b", "wood", "carpetsymbol", "carpetstar",
"carpetcorner", "carpetside", "carpet", "ironsand1", "ironsand2", "ironsand3", "ironsand4", "ironsand5",
"ironsand6", "ironsand7", "ironsand8", "ironsand9", "ironsand10", "ironsand11",
- "ironsand12", "ironsand13", "ironsand14", "ironsand15")
+ "ironsand12", "ironsand13", "ironsand14", "ironsand15",
+ "snow", "snow0", "snow1", "snow2", "snow3", "snow4", "snow5", "snow6", "snow7", "snow8", "snow9", "snow10", "snow11", "snow12", "snow-ice", "snow_dug",
+ "unsmooth", "smooth", "1-i", "2-i", "3-i", "4-i", "1-n", "2-n", "3-s", "4-s", "1-w", "2-e", "3-w", "4-e", "1-nw", "2-ne", "3-sw", "4-se", "1-f", "2-f", "3-f", "4-f")
if(broken || burnt || (icon_state in icons_to_ignore_at_floor_init)) //so damaged/burned tiles or plating icons aren't saved as the default
icon_regular_floor = "floor"
else
diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm
index 053b18d8d2..1fbeee7523 100644
--- a/code/game/turfs/simulated/floor/plating/asteroid.dm
+++ b/code/game/turfs/simulated/floor/plating/asteroid.dm
@@ -13,11 +13,15 @@
barefootstep = FOOTSTEP_SAND
clawfootstep = FOOTSTEP_SAND
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
+ /// Environment type for the turf
var/environment_type = "asteroid"
+ /// Base turf type to be created by the tunnel
var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal
- var/floor_variance = 20 //probability floor has a different icon state
+ /// Probability the floor has a different icon state
+ var/floor_variance = 20
attachment_holes = FALSE
var/obj/item/stack/digResult = /obj/item/stack/ore/glass/basalt
+ /// Whether the turf has been dug or not
var/dug
/turf/open/floor/plating/asteroid/Initialize()
@@ -27,6 +31,7 @@
if(prob(floor_variance))
icon_state = "[environment_type][rand(0,12)]"
+/// Drops itemstack when dug and changes icon
/turf/open/floor/plating/asteroid/proc/getDug()
new digResult(src, 5)
if(postdig_icon_change)
@@ -35,6 +40,7 @@
icon_state = "[environment_type]_dug"
dug = TRUE
+/// If the user can dig the turf
/turf/open/floor/plating/asteroid/proc/can_dig(mob/user)
if(!dug)
return TRUE
@@ -135,16 +141,30 @@
#define SPAWN_BUBBLEGUM 6
/turf/open/floor/plating/asteroid/airless/cave
+ /// Length of the tunnel
var/length = 100
+ /// Mobs that can spawn in the tunnel, weighted list
var/list/mob_spawn_list
+ /// Megafauna that can spawn in the tunnel, weighted list
var/list/megafauna_spawn_list
+ /// Flora that can spawn in the tunnel, weighted list
var/list/flora_spawn_list
+ /// Turf type to choose when spawning in tunnel at 1% chance, weighted list
+ var/list/choose_turf_type
+ /// if the tunnel should keep being created
var/sanity = 1
+ /// Cave direction to move
var/forward_cave_dir = 1
+ /// Backwards cave direction for tracking
var/backward_cave_dir = 2
+ /// If the tunnel is moving backwards
var/going_backwards = TRUE
+ /// If this is a cave creating type
var/has_data = FALSE
+ /// The non-cave creating type
var/data_having_type = /turf/open/floor/plating/asteroid/airless/cave/has_data
+ /// Option tunnel width, wegihted list
+ var/list/pick_tunnel_width
turf_type = /turf/open/floor/plating/asteroid/airless
/turf/open/floor/plating/asteroid/airless/cave/has_data //subtype for producing a tunnel with given data
@@ -163,6 +183,46 @@
/turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data //subtype for producing a tunnel with given data
has_data = TRUE
+/turf/open/floor/plating/asteroid/airless/cave/snow
+ gender = PLURAL
+ name = "snow"
+ desc = "Looks cold."
+ icon = 'icons/turf/snow.dmi'
+ baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
+ icon_state = "snow"
+ icon_plating = "snow"
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ slowdown = 2
+ environment_type = "snow"
+ flags_1 = NONE
+ planetary_atmos = TRUE
+ burnt_states = list("snow_dug")
+ bullet_sizzle = TRUE
+ bullet_bounce_sound = null
+ digResult = /obj/item/stack/sheet/mineral/snow
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/wolf = 50, /obj/structure/spawner/ice_moon = 3, \
+ /mob/living/simple_animal/hostile/asteroid/polarbear = 30, /obj/structure/spawner/ice_moon/polarbear = 3, \
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10)
+ flora_spawn_list = list(/obj/structure/flora/tree/pine = 2, /obj/structure/flora/grass/both = 12, /obj/structure/flora/rock/icy = 6, /obj/structure/flora/rock/pile/icy = 6)
+ data_having_type = /turf/open/floor/plating/asteroid/airless/cave/snow/has_data
+ turf_type = /turf/open/floor/plating/asteroid/snow/icemoon
+ choose_turf_type = list(/turf/open/floor/plating/asteroid/snow/icemoon = 19, /turf/open/floor/plating/ice/icemoon = 1)
+ pick_tunnel_width = list("1" = 6, "2" = 1)
+
+/turf/open/floor/plating/asteroid/airless/cave/snow/underground
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/ice_demon = 50, /obj/structure/spawner/ice_moon/demonic_portal = 3, \
+ /mob/living/simple_animal/hostile/asteroid/ice_whelp = 30, /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 3, \
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 3)
+ flora_spawn_list = list(/obj/structure/flora/rock/icy = 6, /obj/structure/flora/rock/pile/icy = 6)
+ data_having_type = /turf/open/floor/plating/asteroid/airless/cave/snow/underground/has_data
+ choose_turf_type = null
+
+/turf/open/floor/plating/asteroid/airless/cave/snow/has_data //subtype for producing a tunnel with given data
+ has_data = TRUE
+
+/turf/open/floor/plating/asteroid/airless/cave/snow/underground/has_data //subtype for producing a tunnel with given data
+ has_data = TRUE
+
/turf/open/floor/plating/asteroid/airless/cave/Initialize()
if (!mob_spawn_list)
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3)
@@ -175,6 +235,7 @@
if(!has_data)
produce_tunnel_from_data()
+/// Sets the tunnel length and direction
/turf/open/floor/plating/asteroid/airless/cave/proc/get_cave_data(set_length, exclude_dir = -1)
// If set_length (arg1) isn't defined, get a random length; otherwise assign our length to the length arg.
if(!set_length)
@@ -187,6 +248,7 @@
// Get the opposite direction of our facing direction
backward_cave_dir = angle2dir(dir2angle(forward_cave_dir) + 180)
+/// Gets the tunnel length and direction then makes the tunnel
/turf/open/floor/plating/asteroid/airless/cave/proc/produce_tunnel_from_data(tunnel_length, excluded_dir = -1)
get_cave_data(tunnel_length, excluded_dir)
// Make our tunnels
@@ -196,10 +258,22 @@
// Kill ourselves by replacing ourselves with a normal floor.
SpawnFloor(src)
+/**
+ * Makes the tunnel and spawns things inside of it
+ *
+ * Picks a tunnel width for the tunnel and then starts spawning turfs in the direction it moves in
+ * Can randomly change directions of the tunnel, stops if it hits the edge of the map, or a no tunnel area
+ * Can randomly make new tunnels out of itself
+ *
+ */
/turf/open/floor/plating/asteroid/airless/cave/proc/make_tunnel(dir)
var/turf/closed/mineral/tunnel = src
var/next_angle = pick(45, -45)
+ var/tunnel_width = 1
+ if(pick_tunnel_width)
+ tunnel_width = text2num(pickweight(pick_tunnel_width))
+
for(var/i = 0; i < length; i++)
if(!sanity)
break
@@ -210,9 +284,11 @@
// Expand the edges of our tunnel
for(var/edge_angle in L)
- var/turf/closed/mineral/edge = get_step(tunnel, angle2dir(dir2angle(dir) + edge_angle))
- if(istype(edge))
- SpawnFloor(edge)
+ var/turf/closed/mineral/edge = tunnel
+ for(var/current_tunnel_width = 1 to tunnel_width)
+ edge = get_step(edge, angle2dir(dir2angle(dir) + edge_angle))
+ if(istype(edge))
+ SpawnFloor(edge)
if(!sanity)
break
@@ -223,9 +299,12 @@
if(istype(tunnel))
// Small chance to have forks in our tunnel; otherwise dig our tunnel.
if(i > 3 && prob(20))
- if(istype(tunnel.loc, /area/mine/explored) || (istype(tunnel.loc, /area/lavaland/surface/outdoors) && !istype(tunnel.loc, /area/lavaland/surface/outdoors/unexplored)))
- sanity = 0
- break
+ if(isarea(tunnel.loc))
+
+ var/area/A = tunnel.loc
+ if(!A.tunnel_allowed)
+ sanity = 0
+ break
var/turf/open/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type, null, CHANGETURF_IGNORE_AIR)
C.going_backwards = FALSE
C.produce_tunnel_from_data(rand(10, 15), dir)
@@ -241,26 +320,35 @@
setDir(angle2dir(dir2angle(dir) )+ next_angle)
+/// Spawns the floor of the tunnel and any type of structure or mob it can have
/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T)
- for(var/S in RANGE_TURFS(1, src))
- var/turf/NT = S
- if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || (istype(NT.loc, /area/lavaland/surface/outdoors) && !istype(NT.loc, /area/lavaland/surface/outdoors/unexplored)))
- sanity = 0
- break
- if(!sanity)
+ var/area/A = T.loc
+ if(!A.tunnel_allowed)
+ sanity = 0
return
- SpawnFlora(T)
-
- SpawnMonster(T)
+ if(choose_turf_type)
+ turf_type = pickweight(choose_turf_type)
+ if(turf_type == initial(turf_type)) // Don't spawn different turf types under flora or terrain
+ var/spawned_flora = FALSE
+ if(is_mining_level(z))
+ spawned_flora = SpawnFlora(T)
+ if(!spawned_flora) // no rocks beneath mob spawners / mobs.
+ SpawnMonster(T)
T.ChangeTurf(turf_type, null, CHANGETURF_IGNORE_AIR)
+/// Spawns a random mob or megafauna in the tunnel
/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T)
+ if(!isarea(loc))
+ return
+ var/area/A = loc
if(prob(30))
- if(istype(loc, /area/mine/explored) || !istype(loc, /area/lavaland/surface/outdoors/unexplored))
+ if(!A.mob_spawn_allowed)
return
var/randumb = pickweight(mob_spawn_list)
+ if(!randumb)
+ return
while(randumb == SPAWN_MEGAFAUNA)
- if(istype(loc, /area/lavaland/surface/outdoors/unexplored/danger)) //this is danger. it's boss time.
+ if(A.megafauna_spawn_allowed && megafauna_spawn_list && megafauna_spawn_list.len) //this is danger. it's boss time.
var/maybe_boss = pickweight(megafauna_spawn_list)
if(megafauna_spawn_list[maybe_boss])
randumb = maybe_boss
@@ -278,22 +366,26 @@
return //prevents tendrils spawning in each other's collapse range
new randumb(T)
- return
+ return TRUE
#undef SPAWN_MEGAFAUNA
#undef SPAWN_BUBBLEGUM
+/// Spawns a random flora in the tunnel, can spawn clumps of them.
/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFlora(turf/T)
if(prob(12))
- if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored))
- return
+ if(isarea(loc))
+ var/area/A = loc
+ if(!A.flora_allowed)
+ return
var/randumb = pickweight(flora_spawn_list)
- for(var/obj/structure/flora/ash/F in range(4, T)) //Allows for growing patches, but not ridiculous stacks of flora
+ if(!randumb)
+ return
+ for(var/obj/structure/flora/F in range(4, T)) // Allows for growing patches, but not ridiculous stacks of flora
if(!istype(F, randumb))
return
new randumb(T)
-
-
+ return TRUE
/turf/open/floor/plating/asteroid/snow
gender = PLURAL
@@ -322,6 +414,15 @@
return TRUE
return FALSE
+/turf/open/floor/plating/asteroid/snow/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
+/turf/open/lava/plasma/ice_moon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ baseturfs = /turf/open/lava/plasma/ice_moon
+ planetary_atmos = TRUE
+
/turf/open/floor/plating/asteroid/snow/ice
name = "icy snow"
desc = "Looks colder."
@@ -336,6 +437,15 @@
clawfootstep = FOOTSTEP_HARD_CLAW
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
+/turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+
+/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel
+ icon = 'icons/turf/floors.dmi'
+ icon_state = "solarpanel"
+
/turf/open/floor/plating/asteroid/snow/ice/burn_tile()
return FALSE
@@ -347,4 +457,4 @@
/turf/open/floor/plating/asteroid/snow/atmosphere
initial_gas_mix = FROZEN_ATMOS
- planetary_atmos = FALSE
\ No newline at end of file
+ planetary_atmos = FALSE
diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm
index 5c58d99e1a..23e32ebfe3 100644
--- a/code/game/turfs/simulated/floor/plating/misc_plating.dm
+++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm
@@ -3,6 +3,10 @@
icon_state = "plating"
initial_gas_mix = AIRLESS_ATMOS
+/turf/open/floor/plating/icemoon
+ icon_state = "plating"
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
/turf/open/floor/plating/abductor
name = "alien floor"
icon_state = "alienpod1"
@@ -209,6 +213,8 @@
/turf/open/floor/plating/ice/burn_tile()
return
+/turf/open/floor/plating/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
/turf/open/floor/plating/snowed
name = "snowed-over plating"
@@ -240,4 +246,6 @@
/turf/open/floor/plating/snowed/temperatre
temperature = 255.37
+/turf/open/floor/plating/snowed/smoothed/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm
index 7e1b39cb39..7d476d559e 100644
--- a/code/game/turfs/simulated/minerals.dm
+++ b/code/game/turfs/simulated/minerals.dm
@@ -147,6 +147,11 @@
var/mineralChance = 13
var/display_icon_state = "rock"
+/turf/closed/mineral/random/more_caves
+ mineralSpawnChanceList = list(/turf/closed/mineral/uranium = 5, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 10,
+ /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, /turf/closed/mineral/titanium = 11,
+ /turf/closed/mineral/gibtonite = 4, /turf/open/floor/plating/asteroid/airless/cave = 15, /turf/closed/mineral/bscrystal = 1)
+
/turf/closed/mineral/random/Initialize()
mineralSpawnChanceList = typelist("mineralSpawnChanceList", mineralSpawnChanceList)
@@ -195,11 +200,27 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
mineralSpawnChanceList = list(
/turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45,
/turf/closed/mineral/silver/volcanic = 50, /turf/closed/mineral/plasma/volcanic = 50, /turf/closed/mineral/bscrystal/volcanic = 20)
+/turf/closed/mineral/random/high_chance/snow
+ name = "snowy mountainside"
+ icon = 'icons/turf/mining.dmi'
+ smooth_icon = 'icons/turf/walls/mountain_wall.dmi'
+ icon_state = "mountainrock"
+ smooth = SMOOTH_MORE|SMOOTH_BORDER
+ canSmoothWith = list (/turf/closed)
+ defer_change = TRUE
+ environment_type = "snow"
+ turf_type = /turf/open/floor/plating/asteroid/snow/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ mineralSpawnChanceList = list(
+ /turf/closed/mineral/uranium/ice/icemoon = 35, /turf/closed/mineral/diamond/ice/icemoon = 30, /turf/closed/mineral/gold/ice/icemoon = 45, /turf/closed/mineral/titanium/ice/icemoon = 45,
+ /turf/closed/mineral/silver/ice/icemoon = 50, /turf/closed/mineral/plasma/ice/icemoon = 50, /turf/closed/mineral/bscrystal/ice/icemoon = 20)
+
/turf/closed/mineral/random/high_chance/earth_like
icon_state = "rock_highchance_oxy"
turf_type = /turf/open/floor/plating/asteroid
@@ -236,7 +257,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
mineralChance = 10
mineralSpawnChanceList = list(
@@ -244,6 +265,36 @@
/turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40,
/turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 1, /turf/closed/mineral/bscrystal/volcanic = 1)
+/turf/closed/mineral/random/volcanic/more_caves
+ mineralSpawnChanceList = list(
+ /turf/closed/mineral/uranium/volcanic = 5, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 10, /turf/closed/mineral/titanium/volcanic = 11,
+ /turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40,
+ /turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 15, /turf/closed/mineral/bscrystal/volcanic = 1)
+
+/turf/closed/mineral/random/snow
+ name = "snowy mountainside"
+ icon = 'icons/turf/mining.dmi'
+ smooth_icon = 'icons/turf/walls/mountain_wall.dmi'
+ icon_state = "mountainrock"
+ smooth = SMOOTH_MORE|SMOOTH_BORDER
+ canSmoothWith = list (/turf/closed)
+ defer_change = TRUE
+ environment_type = "snow"
+ turf_type = /turf/open/floor/plating/asteroid/snow/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
+ mineralChance = 10
+ mineralSpawnChanceList = list(
+ /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11,
+ /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40,
+ /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/open/floor/plating/asteroid/airless/cave/snow = 1, /turf/closed/mineral/bscrystal/ice/icemoon = 1)
+
+/turf/closed/mineral/random/snow/no_caves
+ mineralSpawnChanceList = list(
+ /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11,
+ /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40,
+ /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/closed/mineral/bscrystal/ice/icemoon = 1)
/turf/closed/mineral/random/labormineral
mineralSpawnChanceList = list(
@@ -252,18 +303,51 @@
/turf/closed/mineral/gibtonite = 2)
icon_state = "rock_labor"
+/turf/closed/mineral/random/snow/underground
+ mineralSpawnChanceList = list(
+ /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11,
+ /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40,
+ /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/open/floor/plating/asteroid/airless/cave/snow/underground = 1, /turf/closed/mineral/bscrystal/ice/icemoon = 1)
+
+/turf/closed/mineral/random/snow/more_caves
+ mineralSpawnChanceList = list(
+ /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11,
+ /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40,
+ /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/open/floor/plating/asteroid/airless/cave/snow = 15, /turf/closed/mineral/bscrystal/ice/icemoon = 1)
+
/turf/closed/mineral/random/labormineral/volcanic
environment_type = "basalt"
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
mineralSpawnChanceList = list(
/turf/closed/mineral/uranium/volcanic = 3, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 8, /turf/closed/mineral/titanium/volcanic = 8,
/turf/closed/mineral/silver/volcanic = 20, /turf/closed/mineral/plasma/volcanic = 30, /turf/closed/mineral/bscrystal/volcanic = 1, /turf/closed/mineral/gibtonite/volcanic = 2,
/turf/closed/mineral/iron/volcanic = 95)
+//Subtypes for placing ores manually.
+/turf/closed/mineral/random/labormineral/ice
+ name = "snowy mountainside"
+ icon = 'icons/turf/mining.dmi'
+ smooth_icon = 'icons/turf/walls/mountain_wall.dmi'
+ icon_state = "mountainrock"
+ smooth = SMOOTH_MORE|SMOOTH_BORDER
+ canSmoothWith = list (/turf/closed)
+ defer_change = TRUE
+ environment_type = "snow"
+ turf_type = /turf/open/floor/plating/asteroid/snow/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
+ defer_change = TRUE
+ mineralSpawnChanceList = list(
+ /turf/closed/mineral/uranium/ice/icemoon = 3, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 8, /turf/closed/mineral/titanium/ice/icemoon = 8,
+ /turf/closed/mineral/silver/ice/icemoon = 20, /turf/closed/mineral/plasma/ice/icemoon = 30, /turf/closed/mineral/bscrystal/ice/icemoon = 1, /turf/closed/mineral/gibtonite/ice/icemoon = 2,
+ /turf/closed/mineral/iron/ice/icemoon = 95)
+
+
/turf/closed/mineral/iron
mineralType = /obj/item/stack/ore/iron
@@ -294,6 +378,11 @@
initial_gas_mix = FROZEN_ATMOS
defer_change = TRUE
+/turf/closed/mineral/iron/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
/turf/closed/mineral/uranium
mineralType = /obj/item/stack/ore/uranium
@@ -306,7 +395,21 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
+
+/turf/closed/mineral/uranium/ice
+ environment_type = "snow_cavern"
+ icon_state = "icerock_Uranium"
+ smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = FROZEN_ATMOS
+ defer_change = TRUE
+
+/turf/closed/mineral/uranium/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
/turf/closed/mineral/uranium/earth_like
icon_state = "rock_oxy"
@@ -327,7 +430,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/diamond/earth_like
icon_state = "rock_oxy"
@@ -345,6 +448,11 @@
initial_gas_mix = FROZEN_ATMOS
defer_change = TRUE
+/turf/closed/mineral/diamond/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
/turf/closed/mineral/gold
mineralType = /obj/item/stack/ore/gold
@@ -357,7 +465,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/gold/earth_like
icon_state = "rock_oxy"
@@ -366,6 +474,19 @@
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
defer_change = TRUE
+/turf/closed/mineral/gold/ice
+ environment_type = "snow_cavern"
+ icon_state = "icerock_gold"
+ smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = FROZEN_ATMOS
+ defer_change = TRUE
+
+/turf/closed/mineral/gold/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
/turf/closed/mineral/silver
mineralType = /obj/item/stack/ore/silver
@@ -378,7 +499,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/silver/earth_like
icon_state = "rock_oxy"
@@ -387,6 +508,19 @@
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
defer_change = TRUE
+/turf/closed/mineral/silver/ice
+ environment_type = "snow_cavern"
+ icon_state = "icerock_silver"
+ smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = FROZEN_ATMOS
+ defer_change = TRUE
+
+/turf/closed/mineral/silver/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
/turf/closed/mineral/titanium
mineralType = /obj/item/stack/ore/titanium
@@ -399,7 +533,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/titanium/earth_like
icon_state = "rock_oxy"
@@ -408,6 +542,19 @@
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
defer_change = TRUE
+/turf/closed/mineral/titanium/ice
+ environment_type = "snow_cavern"
+ icon_state = "icerock_titanium"
+ smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = FROZEN_ATMOS
+ defer_change = TRUE
+
+/turf/closed/mineral/titanium/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
/turf/closed/mineral/plasma
mineralType = /obj/item/stack/ore/plasma
@@ -420,7 +567,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/plasma/earth_like
icon_state = "rock_oxy"
@@ -438,6 +585,10 @@
initial_gas_mix = FROZEN_ATMOS
defer_change = TRUE
+/turf/closed/mineral/plasma/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
/turf/closed/mineral/bananium
@@ -454,6 +605,21 @@
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
defer_change = TRUE
+/turf/closed/mineral/bananium/ice
+ environment_type = "snow_cavern"
+ icon_state = "icerock_Bananium"
+ smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = FROZEN_ATMOS
+ defer_change = TRUE
+
+/turf/closed/mineral/bananium/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
+
/turf/closed/mineral/bscrystal
mineralType = /obj/item/stack/ore/bluespace_crystal
mineralAmt = 1
@@ -466,7 +632,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/bscrystal/earth_like
icon_state = "rock_oxy"
@@ -475,6 +641,19 @@
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
defer_change = TRUE
+/turf/closed/mineral/bscrystal/ice
+ environment_type = "snow_cavern"
+ icon_state = "icerock_BScrystal"
+ smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = FROZEN_ATMOS
+ defer_change = TRUE
+
+/turf/closed/mineral/bscrystal/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
/turf/closed/mineral/volcanic
environment_type = "basalt"
@@ -486,7 +665,7 @@
environment_type = "basalt"
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/earth_like
icon_state = "rock_oxy"
@@ -506,7 +685,7 @@
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
environment_type = "waste"
turf_type = /turf/open/floor/plating/ashplanet/rocky
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/snowmountain
name = "snowy mountainside"
@@ -521,6 +700,11 @@
turf_type = /turf/open/floor/plating/asteroid/snow
defer_change = TRUE
+/turf/closed/mineral/snowmountain/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
/turf/closed/mineral/snowmountain/cavern
name = "ice cavern rock"
icon = 'icons/turf/mining.dmi'
@@ -532,6 +716,11 @@
environment_type = "snow_cavern"
turf_type = /turf/open/floor/plating/asteroid/snow/ice
+/turf/closed/mineral/snowmountain/cavern/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
//GIBTONITE
/turf/closed/mineral/gibtonite
@@ -634,7 +823,7 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- defer_change = 1
+ defer_change = TRUE
/turf/closed/mineral/gibtonite/earth_like
icon_state = "rock_oxy"
@@ -642,3 +831,18 @@
baseturfs = /turf/open/floor/plating/asteroid
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
defer_change = TRUE
+
+
+/turf/closed/mineral/gibtonite/ice
+ environment_type = "snow_cavern"
+ icon_state = "icerock_Gibtonite"
+ smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = FROZEN_ATMOS
+ defer_change = TRUE
+
+/turf/closed/mineral/gibtonite/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index f31649eaca..88f6dd6962 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -1,6 +1,8 @@
/turf
icon = 'icons/turf/floors.dmi'
level = 1
+ vis_flags = VIS_INHERIT_PLANE|VIS_INHERIT_ID //when this be added to vis_contents of something it inherit something.plane and be associatet with something on clicking,
+ //important for visualisation of turf in openspace and interraction with openspace that show you turf.
var/intact = 1
@@ -441,7 +443,7 @@
for(var/V in contents)
var/atom/A = V
if(!QDELETED(A) && A.level >= affecting_level)
- if(ismovableatom(A))
+ if(ismovable(A))
var/atom/movable/AM = A
if(!AM.ex_check(explosion_id))
continue
diff --git a/code/game/world.dm b/code/game/world.dm
index ef0bc8b633..4ffa3292ee 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -8,11 +8,12 @@ GLOBAL_LIST(topic_status_cache)
//This happens after the Master subsystem new(s) (it's a global datum)
//So subsystems globals exist, but are not initialised
/world/New()
+ var/extools = world.GetConfig("env", "EXTOOLS_DLL") || "./byond-extools.dll"
+ if (fexists(extools))
+ call(extools, "maptick_initialize")()
enable_debugger()
-#if DM_VERSION >= 513 && DM_BUILD >= 1506
world.Profile(PROFILE_START)
-#endif
log_world("World loaded at [TIME_STAMP("hh:mm:ss", FALSE)]!")
@@ -301,8 +302,8 @@ GLOBAL_LIST(topic_status_cache)
if(SSmapping.config) // this just stops the runtime, honk.
features += "[SSmapping.config.map_name]" //CIT CHANGE - makes the hub entry display the current map
- if(get_security_level())//CIT CHANGE - makes the hub entry show the security level
- features += "[get_security_level()] alert"
+ if(NUM2SECLEVEL(GLOB.security_level))//CIT CHANGE - makes the hub entry show the security level
+ features += "[NUM2SECLEVEL(GLOB.security_level)] alert"
if (n > 1)
features += "~[n] players"
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 4a7e818125..a2e2b3c122 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -429,6 +429,10 @@
for(var/datum/dynamic_ruleset/roundstart/rule in GLOB.dynamic_forced_roundstart_ruleset)
dat += {"-> [rule.name] <- "}
dat += "(Clear Rulesets) "
+ dat += "(Force Storyteller) "
+ if (GLOB.dynamic_forced_storyteller)
+ var/datum/dynamic_storyteller/S = GLOB.dynamic_forced_storyteller
+ dat += "-> [initial(S.name)] <- "
dat += "(Dynamic mode options) "
else if (SSticker.IsRoundInProgress())
dat += "(Force Next Latejoin Ruleset) "
@@ -690,7 +694,7 @@
var/prev_dynamic_voting = CONFIG_GET(flag/dynamic_voting)
CONFIG_SET(flag/dynamic_voting,!prev_dynamic_voting)
if (!prev_dynamic_voting)
- to_chat(world, "Vote is now a ranked choice of dynamic storytellers. ")
+ to_chat(world, "Vote is now between dynamic storytellers. ")
else
to_chat(world, "Vote is now between extended and secret. ")
log_admin("[key_name(usr)] [prev_dynamic_voting ? "disabled" : "enabled"] dynamic voting.")
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 3c4d8d764a..15c45c9b3e 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -81,7 +81,7 @@ GLOBAL_PROTECT(admin_verbs_admin)
)
GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/DB_ban_panel, /client/proc/stickybanpanel))
GLOBAL_PROTECT(admin_verbs_ban)
-GLOBAL_LIST_INIT(admin_verbs_sounds, list(/client/proc/play_local_sound, /client/proc/play_sound, /client/proc/set_round_end_sound))
+GLOBAL_LIST_INIT(admin_verbs_sounds, list(/client/proc/play_local_sound, /client/proc/play_sound, /client/proc/manual_play_web_sound, /client/proc/set_round_end_sound))
GLOBAL_PROTECT(admin_verbs_sounds)
GLOBAL_LIST_INIT(admin_verbs_fun, list(
/client/proc/cmd_admin_dress,
@@ -364,7 +364,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
log_admin("[key_name(usr)] admin ghosted.")
message_admins("[key_name_admin(usr)] admin ghosted.")
var/mob/body = mob
- body.ghostize(1)
+ body.ghostize(1, voluntary = TRUE)
if(body && !body.key)
body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus
SSblackbox.record_feedback("tally", "admin_verb", 1, "Admin Ghost") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/callproc/callproc.dm b/code/modules/admin/callproc/callproc.dm
index 3de5e39ff4..c13353b7cd 100644
--- a/code/modules/admin/callproc/callproc.dm
+++ b/code/modules/admin/callproc/callproc.dm
@@ -120,7 +120,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
//adv proc call this, ya nerds
/world/proc/WrapAdminProcCall(datum/target, procname, list/arguments)
if(target == GLOBAL_PROC)
- return call(procname)(arglist(arguments))
+ return call(text2path("/proc/[procname]"))(arglist(arguments))
else if(target != world)
return call(target, procname)(arglist(arguments))
else
diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm
index 702e2071bd..56c778dc85 100644
--- a/code/modules/admin/sound_emitter.dm
+++ b/code/modules/admin/sound_emitter.dm
@@ -95,7 +95,7 @@
var/new_volume = input(user, "Choose a volume.", "Sound Emitter", sound_volume) as null|num
if(isnull(new_volume))
return
- new_volume = CLAMP(new_volume, 0, 100)
+ new_volume = clamp(new_volume, 0, 100)
sound_volume = new_volume
to_chat(user, "Volume set to [sound_volume]%. ")
if(href_list["edit_mode"])
@@ -118,7 +118,7 @@
var/new_radius = input(user, "Choose a radius.", "Sound Emitter", sound_volume) as null|num
if(isnull(new_radius))
return
- new_radius = CLAMP(new_radius, 0, 127)
+ new_radius = clamp(new_radius, 0, 127)
play_radius = new_radius
to_chat(user, "Audible radius set to [play_radius]. ")
if(href_list["play"])
diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm
index 7b59e72403..356746ddbc 100644
--- a/code/modules/admin/sql_message_system.dm
+++ b/code/modules/admin/sql_message_system.dm
@@ -393,7 +393,7 @@
var/nsd = CONFIG_GET(number/note_stale_days)
var/nfd = CONFIG_GET(number/note_fresh_days)
if (agegate && type == "note" && isnum(nsd) && isnum(nfd) && nsd > nfd)
- var/alpha = CLAMP(100 - (age - nfd) * (85 / (nsd - nfd)), 15, 100)
+ var/alpha = clamp(100 - (age - nfd) * (85 / (nsd - nfd)), 15, 100)
if (alpha < 100)
if (alpha <= 15)
if (skipped)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 62c2dc900c..042a6e0fe9 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1394,6 +1394,32 @@
log_admin("[key_name(usr)] removed [rule] from the forced roundstart rulesets.")
message_admins("[key_name(usr)] removed [rule] from the forced roundstart rulesets.", 1)
+ else if(href_list["f_dynamic_storyteller"])
+ if(!check_rights(R_ADMIN))
+ return
+ if(SSticker && SSticker.mode)
+ return alert(usr, "The game has already started.", null, null, null, null)
+ if(GLOB.master_mode != "dynamic")
+ return alert(usr, "The game mode has to be dynamic mode.", null, null, null, null)
+ var/list/choices = list()
+ for(var/T in config.storyteller_cache)
+ var/datum/dynamic_storyteller/S = T
+ choices[initial(S.name)] = T
+ var/choice = choices[input("Select storyteller:", "Storyteller", "Classic") as null|anything in choices]
+ if(choice)
+ GLOB.dynamic_forced_storyteller = choice
+ log_admin("[key_name(usr)] forced the storyteller to [GLOB.dynamic_forced_storyteller].")
+ message_admins("[key_name(usr)] forced the storyteller to [GLOB.dynamic_forced_storyteller].")
+ Game()
+
+ else if(href_list["f_dynamic_storyteller_clear"])
+ if(!check_rights(R_ADMIN))
+ return
+ GLOB.dynamic_forced_storyteller = null
+ Game()
+ log_admin("[key_name(usr)] cleared the forced storyteller. The mode will pick one as normal.")
+ message_admins("[key_name(usr)] cleared the forced storyteller. The mode will pick one as normal.", 1)
+
else if(href_list["f_dynamic_latejoin"])
if(!check_rights(R_ADMIN))
return
@@ -2363,7 +2389,7 @@
return
var/list/offset = splittext(href_list["offset"],",")
- var/number = CLAMP(text2num(href_list["object_count"]), 1, 100)
+ var/number = clamp(text2num(href_list["object_count"]), 1, 100)
var/X = offset.len > 0 ? text2num(offset[1]) : 0
var/Y = offset.len > 1 ? text2num(offset[2]) : 0
var/Z = offset.len > 2 ? text2num(offset[3]) : 0
diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
index 14906bc83a..26736ddff1 100644
--- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
@@ -764,7 +764,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
for(var/arg in arguments)
new_args[++new_args.len] = SDQL_expression(source, arg)
if(object == GLOB) // Global proc.
- procname = "/proc/[procname]"
return superuser? (call(procname)(new_args)) : (WrapAdminProcCall(GLOBAL_PROC, procname, new_args))
return superuser? (call(object, procname)(new_args)) : (WrapAdminProcCall(object, procname, new_args))
diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm
index beec54265e..35f4ddb3e5 100644
--- a/code/modules/admin/verbs/borgpanel.dm
+++ b/code/modules/admin/verbs/borgpanel.dm
@@ -85,7 +85,7 @@
if ("set_charge")
var/newcharge = input("New charge (0-[borg.cell.maxcharge]):", borg.name, borg.cell.charge) as num|null
if (newcharge)
- borg.cell.charge = CLAMP(newcharge, 0, borg.cell.maxcharge)
+ borg.cell.charge = clamp(newcharge, 0, borg.cell.maxcharge)
message_admins("[key_name_admin(user)] set the charge of [ADMIN_LOOKUPFLW(borg)] to [borg.cell.charge].")
log_admin("[key_name(user)] set the charge of [key_name(borg)] to [borg.cell.charge].")
if ("remove_cell")
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index e67176029a..8406248164 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -705,10 +705,17 @@
var/list/names = list()
names += "---- Space Ruins ----"
for(var/name in SSmapping.space_ruins_templates)
- names[name] = list(SSmapping.space_ruins_templates[name], ZTRAIT_SPACE_RUINS, /area/space)
+ names[name] = list(SSmapping.space_ruins_templates[name], ZTRAIT_SPACE_RUINS, list(/area/space))
names += "---- Lava Ruins ----"
for(var/name in SSmapping.lava_ruins_templates)
names[name] = list(SSmapping.lava_ruins_templates[name], ZTRAIT_LAVA_RUINS, /area/lavaland/surface/outdoors/unexplored)
+ names[name] = list(SSmapping.lava_ruins_templates[name], ZTRAIT_LAVA_RUINS, list(/area/lavaland/surface/outdoors/unexplored))
+ names += "---- Ice Ruins ----"
+ for(var/name in SSmapping.ice_ruins_templates)
+ names[name] = list(SSmapping.ice_ruins_templates[name], ZTRAIT_ICE_RUINS, list(/area/icemoon/surface/outdoors/unexplored, /area/icemoon/underground/unexplored))
+ names += "---- Ice Underground Ruins ----"
+ for(var/name in SSmapping.ice_ruins_underground_templates)
+ names[name] = list(SSmapping.ice_ruins_underground_templates[name], ZTRAIT_ICE_RUINS_UNDERGROUND, list(/area/icemoon/underground/unexplored))
var/ruinname = input("Select ruin", "Spawn Ruin") as null|anything in names
var/data = names[ruinname]
diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm
index d71cdca991..e89c3ad5a6 100644
--- a/code/modules/admin/verbs/map_template_loadverb.dm
+++ b/code/modules/admin/verbs/map_template_loadverb.dm
@@ -18,9 +18,12 @@
var/image/item = image('icons/turf/overlays.dmi',S,"greenOverlay")
item.plane = ABOVE_LIGHTING_PLANE
preview += item
+ var/list/orientations = list("South" = SOUTH, "North" = NORTH, "East" = EAST, "West" = WEST)
+ var/choice = input(src, "Which orientation? Maps are normally facing SOUTH.", "Template Orientation", "South") as null|anything in orientations
+ var/orientation = orientations[choice]
images += preview
if(alert(src,"Confirm location.","Template Confirm","Yes","No") == "Yes")
- if(template.load(T, centered = TRUE))
+ if(template.load(T, centered = TRUE, orientation = orientation))
message_admins("[key_name_admin(src)] has placed a map template ([template.name]) at [ADMIN_COORDJMP(T)] ")
else
to_chat(src, "Failed to place map")
diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm
index cbbec40f85..e7b9342645 100644
--- a/code/modules/admin/verbs/playsound.dm
+++ b/code/modules/admin/verbs/playsound.dm
@@ -10,7 +10,7 @@
var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num
if(!freq)
freq = 1
- vol = CLAMP(vol, 1, 100)
+ vol = clamp(vol, 1, 100)
var/sound/admin_sound = new()
admin_sound.file = S
@@ -138,6 +138,49 @@
SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Internet Sound")
+/client/proc/manual_play_web_sound()
+ set category = "Fun"
+ set name = "Manual Play Internet Sound"
+ if(!check_rights(R_SOUNDS))
+ return
+
+ var/web_sound_input = input("Enter content stream URL (fetch this from local youtube-dl!)", "Play Internet Sound via direct URL") as text|null
+ if(istext(web_sound_input))
+ if(!length(web_sound_input))
+ log_admin("[key_name(src)] stopped web sound")
+ message_admins("[key_name(src)] stopped web sound")
+ var/mob/M
+ for(var/i in GLOB.player_list)
+ M = i
+ M?.client?.chatOutput?.stopMusic()
+ return
+ else
+ if(web_sound_input && !findtext(web_sound_input, GLOB.is_http_protocol))
+ to_chat(src, "BLOCKED: Content URL not using http(s) protocol ")
+ return
+ var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num
+ if(isnull(freq))
+ return
+ if(!freq)
+ freq = 1
+ SSblackbox.record_feedback("nested tally", "played_url", 1, list("[ckey]", "[web_sound_input]"))
+ var/logstr = "[key_name(src)] played web sound at freq [freq]: [web_sound_input]"
+ log_admin(logstr)
+ message_admins(logstr)
+ var/mob/M
+ var/client/C
+ var/datum/chatOutput/O
+ for(var/i in GLOB.player_list)
+ M = i
+ C = M.client
+ if(!(C?.prefs?.toggles & SOUND_MIDI))
+ continue
+ O = C.chatOutput
+ if(!O || O.broken || !O.loaded)
+ continue
+ O.sendMusic(web_sound_input, freq)
+ SSblackbox.record_feedback("tally", "admin_verb", 1, "Manual Play Internet Sound")
+
/client/proc/set_round_end_sound(S as sound)
set category = "Fun"
set name = "Set Round End Sound"
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index d27a654b95..9d27658074 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -1372,3 +1372,47 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
else
message_admins("[key_name_admin(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name_admin(C)]")
log_admin("[key_name(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name(C)]")
+
+/// Allow admin to add or remove traits of datum
+/datum/admins/proc/modify_traits(datum/D)
+ if(!D)
+ return
+
+ var/add_or_remove = input("Remove/Add?", "Trait Remove/Add") as null|anything in list("Add","Remove")
+ if(!add_or_remove)
+ return
+ var/list/availible_traits = list()
+
+ switch(add_or_remove)
+ if("Add")
+ for(var/key in GLOB.traits_by_type)
+ if(istype(D,key))
+ availible_traits += GLOB.traits_by_type[key]
+ if("Remove")
+ if(!GLOB.trait_name_map)
+ GLOB.trait_name_map = generate_trait_name_map()
+ for(var/trait in D.status_traits)
+ var/name = GLOB.trait_name_map[trait] || trait
+ availible_traits[name] = trait
+
+ var/chosen_trait = input("Select trait to modify", "Trait") as null|anything in sortList(availible_traits)
+ if(!chosen_trait)
+ return
+ chosen_trait = availible_traits[chosen_trait]
+
+ var/source = "adminabuse"
+ switch(add_or_remove)
+ if("Add") //Not doing source choosing here intentionally to make this bit faster to use, you can always vv it.
+ ADD_TRAIT(D,chosen_trait,source)
+ if("Remove")
+ var/specific = input("All or specific source ?", "Trait Remove/Add") as null|anything in list("All","Specific")
+ if(!specific)
+ return
+ switch(specific)
+ if("All")
+ source = null
+ if("Specific")
+ source = input("Source to be removed","Trait Remove/Add") as null|anything in sortList(D.status_traits[chosen_trait])
+ if(!source)
+ return
+ REMOVE_TRAIT(D,chosen_trait,source)
diff --git a/code/modules/admin/view_variables/modify_variables.dm b/code/modules/admin/view_variables/modify_variables.dm
index a4ed4d45bd..5f80b3a5e4 100644
--- a/code/modules/admin/view_variables/modify_variables.dm
+++ b/code/modules/admin/view_variables/modify_variables.dm
@@ -194,9 +194,10 @@ GLOBAL_PROTECT(VVpixelmovement)
else
variable = L[index]
//EXPERIMENTAL - Keep old associated value while modifying key, if any
- var/found = L[variable]
- if(!isnull(found))
- old_assoc_value = found
+ if(IS_VALID_ASSOC_KEY(variable))
+ var/found = L[variable]
+ if(!isnull(found))
+ old_assoc_value = found
//
default = vv_get_class(objectvar, variable)
diff --git a/code/modules/admin/view_variables/topic_basic.dm b/code/modules/admin/view_variables/topic_basic.dm
index 2a0f3d7302..d6e4c2b944 100644
--- a/code/modules/admin/view_variables/topic_basic.dm
+++ b/code/modules/admin/view_variables/topic_basic.dm
@@ -47,5 +47,33 @@
usr.client.debug_variables(src)
if(href_list[VV_HK_MARK])
usr.client.mark_datum(target)
+ if(href_list[VV_HK_ADDCOMPONENT])
+ if(!check_rights(NONE))
+ return
+ var/list/names = list()
+ var/list/componentsubtypes = subtypesof(/datum/component)
+ names += "---Components---"
+ names += componentsubtypes
+ names += "---Elements---"
+ names += subtypesof(/datum/element)
+ var/result = input(usr, "Choose a component/element to add","better know what ur fuckin doin pal") as null|anything in names
+ if(!usr || !result || result == "---Components---" || result == "---Elements---")
+ return
+ if(QDELETED(src))
+ to_chat(usr, "That thing doesn't exist anymore!")
+ return
+ var/list/lst = get_callproc_args()
+ if(!lst)
+ return
+ var/datumname = "error"
+ lst.Insert(1, result)
+ if(result in componentsubtypes)
+ datumname = "component"
+ target._AddComponent(lst)
+ else
+ datumname = "element"
+ target._AddElement(lst)
+ log_admin("[key_name(usr)] has added [result] [datumname] to [key_name(src)].")
+ message_admins("[key_name_admin(usr)] has added [result] [datumname] to [key_name_admin(src)]. ")
if(href_list[VV_HK_CALLPROC])
usr.client.callproc_datum(target)
diff --git a/code/modules/antagonists/_common/antag_team.dm b/code/modules/antagonists/_common/antag_team.dm
index 653853cfb5..9d138ed0b9 100644
--- a/code/modules/antagonists/_common/antag_team.dm
+++ b/code/modules/antagonists/_common/antag_team.dm
@@ -42,7 +42,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- report += "Objective #[objective_count] : [objective.explanation_text] Success! "
+ report += "Objective #[objective_count] : [objective.explanation_text] Success! "
else if(completion <= 0)
report += "Objective #[objective_count] : [objective.explanation_text] Fail. "
win = FALSE
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 42e3f71037..b90389094f 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -492,7 +492,7 @@
user.do_attack_animation(L)
- if(L.run_block(src, 0, "[user]'s [src]", ATTACK_TYPE_MELEE, 0, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS)
+ if(L.mob_run_block(src, 0, "[user]'s [src]", ATTACK_TYPE_MELEE, 0, user, check_zone(user.zone_selected), null) & BLOCK_SUCCESS)
playsound(L, 'sound/weapons/genhit.ogg', 50, TRUE)
return FALSE
diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm
index 0d30ebe992..d9ae678bb9 100644
--- a/code/modules/antagonists/abductor/equipment/gland.dm
+++ b/code/modules/antagonists/abductor/equipment/gland.dm
@@ -6,6 +6,7 @@
status = ORGAN_ROBOTIC
beating = TRUE
organ_flags = ORGAN_NO_SPOIL
+ no_pump = TRUE
var/true_name = "baseline placebo referencer"
var/cooldown_low = 300
var/cooldown_high = 300
@@ -92,6 +93,7 @@
update_gland_hud()
/obj/item/organ/heart/gland/on_life()
+ . = ..()
if(!beating)
// alien glands are immune to stopping.
beating = TRUE
diff --git a/code/modules/antagonists/abductor/equipment/glands/slime.dm b/code/modules/antagonists/abductor/equipment/glands/slime.dm
index 53b8133528..2df4a1fab9 100644
--- a/code/modules/antagonists/abductor/equipment/glands/slime.dm
+++ b/code/modules/antagonists/abductor/equipment/glands/slime.dm
@@ -10,7 +10,12 @@
/obj/item/organ/heart/gland/slime/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)
..()
owner.faction |= "slime"
- owner.grant_language(/datum/language/slime)
+ owner.grant_language(/datum/language/slime, TRUE, TRUE, LANGUAGE_GLAND)
+
+/obj/item/organ/heart/gland/slime/Remove(mob/living/carbon/M, special = 0)
+ ..()
+ owner.faction -= "slime"
+ owner.remove_language(/datum/language/slime, TRUE, TRUE, LANGUAGE_GLAND)
/obj/item/organ/heart/gland/slime/activate()
to_chat(owner, "You feel nauseated! ")
diff --git a/code/modules/antagonists/abductor/equipment/glands/trauma.dm b/code/modules/antagonists/abductor/equipment/glands/trauma.dm
index b6280ec017..103d09d444 100644
--- a/code/modules/antagonists/abductor/equipment/glands/trauma.dm
+++ b/code/modules/antagonists/abductor/equipment/glands/trauma.dm
@@ -10,9 +10,9 @@
/obj/item/organ/heart/gland/trauma/activate()
to_chat(owner, "You feel a spike of pain in your head. ")
if(prob(33))
- owner.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_LOBOTOMY))
+ owner.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_SURGERY))
else
if(prob(20))
- owner.gain_trauma_type(BRAIN_TRAUMA_SEVERE, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_LOBOTOMY))
+ owner.gain_trauma_type(BRAIN_TRAUMA_SEVERE, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_SURGERY))
else
- owner.gain_trauma_type(BRAIN_TRAUMA_MILD, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_LOBOTOMY))
\ No newline at end of file
+ owner.gain_trauma_type(BRAIN_TRAUMA_MILD, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_SURGERY))
diff --git a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm
index 3757aecd02..fbdeea6b84 100644
--- a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm
+++ b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm
@@ -42,7 +42,7 @@
/mob/living/simple_animal/hostile/blob/fire_act(exposed_temperature, exposed_volume)
..()
if(exposed_temperature)
- adjustFireLoss(CLAMP(0.01 * exposed_temperature, 1, 5))
+ adjustFireLoss(clamp(0.01 * exposed_temperature, 1, 5))
else
adjustFireLoss(5)
diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm
index aed64e4039..02be432045 100644
--- a/code/modules/antagonists/blob/blob/overmind.dm
+++ b/code/modules/antagonists/blob/blob/overmind.dm
@@ -203,7 +203,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
B.hud_used.blobpwrdisplay.maptext = "[round(blob_core.obj_integrity)]
"
/mob/camera/blob/proc/add_points(points)
- blob_points = CLAMP(blob_points + points, 0, max_blob_points)
+ blob_points = clamp(blob_points + points, 0, max_blob_points)
hud_used.blobpwrdisplay.maptext = "[round(blob_points)]
"
/mob/camera/blob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
diff --git a/code/modules/antagonists/blob/blob/theblob.dm b/code/modules/antagonists/blob/blob/theblob.dm
index 444b10684b..5717dc557d 100644
--- a/code/modules/antagonists/blob/blob/theblob.dm
+++ b/code/modules/antagonists/blob/blob/theblob.dm
@@ -77,7 +77,7 @@
/obj/structure/blob/CanAStarPass(ID, dir, caller)
. = 0
- if(ismovableatom(caller))
+ if(ismovable(caller))
var/atom/movable/mover = caller
. = . || (mover.pass_flags & PASSBLOB)
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
index efccb5591e..1867be1594 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
@@ -14,10 +14,10 @@
set waitfor = FALSE // Don't make on_gain() wait for this function to finish. This lets this code run on the side.
var/notice_healing
while(owner && !AmFinalDeath()) // owner.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) == src
- if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_DEATHCOMA)) // Deduct Blood
+ if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_FAKEDEATH)) // Deduct Blood
AddBloodVolume(passive_blood_drain) // -.1 currently
if(HandleHealing(1)) // Heal
- if(notice_healing == FALSE && owner.current.blood_volume > 0)
+ if(!notice_healing && owner.current.blood_volume > 0)
to_chat(owner, "The power of your blood begins knitting your wounds... ")
notice_healing = TRUE
else if(notice_healing == TRUE)
@@ -25,7 +25,7 @@
HandleStarving() // Death
HandleDeath() // Standard Update
update_hud()// Daytime Sleep in Coffin
- if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_DEATHCOMA, "bloodsucker"))
+ if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker"))
if(istype(owner.current.loc, /obj/structure/closet/crate/coffin))
Torpor_Begin()
// Wait before next pass
@@ -39,7 +39,7 @@
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/antagonist/bloodsucker/proc/AddBloodVolume(value)
- owner.current.blood_volume = CLAMP(owner.current.blood_volume + value, 0, max_blood_volume)
+ owner.current.blood_volume = clamp(owner.current.blood_volume + value, 0, max_blood_volume)
update_hud()
/datum/antagonist/bloodsucker/proc/HandleFeeding(mob/living/carbon/target, mult=1)
@@ -83,7 +83,7 @@
// NOTE: Mult of 0 is just a TEST to see if we are injured and need to go into Torpor!
//It is called from your coffin on close (by you only)
var/actual_regen = regen_rate + additional_regen
- if(poweron_masquerade == TRUE || owner.current.AmStaked())
+ if(poweron_masquerade|| owner.current.AmStaked())
return FALSE
if(owner.current.reagents.has_reagent(/datum/reagent/consumable/garlic))
return FALSE
@@ -101,8 +101,8 @@
var/mob/living/carbon/C = owner.current
var/costMult = 1 // Coffin makes it cheaper
var/fireheal = 0 // BURN: Heal in Coffin while Fakedeath, or when damage above maxhealth (you can never fully heal fire)
- var/amInCoffinWhileTorpor = istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_FAKEDEATH)) // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin)
- if(amInCoffinWhileTorpor)
+ // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin)
+ if(istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_FAKEDEATH)))
mult *= 4 // Increase multiplier if we're sleeping in a coffin.
fireheal = min(C.getFireLoss(), regen_rate) // NOTE: Burn damage ONLY heals in torpor.
C.ExtinguishMob()
@@ -112,7 +112,10 @@
CheckVampOrgans() // Heart, Eyes
if(check_limbs(costMult))
return TRUE
-
+ else if(owner.current.stat >= UNCONSCIOUS) //Faster regeneration and slight burn healing while unconcious
+ mult *= 2
+ fireheal = min(C.getFireLoss(), regen_rate * 0.2)
+
// BRUTE: Always Heal
var/bruteheal = min(C.getBruteLoss(), actual_regen)
var/toxinheal = min(C.getToxLoss(), actual_regen)
@@ -120,8 +123,6 @@
if(bruteheal + fireheal + toxinheal > 0) // Just a check? Don't heal/spend, and return.
if(mult == 0)
return TRUE
- if(owner.current.stat >= UNCONSCIOUS) //Faster regeneration while unconcious, so you dont have to wait all day
- mult *= 2
// We have damage. Let's heal (one time)
C.adjustBruteLoss(-bruteheal * mult, forced = TRUE)// Heal BRUTE / BURN in random portions throughout the body.
C.adjustFireLoss(-fireheal * mult, forced = TRUE)
@@ -129,7 +130,7 @@
//C.heal_overall_damage(bruteheal * mult, fireheal * mult) // REMOVED: We need to FORCE this, because otherwise, vamps won't heal EVER. Swapped to above.
AddBloodVolume((bruteheal * -0.5 + fireheal * -1 + toxinheal * -0.2) / mult * costMult) // Costs blood to heal
return TRUE // Healed! Done for this tick.
-
+
/datum/antagonist/bloodsucker/proc/check_limbs(costMult)
@@ -137,7 +138,7 @@
var/mob/living/carbon/C = owner.current
var/list/missing = C.get_missing_limbs()
if(missing.len && C.blood_volume < limb_regen_cost + 5)
- return FALSE
+ return FALSE
for(var/targetLimbZone in missing) // 1) Find ONE Limb and regenerate it.
C.regenerate_limb(targetLimbZone, FALSE) // regenerate_limbs() <--- If you want to EXCLUDE certain parts, do it like this ----> regenerate_limbs(0, list("head"))
AddBloodVolume(50)
@@ -146,12 +147,6 @@
to_chat(C, "Your flesh knits as it regrows your [L]! ")
playsound(C, 'sound/magic/demon_consume.ogg', 50, TRUE)
return TRUE
- /*for(var/obj/item/bodypart/BP in C.bodyparts)
- if(!istype(BP) && !BP.status == 2)
- return FALSE
- to_chat(C, "Your body expels the [BP]! ")
- BP.drop_limb()
- return TRUE */
/datum/antagonist/bloodsucker/proc/CureDisabilities()
var/mob/living/carbon/C = owner.current
@@ -176,14 +171,14 @@
// EMPTY: Frenzy!
// BLOOD_VOLUME_GOOD: [336] Pale (handled in bloodsucker_integration.dm
// BLOOD_VOLUME_BAD: [224] Jitter
- if(owner.current.blood_volume < BLOOD_VOLUME_BAD && !prob(0.5))
+ if(owner.current.blood_volume < BLOOD_VOLUME_BAD && !prob(0.5 && HAS_TRAIT(owner, TRAIT_FAKEDEATH)) && !poweron_masquerade)
owner.current.Jitter(3)
// BLOOD_VOLUME_SURVIVE: [122] Blur Vision
if(owner.current.blood_volume < BLOOD_VOLUME_BAD / 2)
owner.current.blur_eyes(8 - 8 * (owner.current.blood_volume / BLOOD_VOLUME_BAD))
// Nutrition
owner.current.nutrition = clamp(owner.current.blood_volume, 545, 0) //The amount of blood is how full we are.
- //A bit higher regeneration based on blood volume
+ //A bit higher regeneration based on blood volume
if(owner.current.blood_volume < 700)
additional_regen = 0.4
else if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL)
@@ -230,16 +225,16 @@
Torpor_Begin()
to_chat(owner, "Your immortal body will not yet relinquish your soul to the abyss. You enter Torpor. ")
sleep(30) //To avoid spam
- if(poweron_masquerade == TRUE)
+ if(poweron_masquerade)
to_chat(owner, "Your wounds will not heal until you disable the Masquerade power. ")
// End Torpor:
else // No damage, OR toxin healed AND brute healed and NOT in coffin (since you cannot heal burn)
if(total_damage <= 0 || total_toxloss <= 0 && total_brute <= 0 && !istype(owner.current.loc, /obj/structure/closet/crate/coffin))
- // Not Daytime, Not in Torpor
- if(!SSticker.mode.is_daylight() && HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker"))
+ // Not Daytime, Not in Torpor, enough health to not die the moment you end torpor
+ if(!SSticker.mode.is_daylight() && HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker") && total_damage < owner.current.getMaxHealth())
Torpor_End()
// Fake Unconscious
- if(poweron_masquerade == TRUE && total_damage >= owner.current.getMaxHealth() - HEALTH_THRESHOLD_FULLCRIT)
+ if(poweron_masquerade && total_damage >= owner.current.getMaxHealth() - HEALTH_THRESHOLD_FULLCRIT)
owner.current.Unconscious(20, 1)
/datum/antagonist/bloodsucker/proc/Torpor_Begin(amInCoffin = FALSE)
@@ -249,6 +244,7 @@
ADD_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") // Without this, you'll just keep dying while you recover.
ADD_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") // So you can heal in space. Otherwise you just...heal forever.
ADD_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker")
+ owner.current.Jitter(0)
// Visuals
owner.current.update_sight()
owner.current.reload_fullscreen()
@@ -256,6 +252,9 @@
for(var/datum/action/bloodsucker/power in powers)
if(power.active && !power.can_use_in_torpor)
power.DeactivatePower()
+ if(owner.current.suiciding)
+ owner.current.suiciding = FALSE //Youll die but not for long.
+ to_chat(owner.current, "Your body keeps you going, even as you try to end yourself. ")
/datum/antagonist/bloodsucker/proc/Torpor_End()
owner.current.stat = SOFT_CRIT
@@ -369,8 +368,8 @@
//Puke blood only if puke_blood is true, and loose some blood, else just puke normally.
if(puke_blood)
C.blood_volume = max(0, C.blood_volume - foodInGut * 2)
- C.vomit(foodInGut * 4, foodInGut * 2, 0)
- else
+ C.vomit(foodInGut * 4, foodInGut * 2, 0)
+ else
C.vomit(foodInGut * 4, FALSE, 0)
C.Stun(30)
//C.Dizzy(50)
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm
index 0c80ce0dee..7043c2f429 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm
@@ -87,7 +87,7 @@
// Heads?
if (target_role == "HEAD")
target_amount = rand(1, round(SSticker.mode.num_players() / 20))
- target_amount = CLAMP(target_amount,1,3)
+ target_amount = clamp(target_amount,1,3)
// Department?
else
switch(target_role)
@@ -100,7 +100,7 @@
if("Quartermaster")
department_string = "Cargo"
target_amount = rand(round(SSticker.mode.num_players() / 20), round(SSticker.mode.num_players() / 10))
- target_amount = CLAMP(target_amount, 2, 4)
+ target_amount = clamp(target_amount, 2, 4)
..()
// EXPLANATION
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm
index b7d98c6783..43163f6a70 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm
@@ -45,15 +45,15 @@
// (FINAL LIL WARNING)
while(time_til_cycle > 5)
sleep(10)
- if (cancel_me)
+ if(cancel_me)
return
//sleep(TIME_BLOODSUCKER_DAY_FINAL_WARN - 50)
warn_daylight(3,"Seek cover, for Sol rises! ")
// Part 3: Night Ending
- while (time_til_cycle > 0)
+ while(time_til_cycle > 0)
sleep(10)
- if (cancel_me)
+ if(cancel_me)
return
//sleep(50)
warn_daylight(4,"Solar flares bombard the station with deadly UV light! Stay in cover for the next [TIME_BLOODSUCKER_DAY / 60] minutes or risk Final Death! ",\
@@ -69,11 +69,11 @@
while(time_til_cycle > 0)
punish_vamps()
sleep(TIME_BLOODSUCKER_BURN_INTERVAL)
- if (cancel_me)
+ if(cancel_me)
return
//daylight_time -= TIME_BLOODSUCKER_BURN_INTERVAL
// Issue Level Up!
- if(!issued_XP && time_til_cycle <= 15)
+ if(!issued_XP && time_til_cycle <= 5)
issued_XP = TRUE
vamps_rank_up()
diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
index 946be31ed6..0feb6dfa7e 100644
--- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
+++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
@@ -20,7 +20,7 @@
var/poweron_feed = FALSE // Am I feeding?
var/poweron_masquerade = FALSE
// STATS
- var/bloodsucker_level
+ var/bloodsucker_level
var/bloodsucker_level_unspent = 1
var/regen_rate = 0.3 // How fast do I regenerate?
var/additional_regen // How much additional blood regen we gain from bonuses such as high blood.
@@ -209,7 +209,7 @@
// Physiology
CheckVampOrgans() // Heart, Eyes
// Language
- owner.current.grant_language(/datum/language/vampiric)
+ owner.current.grant_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_BLOODSUCKER)
owner.hasSoul = FALSE // If false, renders the character unable to sell their soul.
owner.isholy = FALSE // is this person a chaplain or admin role allowed to use bibles
// Disabilities
@@ -227,7 +227,7 @@
// Traits
for(var/T in defaultTraits)
REMOVE_TRAIT(owner.current, T, BLOODSUCKER_TRAIT)
- if(had_toxlover == TRUE)
+ if(had_toxlover)
ADD_TRAIT(owner.current, TRAIT_TOXINLOVER, SPECIES_TRAIT)
// Traits: Species
@@ -246,7 +246,7 @@
// Update Health
owner.current.setMaxHealth(100)
// Language
- owner.current.remove_language(/datum/language/vampiric)
+ owner.current.remove_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_BLOODSUCKER)
// Soul
if (owner.soulOwner == owner) // Return soul, if *I* own it.
owner.hasSoul = TRUE
@@ -649,10 +649,10 @@
return TRUE
// Check 3) If I am a BLOODSUCKER, then are they my Vassal?
if (mob_B && atom_V && (atom_V in mob_B.vassals))
- return TRUE
+ return TRUE
// Check 4) If we are both VASSAL, then do we have the same master?
if (atom_V && mob_V && atom_V.master == mob_V.master)
- return TRUE
+ return TRUE
return FALSE
@@ -710,7 +710,7 @@
invisibility = INVISIBILITY_ABSTRACT
/obj/screen/bloodsucker/proc/update_counter(value, valuecolor)
- invisibility = 0
+ invisibility = 0
/obj/screen/bloodsucker/blood_counter
icon = 'icons/mob/actions/bloodsucker.dmi'
@@ -758,7 +758,7 @@
/obj/screen/bloodsucker/sunlight_counter/update_counter(value, valuecolor)
..()
- maptext = "[value]
"
+ maptext = "[value]
"
/datum/antagonist/bloodsucker/proc/count_vassals(datum/mind/master)
var/datum/antagonist/bloodsucker/B = master.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
diff --git a/code/modules/antagonists/bloodsucker/datum_vassal.dm b/code/modules/antagonists/bloodsucker/datum_vassal.dm
index 3d5ed1369b..c065d5fe7c 100644
--- a/code/modules/antagonists/bloodsucker/datum_vassal.dm
+++ b/code/modules/antagonists/bloodsucker/datum_vassal.dm
@@ -48,7 +48,7 @@
objectives += vassal_objective
objectives_given += vassal_objective
give_thrall_eyes()
- owner.current.grant_language(/datum/language/vampiric)
+ owner.current.grant_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_VASSAL)
// Add Antag HUD
update_vassal_icons_added(owner.current, "vassal")
. = ..()
@@ -81,7 +81,7 @@
qdel(O)
objectives_given = list()
remove_thrall_eyes()
- owner.current.remove_language(/datum/language/vampiric)
+ owner.current.remove_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_VASSAL)
// Clear Antag HUD
update_vassal_icons_removed(owner.current)
diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm
index f68191d6d7..dd7e835d3a 100644
--- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm
+++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm
@@ -63,7 +63,7 @@
// Find Animals in Area
/* if(rand(0,2) == 0)
var/mobCount = 0
- var/mobMax = CLAMP(area_turfs.len / 25, 1, 4)
+ var/mobMax = clamp(area_turfs.len / 25, 1, 4)
for (var/turf/T in area_turfs)
if(!T) continue
var/mob/living/simple_animal/SA = locate() in T
diff --git a/code/modules/antagonists/bloodsucker/powers/cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm
index a616c39923..347700ca9a 100644
--- a/code/modules/antagonists/bloodsucker/powers/cloak.dm
+++ b/code/modules/antagonists/bloodsucker/powers/cloak.dm
@@ -18,14 +18,11 @@
. = ..()
if(!.)
return
-
// must have nobody around to see the cloak
- var/watchers = viewers(9,get_turf(owner))
- for(var/mob/living/M in watchers)
+ for(var/mob/living/M in viewers(9, owner))
if(M != owner)
to_chat(owner, "You may only vanish into the shadows unseen. ")
return FALSE
-
return TRUE
/datum/action/bloodsucker/cloak/ActivatePower()
diff --git a/code/modules/antagonists/bloodsucker/powers/fortitude.dm b/code/modules/antagonists/bloodsucker/powers/fortitude.dm
index a58034df0d..76f3cc77a4 100644
--- a/code/modules/antagonists/bloodsucker/powers/fortitude.dm
+++ b/code/modules/antagonists/bloodsucker/powers/fortitude.dm
@@ -3,7 +3,7 @@
/datum/action/bloodsucker/fortitude
- name = "Fortitude"//"Cellular Emporium"
+ name = "Fortitude"
desc = "Withstand egregious physical wounds and walk away from attacks that would stun, pierce, and dismember lesser beings. You cannot run while active."
button_icon_state = "power_fortitude"
bloodcost = 30
@@ -11,28 +11,27 @@
bloodsucker_can_buy = TRUE
amToggle = TRUE
warn_constant_cost = TRUE
+ var/was_running
- var/this_resist // So we can raise and lower your brute resist based on what your level_current WAS.
+ var/fortitude_resist // So we can raise and lower your brute resist based on what your level_current WAS.
/datum/action/bloodsucker/fortitude/ActivatePower()
- var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
+ var/datum/antagonist/bloodsucker/B = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
var/mob/living/user = owner
to_chat(user, "Your flesh, skin, and muscles become as steel. ")
// Traits & Effects
ADD_TRAIT(user, TRAIT_PIERCEIMMUNE, "fortitude")
ADD_TRAIT(user, TRAIT_NODISMEMBER, "fortitude")
ADD_TRAIT(user, TRAIT_STUNIMMUNE, "fortitude")
- ADD_TRAIT(user, TRAIT_NORUNNING, "fortitude")
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
- this_resist = max(0.3, 0.7 - level_current * 0.1)
- H.physiology.brute_mod *= this_resist//0.5
- H.physiology.burn_mod *= this_resist//0.5
- // Stop Running (Taken from /datum/quirk/nyctophobia in negative.dm)
- var/was_running = (user.m_intent == MOVE_INTENT_RUN)
+ fortitude_resist = max(0.3, 0.7 - level_current * 0.1)
+ H.physiology.brute_mod *= fortitude_resist
+ H.physiology.burn_mod *= fortitude_resist
+ was_running = (user.m_intent == MOVE_INTENT_RUN)
if(was_running)
user.toggle_move_intent()
- while(bloodsuckerdatum && ContinueActive(user) || user.m_intent == MOVE_INTENT_RUN)
+ while(B && ContinueActive(user) || user.m_intent == MOVE_INTENT_RUN)
if(istype(user.buckled, /obj/vehicle)) //We dont want people using fortitude being able to use vehicles
var/obj/vehicle/V = user.buckled
var/datum/component/riding/VRD = V.GetComponent(/datum/component/riding)
@@ -44,20 +43,21 @@
to_chat(user, "You fall off the [V], your weight making you too heavy to be supported by it. ")
// Pay Blood Toll (if awake)
if(user.stat == CONSCIOUS)
- bloodsuckerdatum.AddBloodVolume(-0.5) // Used to be 0.3 blood per 2 seconds, but we're making it more expensive to keep on.
+ B.AddBloodVolume(-0.5)
sleep(20) // Check every few ticks that we haven't disabled this power
// Return to Running (if you were before)
- if(was_running && user.m_intent != MOVE_INTENT_RUN)
- user.toggle_move_intent()
-
+
/datum/action/bloodsucker/fortitude/DeactivatePower(mob/living/user = owner, mob/living/target)
..()
// Restore Traits & Effects
REMOVE_TRAIT(user, TRAIT_PIERCEIMMUNE, "fortitude")
REMOVE_TRAIT(user, TRAIT_NODISMEMBER, "fortitude")
REMOVE_TRAIT(user, TRAIT_STUNIMMUNE, "fortitude")
- REMOVE_TRAIT(user, TRAIT_NORUNNING, "fortitude")
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.brute_mod /= this_resist//0.5
- H.physiology.burn_mod /= this_resist//0.5
+ if(!ishuman(owner))
+ return
+ var/mob/living/carbon/human/H = owner
+ H.physiology.brute_mod /= fortitude_resist
+ H.physiology.burn_mod /= fortitude_resist
+ if(was_running && user.m_intent == MOVE_INTENT_WALK)
+ user.toggle_move_intent()
+
diff --git a/code/modules/antagonists/bloodsucker/powers/lunge.dm b/code/modules/antagonists/bloodsucker/powers/lunge.dm
index f6dfc8ba72..db7868fa8a 100644
--- a/code/modules/antagonists/bloodsucker/powers/lunge.dm
+++ b/code/modules/antagonists/bloodsucker/powers/lunge.dm
@@ -1,88 +1,46 @@
-// Level 1: Grapple level 2
-// Level 2: Grapple 3 from Behind
-// Level 3: Grapple 3 from Shadows
-/datum/action/bloodsucker/targeted/lunge
+
+
+/datum/action/bloodsucker/lunge
name = "Predatory Lunge"
- desc = "Spring at your target and aggressively grapple them without warning. Attacks from concealment or the rear may even knock them down."
+ desc = "Prepare the strenght to grapple your prey."
button_icon_state = "power_lunge"
bloodcost = 10
- cooldown = 120
- target_range = 3
- power_activates_immediately = TRUE
- message_Trigger = "Whom will you ensnare within your grasp?"
- must_be_capacitated = TRUE
+ cooldown = 30
bloodsucker_can_buy = TRUE
+ warn_constant_cost = TRUE
+ amToggle = TRUE
+ var/leap_skill_mod = 5
-/datum/action/bloodsucker/targeted/lunge/CheckCanUse(display_error)
- if(!..(display_error))// DEFAULT CHECKS
- return FALSE
- // Being Grabbed
- if(owner.pulledby && owner.pulledby.grab_state >= GRAB_AGGRESSIVE)
- if(display_error)
- to_chat(owner, "You're being grabbed! ")
- return FALSE
- if(!owner.has_gravity(owner.loc))//TODO figure out how to check if theyre able to move while in nograv
- if(display_error)
- to_chat(owner, "You cant lunge while floating! ")
- return FALSE
- return TRUE
+/datum/action/bloodsucker/lunge/New()
+ . = ..()
+
-/datum/action/bloodsucker/targeted/lunge/CheckValidTarget(atom/A)
- return iscarbon(A)
+/datum/action/bloodsucker/lunge/Destroy()
+ . = ..()
+ UnregisterSignal(owner, COMSIG_CARBON_TACKLED)
-/datum/action/bloodsucker/targeted/lunge/CheckCanTarget(atom/A, display_error)
- // Check: Self
- if(target == owner)
- return FALSE
- // Check: Range
- //if (!(target in view(target_range, get_turf(owner))))
- // if (display_error)
- // to_chat(owner, "Your victim is too far away. ")
- // return FALSE
- // DEFAULT CHECKS (Distance)
- if(!..())
- return FALSE
- // Check: Turf
- var/mob/living/L = A
- if(!isturf(L.loc))
- return FALSE
- return TRUE
+/datum/action/bloodsucker/lunge/ActivatePower()
+ var/mob/living/carbon/user = owner
+ var/datum/antagonist/bloodsucker/B = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
+ var/datum/component/tackler/T = user.LoadComponent(/datum/component/tackler)
+ T.stamina_cost = 50
+ T.base_knockdown = 3 SECONDS
+ T.range = 4
+ T.speed = 0.8
+ T.skill_mod = 5 //Monstrous tackling
+ T.min_distance = 2
+ active = TRUE
+ user.toggle_throw_mode()
+ RegisterSignal(user, COMSIG_CARBON_TACKLED, .proc/DelayedDeactivatePower)
+ while(B && ContinueActive(user))
+ B.AddBloodVolume(-0.1)
+ sleep(5)
-/datum/action/bloodsucker/targeted/lunge/FireTargetedPower(atom/A)
- // set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done.
- var/mob/living/carbon/target = A
- var/turf/T = get_turf(target)
- var/mob/living/L = owner
- // Clear Vars
- owner.pulling = null
- // Will we Knock them Down?
- var/do_knockdown = !is_A_facing_B(target,owner) || owner.alpha <= 0 || istype(owner.loc, /obj/structure/closet)
- // CAUSES: Target has their back to me, I'm invisible, or I'm in a Closet
- // Step One: Heatseek toward Target's Turf
- addtimer(CALLBACK(GLOBAL_PROC, .proc/_walk, owner, 0), 2 SECONDS)
- target.playsound_local(get_turf(owner), 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // target-only telegraphing
- owner.playsound_local(owner, 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // audio feedback to the user
- if(do_mob(owner, owner, 7, TRUE, TRUE))
- walk_towards(owner, T, 0.1, 10) // yes i know i shouldn't use this but i don't know how to work in anything better
- if(get_turf(owner) != T && !(isliving(target) && target.Adjacent(owner)) && owner.incapacitated() && !CHECK_MOBILITY(L, MOBILITY_STAND))
- var/send_dir = get_dir(owner, T)
- new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE)
- owner.spin(10)
- // Step Two: Check if I'm at/adjectent to Target's CURRENT turf (not original...that was just a destination)
- for(var/i in 1 to 6)
- if (target.Adjacent(owner))
- // LEVEL 2: If behind target, mute or unconscious!
- if(do_knockdown) // && level_current >= 1)
- target.Knockdown(15 + 10 * level_current,1)
- target.adjustStaminaLoss(40 + 10 * level_current)
- // Cancel Walk (we were close enough to contact them)
- walk(owner, 0)
- target.Stun(10,1) //Without this the victim can just walk away
- target.grabbedby(owner) // Taken from mutations.dm under changelings
- target.grippedby(owner, instant = TRUE) //instant aggro grab
- break
- sleep(3)
+//Without this, the leap component would get removed too early, causing the normal crash into effects.
+/datum/action/bloodsucker/lunge/proc/DelayedDeactivatePower()
+ addtimer(CALLBACK(src, .proc/DeactivatePower), 1 SECONDS, TIMER_UNIQUE)
-/datum/action/bloodsucker/targeted/lunge/DeactivatePower(mob/living/user = owner, mob/living/target)
- ..() // activate = FALSE
- user.update_mobility()
+/datum/action/bloodsucker/lunge/DeactivatePower(mob/living/user = owner)
+ . = ..()
+ qdel(user.GetComponent(/datum/component/tackler))
+ UnregisterSignal(user, COMSIG_CARBON_TACKLED)
diff --git a/code/modules/antagonists/bloodsucker/powers/masquerade.dm b/code/modules/antagonists/bloodsucker/powers/masquerade.dm
index 7d41899dc2..d83f938e3f 100644
--- a/code/modules/antagonists/bloodsucker/powers/masquerade.dm
+++ b/code/modules/antagonists/bloodsucker/powers/masquerade.dm
@@ -52,6 +52,7 @@
REMOVE_TRAIT(user, TRAIT_NOHARDCRIT, "bloodsucker")
REMOVE_TRAIT(user, TRAIT_NOSOFTCRIT, "bloodsucker")
REMOVE_TRAIT(user, TRAIT_VIRUSIMMUNE, "bloodsucker")
+ REMOVE_TRAIT(user, TRAIT_NOBREATH, "bloodsucker")
var/obj/item/organ/heart/vampheart/H = user.getorganslot(ORGAN_SLOT_HEART)
var/obj/item/organ/eyes/vassal/bloodsucker/E = user.getorganslot(ORGAN_SLOT_EYES)
E.flash_protect = 0
@@ -93,6 +94,7 @@
ADD_TRAIT(user, TRAIT_NOHARDCRIT, "bloodsucker")
ADD_TRAIT(user, TRAIT_NOSOFTCRIT, "bloodsucker")
ADD_TRAIT(user, TRAIT_VIRUSIMMUNE, "bloodsucker")
+ ADD_TRAIT(user, TRAIT_NOBREATH, "bloodsucker")
// HEART
var/obj/item/organ/heart/H = user.getorganslot(ORGAN_SLOT_HEART)
diff --git a/code/modules/antagonists/bloodsucker/powers/trespass.dm b/code/modules/antagonists/bloodsucker/powers/trespass.dm
index 45d1dda3ef..c91b924bb7 100644
--- a/code/modules/antagonists/bloodsucker/powers/trespass.dm
+++ b/code/modules/antagonists/bloodsucker/powers/trespass.dm
@@ -28,7 +28,7 @@
/datum/action/bloodsucker/targeted/trespass/CheckValidTarget(atom/A)
// Can't target my tile
- if (A == get_turf(owner) || get_turf(A) == get_turf(owner))
+ if(A == get_turf(owner) || get_turf(A) == get_turf(owner))
return FALSE
return TRUE // All we care about is destination. Anything you click is fine.
@@ -43,13 +43,13 @@
// Are either tiles WALLS?
var/turf/from_turf = get_turf(owner)
var/this_dir // = get_dir(from_turf, target_turf)
- for (var/i=1 to 2)
+ for(var/i=1 to 2)
// Keep Prev Direction if we've reached final turf
- if (from_turf != final_turf)
+ if(from_turf != final_turf)
this_dir = get_dir(from_turf, final_turf) // Recalculate dir so we don't overshoot on a diagonal.
from_turf = get_step(from_turf, this_dir)
// ERROR! Wall!
- if (iswallturf(from_turf))
+ if(iswallturf(from_turf))
if (display_error)
var/wallwarning = (i == 1) ? "in the way" : "at your destination"
to_chat(owner, "There is a solid wall [wallwarning]. ")
@@ -84,7 +84,7 @@
user.next_move = world.time + mist_delay
user.Stun(mist_delay, ignore_canstun = TRUE)
user.notransform = TRUE
- user.density = 0
+ user.density = FALSE
var/invis_was = user.invisibility
user.invisibility = INVISIBILITY_MAXIMUM
@@ -94,7 +94,7 @@
sleep(mist_delay / 2)
// Move & Freeze
- if (isturf(target_turf))
+ if(isturf(target_turf))
do_teleport(owner, target_turf, no_effects=TRUE, channel = TELEPORT_CHANNEL_QUANTUM) // in teleport.dm?
user.next_move = world.time + mist_delay / 2
user.Stun(mist_delay / 2, ignore_canstun = TRUE)
diff --git a/code/modules/antagonists/bloodsucker/powers/veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm
index 671f88f2c1..422d645ad2 100644
--- a/code/modules/antagonists/bloodsucker/powers/veil.dm
+++ b/code/modules/antagonists/bloodsucker/powers/veil.dm
@@ -93,7 +93,7 @@
H.socks = random_socks(H.gender)
//H.eye_color = random_eye_color()
REMOVE_TRAIT(H, TRAIT_DISFIGURED, null) //
- H.dna.features = random_features(H.dna.species?.id)
+ H.dna.features = random_features(H.dna.species?.id, H.gender)
// Apply Appearance
H.update_body(TRUE) // Outfit and underwear, also body and privates.
diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm
index a48e080a89..0a2e079921 100644
--- a/code/modules/antagonists/brother/brother.dm
+++ b/code/modules/antagonists/brother/brother.dm
@@ -111,7 +111,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- parts += "Objective #[objective_count] : [objective.explanation_text] Success! "
+ parts += "Objective #[objective_count] : [objective.explanation_text] Success! "
else if(completion <= 0)
parts += "Objective #[objective_count] : [objective.explanation_text] Fail. "
win = FALSE
diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm
index 967715ce2f..106ae16031 100644
--- a/code/modules/antagonists/changeling/changeling.dm
+++ b/code/modules/antagonists/changeling/changeling.dm
@@ -78,6 +78,7 @@
create_initial_profile()
if(give_objectives)
forge_objectives()
+ owner.current.grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue. We are able to transform our body after all.
remove_clownmut()
. = ..()
@@ -430,7 +431,7 @@
objectives += destroy_objective
else
if(prob(70))
- var/datum/objective/assassinate/kill_objective = new
+ var/datum/objective/assassinate/once/kill_objective = new
kill_objective.owner = owner
if(team_mode) //No backstabbing while in a team
kill_objective.find_target_by_role(role = ROLE_CHANGELING, role_type = 1, invert = 1)
@@ -563,7 +564,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- parts += "Objective #[count] : [objective.explanation_text] Success! "
+ parts += "Objective #[count] : [objective.explanation_text] Success! "
else if(completion <= 0)
parts += "Objective #[count] : [objective.explanation_text] Fail. "
changelingwin = FALSE
diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm
index c3c4ec78a3..2d5b38a456 100644
--- a/code/modules/antagonists/changeling/powers/absorb.dm
+++ b/code/modules/antagonists/changeling/powers/absorb.dm
@@ -61,10 +61,10 @@
if(user.nutrition < NUTRITION_LEVEL_WELL_FED)
user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED)
- if(target.mind)//if the victim has got a mind
- // Absorb a lizard, speak Draconic.
- user.copy_known_languages_from(target)
+ // Absorb a lizard, speak Draconic.
+ user.copy_languages(target, LANGUAGE_ABSORB)
+ if(target.mind && user.mind)//if the victim and user have minds
target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes.
//Some of target's recent speech, so the changeling can attempt to imitate them better.
diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm
index ba40388844..32171a036a 100644
--- a/code/modules/antagonists/changeling/powers/adrenaline.dm
+++ b/code/modules/antagonists/changeling/powers/adrenaline.dm
@@ -13,5 +13,5 @@
//Recover from stuns.
/obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user)
- user.do_adrenaline(0, FALSE, 70, 0, TRUE, list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/drug/methamphetamine/changeling = 10, /datum/reagent/medicine/mannitol = 10, /datum/reagent/medicine/regen_jelly = 10, /datum/reagent/medicine/changelingadrenaline = 5), "Energy rushes through us. ", 0, 0.75, 0)
- return TRUE
\ No newline at end of file
+ user.do_adrenaline(0, FALSE, 70, 0, TRUE, list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/drug/methamphetamine/changeling = 10, /datum/reagent/medicine/changelingadrenaline = 5), "Energy rushes through us. ", 0, 0.75, 0)
+ return TRUE
diff --git a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm
index 6eafeda63f..a6fdf7008a 100644
--- a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm
+++ b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm
@@ -27,12 +27,12 @@
var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES)
if(E)
if(!active)
- E.sight_flags |= SEE_MOBS | SEE_OBJS | SEE_TURFS //Add sight flags to the user's eyes
+ ADD_TRAIT(user, TRAIT_THERMAL_VISION, CHANGELING_TRAIT)
E.flash_protect = -1 //Adjust the user's eyes' flash protection
to_chat(user, "We adjust our eyes to sense prey through walls.")
active = TRUE //Defined in code/modules/spells/spell.dm
else
- E.sight_flags ^= SEE_MOBS | SEE_OBJS | SEE_TURFS //Remove sight flags from the user's eyes
+ REMOVE_TRAIT(user, TRAIT_THERMAL_VISION, CHANGELING_TRAIT)
E.flash_protect = 2 //Adjust the user's eyes' flash protection
to_chat(user, "We adjust our eyes to protect them from bright lights.")
active = FALSE
@@ -47,10 +47,8 @@
/obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user) //Get rid of X-ray vision and flash protection when the user refunds this ability
action.Remove(user)
+ REMOVE_TRAIT(user, TRAIT_THERMAL_VISION, CHANGELING_TRAIT)
var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES)
if(E)
- if (active)
- E.sight_flags ^= SEE_MOBS | SEE_OBJS | SEE_TURFS
- else
- E.flash_protect = 0
- user.update_sight()
\ No newline at end of file
+ E.flash_protect = initial(E.flash_protect)
+ user.update_sight()
diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm
index f58b90d8e6..db4e47aa78 100644
--- a/code/modules/antagonists/changeling/powers/biodegrade.dm
+++ b/code/modules/antagonists/changeling/powers/biodegrade.dm
@@ -2,7 +2,7 @@
name = "Biodegrade"
desc = "Dissolves restraints or other objects preventing free movement."
helptext = "This is obvious to nearby people, and can destroy standard restraints and closets. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat."
- chemical_cost = 30 //High cost to prevent spam
+ chemical_cost = 15 //High cost to prevent spam
loudness = 1
dna_cost = 2
req_human = 1
diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm
index 03f3aab473..c01a1e40c8 100644
--- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm
+++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm
@@ -3,7 +3,6 @@
desc = "Our skin pigmentation rapidly changes to suit our current environment."
helptext = "Allows us to become invisible after a few seconds of standing still. Can be toggled on and off."
dna_cost = 2
- chemical_cost = 25
req_human = 1
action_icon = 'icons/mob/actions/actions_changeling.dmi'
action_icon_state = "ling_camouflage"
@@ -23,4 +22,4 @@
action.Remove(user)
if(user.has_dna())
var/mob/living/carbon/C = user
- C.dna.remove_mutation(CHAMELEON)
\ No newline at end of file
+ C.dna.remove_mutation(CHAMELEON)
diff --git a/code/modules/antagonists/changeling/powers/fleshmend.dm b/code/modules/antagonists/changeling/powers/fleshmend.dm
index 9672d79ee4..afef2a10c7 100644
--- a/code/modules/antagonists/changeling/powers/fleshmend.dm
+++ b/code/modules/antagonists/changeling/powers/fleshmend.dm
@@ -1,8 +1,9 @@
/obj/effect/proc_holder/changeling/fleshmend
name = "Fleshmend"
- desc = "Our flesh rapidly regenerates, healing our burns, bruises, and shortness of breath. Functions while unconscious."
+ desc = "Our flesh rapidly regenerates, healing our burns, bruises, and shortness of breath. Functions while unconscious. This ability is loud, and might cause our blood to react violently to heat."
helptext = "If we are on fire, the healing effect will not function. Does not regrow limbs or restore lost blood."
chemical_cost = 20
+ loudness = 2
dna_cost = 2
req_stat = UNCONSCIOUS
action_icon = 'icons/mob/actions/actions_changeling.dmi'
diff --git a/code/modules/antagonists/changeling/powers/humanform.dm b/code/modules/antagonists/changeling/powers/humanform.dm
index a6f7b0b6e9..91119e1c06 100644
--- a/code/modules/antagonists/changeling/powers/humanform.dm
+++ b/code/modules/antagonists/changeling/powers/humanform.dm
@@ -27,7 +27,7 @@
changeling.purchasedpowers -= src
- var/newmob = user.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS)
+ var/newmob = user.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE)
changeling_transform(newmob, chosen_prof)
return TRUE
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index aefeb43db9..5378ea2276 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -137,7 +137,7 @@
name = "Arm Blade"
desc = "We reform one of our arms into a deadly blade."
helptext = "We may retract our armblade in the same manner as we form it. Cannot be used while in lesser form. This ability is loud, and might cause our blood to react violently to heat."
- chemical_cost = 20
+ chemical_cost = 10
dna_cost = 2
loudness = 2
req_human = 1
@@ -410,7 +410,7 @@
desc = "We reform one of our arms into a hard shield."
helptext = "Organic tissue cannot resist damage forever; the shield will break after it is hit too much. The more genomes we absorb, the stronger it is. Cannot be used while in lesser form. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat."
chemical_cost = 20
- dna_cost = 1
+ dna_cost = 2
loudness = 1
req_human = 1
action_icon = 'icons/mob/actions/actions_changeling.dmi'
@@ -522,12 +522,12 @@
/obj/effect/proc_holder/changeling/suit/armor
name = "Chitinous Armor"
desc = "We turn our skin into tough chitin to protect us from damage."
- helptext = "Upkeep of the armor requires a low expenditure of chemicals. The armor is strong against brute force, but does not provide much protection from lasers. Cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat."
+ helptext = "Upkeep of the armor requires a constant expenditure of chemicals, resulting in a reduced chemical generation. The armor is strong against brute force, but does not provide much protection from lasers. Cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat."
chemical_cost = 20
dna_cost = 1
loudness = 2
req_human = 1
- recharge_slowdown = 0.25
+ recharge_slowdown = 0.5
action_icon = 'icons/mob/actions/actions_changeling.dmi'
action_icon_state = "ling_armor"
action_background_icon_state = "bg_ling"
@@ -543,7 +543,7 @@
icon_state = "lingarmor"
item_flags = DROPDEL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 90, "acid" = 90)
+ armor = list("melee" = 70, "bullet" = 60, "laser" = 30, "energy" = 40, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 50, "acid" = 90)
flags_inv = HIDEJUMPSUIT
cold_protection = 0
heat_protection = 0
@@ -559,7 +559,7 @@
desc = "A tough, hard covering of black chitin with transparent chitin in front."
icon_state = "lingarmorhelmet"
item_flags = DROPDEL
- armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 90, "acid" = 90)
+ armor = list("melee" = 70, "bullet" = 60, "laser" = 30, "energy" = 40, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 50, "acid" = 90)
flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE
/obj/item/clothing/head/helmet/changeling/Initialize()
diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm
index 3de220dbcb..cfea9fcf1e 100644
--- a/code/modules/antagonists/changeling/powers/shriek.dm
+++ b/code/modules/antagonists/changeling/powers/shriek.dm
@@ -3,7 +3,7 @@
desc = "Our lungs and vocal cords shift, allowing us to briefly emit a noise that deafens and confuses the weak-minded."
helptext = "Emits a high-frequency sound that confuses and deafens humans, blows out nearby lights and overloads cyborg sensors. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat."
chemical_cost = 20
- dna_cost = 1
+ dna_cost = 2
loudness = 1
req_human = 1
action_icon = 'icons/mob/actions/actions_changeling.dmi'
@@ -37,7 +37,7 @@
desc = "We shift our vocal cords to release a high-frequency sound that overloads nearby electronics."
helptext = "Emits a high-frequency sound that overloads nearby electronics. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat."
chemical_cost = 20
- dna_cost = 1
+ dna_cost = 2
loudness = 1
action_icon = 'icons/mob/actions/actions_changeling.dmi'
action_icon_state = "ling_dissonant"
diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm
index a98700683e..68451012f6 100644
--- a/code/modules/antagonists/changeling/powers/strained_muscles.dm
+++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm
@@ -5,7 +5,6 @@
name = "Strained Muscles"
desc = "We evolve the ability to reduce the acid buildup in our muscles, allowing us to move much faster."
helptext = "The strain will make us tired, and we will rapidly become fatigued. Standard weight restrictions, like hardsuits, still apply. Cannot be used in lesser form."
- chemical_cost = 15
dna_cost = 1
req_human = 1
var/stacks = 0 //Increments every 5 seconds; damage increases over time
@@ -15,16 +14,13 @@
action_background_icon_state = "bg_ling"
/obj/effect/proc_holder/changeling/strained_muscles/sting_action(mob/living/carbon/user)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
active = !active
if(active)
to_chat(user, "Our muscles tense and strengthen. ")
- changeling.chem_recharge_slowdown += 0.5
else
- user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES)
+ user.remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles)
to_chat(user, "Our muscles relax. ")
- changeling.chem_recharge_slowdown -= 0.5
- if(stacks >= 20)
+ if(stacks >= 10)
to_chat(user, "We collapse in exhaustion. ")
user.DefaultCombatKnockdown(60)
user.emote("gasp")
@@ -34,26 +30,24 @@
return TRUE
/obj/effect/proc_holder/changeling/strained_muscles/proc/muscle_loop(mob/living/carbon/user)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
while(active)
- user.add_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
+ user.add_movespeed_modifier(/datum/movespeed_modifier/strained_muscles)
if(user.stat != CONSCIOUS || user.staminaloss >= 90)
active = !active
to_chat(user, "Our muscles relax without the energy to strengthen them. ")
user.DefaultCombatKnockdown(40)
- user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES)
- changeling.chem_recharge_slowdown -= 0.5
+ user.remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles)
break
stacks++
//user.take_bodypart_damage(stacks * 0.03, 0)
- user.adjustStaminaLoss(stacks*1.3) //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack
+ user.adjustStaminaLoss(stacks*1.5) //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack
- if(stacks == 10) //Warning message that the stacks are getting too high
+ if(stacks == 5) //Warning message that the stacks are getting too high
to_chat(user, "Our legs are really starting to hurt... ")
sleep(40)
- while(!active && stacks) //Damage stacks decrease fairly rapidly while not in sanic mode
+ while(!active && stacks) //Damage stacks decrease slowly while not in sanic mode
stacks--
- sleep(20)
+ sleep(100)
diff --git a/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm b/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm
index 05f11294de..b0259c460e 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm
@@ -239,7 +239,7 @@
if(!do_after(user, repair_values["healing_for_cycle"] * fabricator.speed_multiplier, target = src, \
extra_checks = CALLBACK(fabricator, /obj/item/clockwork/replica_fabricator.proc/fabricator_repair_checks, repair_values, src, user, TRUE)))
break
- obj_integrity = CLAMP(obj_integrity + repair_values["healing_for_cycle"], 0, max_integrity)
+ obj_integrity = clamp(obj_integrity + repair_values["healing_for_cycle"], 0, max_integrity)
adjust_clockwork_power(-repair_values["power_required"])
playsound(src, 'sound/machines/click.ogg', 50, 1)
diff --git a/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm b/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm
index f927fc237d..628add0cb3 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm
@@ -10,7 +10,7 @@
if(GLOB.ratvar_awakens)
current_power = GLOB.clockwork_power = INFINITY
else
- current_power = GLOB.clockwork_power = CLAMP(GLOB.clockwork_power + amount, 0, MAX_CLOCKWORK_POWER)
+ current_power = GLOB.clockwork_power = clamp(GLOB.clockwork_power + amount, 0, MAX_CLOCKWORK_POWER)
for(var/obj/effect/clockwork/sigil/transmission/T in GLOB.all_clockwork_objects)
T.update_icon()
var/unlock_message
diff --git a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm
index c7c9c42ee9..de2e85a501 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm
@@ -211,7 +211,7 @@
var/mob/living/carbon/C = L
C.stuttering = max(8, C.stuttering)
C.drowsyness = max(8, C.drowsyness)
- C.confused += CLAMP(16 - C.confused, 0, 8)
+ C.confused += clamp(16 - C.confused, 0, 8)
C.apply_status_effect(STATUS_EFFECT_BELLIGERENT)
L.adjustFireLoss(15)
..()
diff --git a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm
index 4a10862e28..234f0445e0 100644
--- a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm
@@ -59,7 +59,7 @@
if(issilicon(L))
L.DefaultCombatKnockdown(100)
else if(iscultist(L))
- L.confused += CLAMP(10 - L.confused, 0, 5) // Spearthrow now confuses enemy cultists + just deals extra damage / sets on fire instead of hardstunning + damage
+ L.confused += clamp(10 - L.confused, 0, 5) // Spearthrow now confuses enemy cultists + just deals extra damage / sets on fire instead of hardstunning + damage
to_chat(L, "[src] crashes into you with burning force, sending you reeling! ")
L.adjust_fire_stacks(2)
L.DefaultCombatKnockdown(1)
diff --git a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm
index f83afebe24..6bec6e3bc7 100644
--- a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm
+++ b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm
@@ -31,6 +31,7 @@
laws = new /datum/ai_laws/ratvar()
braintype = picked_name
GLOB.all_clockwork_objects += src
+ brainmob.add_blocked_language(subtypesof(/datum/language) - /datum/language/ratvar, LANGUAGE_CLOCKIE)
/obj/item/mmi/posibrain/soul_vessel/Destroy()
GLOB.all_clockwork_objects -= src
diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
index 0fd6c8a8dc..ffe9ecfa80 100644
--- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
+++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
@@ -111,7 +111,7 @@
var/mob/living/L = M.current
if(ishuman(L) && L.stat != DEAD)
human_servants++
- construct_limit = round(CLAMP((human_servants / 4), 1, 3)) //1 per 4 human servants, maximum of 3
+ construct_limit = round(clamp((human_servants / 4), 1, 3)) //1 per 4 human servants, maximum of 3
//Summon Neovgre: Summon a very powerful combat mech that explodes when destroyed for massive damage.
/datum/clockwork_scripture/create_object/summon_arbiter
diff --git a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
index 9b4ac8085c..5fbaf9fd57 100644
--- a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
@@ -63,4 +63,4 @@
break
if(!M)
M = H.apply_status_effect(STATUS_EFFECT_MANIAMOTOR, src)
- M.severity = CLAMP(M.severity + ((11 - get_dist(src, H)) * efficiency * efficiency), 0, MAX_MANIA_SEVERITY)
+ M.severity = clamp(M.severity + ((11 - get_dist(src, H)) * efficiency * efficiency), 0, MAX_MANIA_SEVERITY)
diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm
index cbfd443744..a730b52cc1 100644
--- a/code/modules/antagonists/clockcult/clockcult.dm
+++ b/code/modules/antagonists/clockcult/clockcult.dm
@@ -91,7 +91,7 @@
current = mob_override
GLOB.all_clockwork_mobs += current
current.faction |= "ratvar"
- current.grant_language(/datum/language/ratvar)
+ current.grant_language(/datum/language/ratvar, TRUE, TRUE, LANGUAGE_CLOCKIE)
current.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them for whatever reason, we need to update buttons
if(issilicon(current))
var/mob/living/silicon/S = current
@@ -102,6 +102,7 @@
R.module.rebuild_modules()
else if(isAI(S))
var/mob/living/silicon/ai/A = S
+ A.add_blocked_language(subtypesof(/datum/language) - /datum/language/ratvar, LANGUAGE_CLOCKIE)
A.can_be_carded = FALSE
A.requires_power = POWER_REQ_CLOCKCULT
var/list/AI_frame = list(mutable_appearance('icons/mob/clockwork_mobs.dmi', "aiframe")) //make the AI's cool frame
@@ -142,7 +143,7 @@
current = mob_override
GLOB.all_clockwork_mobs -= current
current.faction -= "ratvar"
- current.remove_language(/datum/language/ratvar)
+ current.remove_language(/datum/language/ratvar, TRUE, TRUE, LANGUAGE_CLOCKIE)
current.clear_alert("clockinfo")
for(var/datum/action/innate/clockwork_armaments/C in owner.current.actions) //Removes any bound clockwork armor
qdel(C)
@@ -152,6 +153,7 @@
var/mob/living/silicon/S = current
if(isAI(S))
var/mob/living/silicon/ai/A = S
+ A.remove_blocked_language(subtypesof(/datum/language) - /datum/language/ratvar, LANGUAGE_CLOCKIE)
A.can_be_carded = initial(A.can_be_carded)
A.requires_power = initial(A.requires_power)
A.cut_overlays()
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index d64e99d206..28d1a66e00 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -454,16 +454,16 @@
S.emp_act(EMP_HEAVY)
else if(iscarbon(target))
var/mob/living/carbon/C = L
- C.silent += CLAMP(12 - C.silent, 0, 6)
- C.stuttering += CLAMP(30 - C.stuttering, 0, 15)
- C.cultslurring += CLAMP(30 - C.cultslurring, 0, 15)
+ C.silent += clamp(12 - C.silent, 0, 6)
+ C.stuttering += clamp(30 - C.stuttering, 0, 15)
+ C.cultslurring += clamp(30 - C.cultslurring, 0, 15)
C.Jitter(15)
else // cultstun no longer hardstuns + damages hostile cultists, instead debuffs them hard + deals some damage; debuffs for a bit longer since they don't add the clockie belligerent debuff
if(iscarbon(target))
var/mob/living/carbon/C = L
C.stuttering = max(10, C.stuttering)
C.drowsyness = max(10, C.drowsyness)
- C.confused += CLAMP(20 - C.confused, 0, 10)
+ C.confused += clamp(20 - C.confused, 0, 10)
L.adjustBruteLoss(15)
to_chat(user, "In an brilliant flash of red, [L] [iscultist(L) ? "writhes in pain" : "falls to the ground!"] ")
uses--
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index 023794182a..87e116166e 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -116,7 +116,7 @@
if(mob_override)
current = mob_override
current.faction |= "cult"
- current.grant_language(/datum/language/narsie)
+ current.grant_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST)
if(!cult_team?.cult_master)
vote.Grant(current)
communion.Grant(current)
@@ -134,7 +134,7 @@
if(mob_override)
current = mob_override
current.faction -= "cult"
- current.remove_language(/datum/language/narsie)
+ current.remove_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST)
vote.Remove(current)
communion.Remove(current)
magic.Remove(current)
@@ -441,7 +441,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- parts += "Objective #[count] : [objective.explanation_text] Success! "
+ parts += "Objective #[count] : [objective.explanation_text] Success! "
else if(completion <= 0)
parts += "Objective #[count] : [objective.explanation_text] Fail. "
else
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index b05aa7f769..ffab8174e5 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -539,7 +539,7 @@
if(SSshuttle.emergency.mode == SHUTTLE_CALL)
var/cursetime = 1800
var/timer = SSshuttle.emergency.timeLeft(1) + cursetime
- var/security_num = seclevel2num(get_security_level())
+ var/security_num = SECLEVEL2NUM(NUM2SECLEVEL(GLOB.security_level))
var/set_coefficient = 1
switch(security_num)
if(SEC_LEVEL_GREEN)
@@ -731,7 +731,7 @@
if(!L.anti_magic_check())
if(is_servant_of_ratvar(L))
to_chat(L, "\"Kneel for me, scum\" ")
- L.confused += CLAMP(10 - L.confused, 0, 5) //confuses and lightly knockdowns + damages hostile cultists instead of hardstunning like before
+ L.confused += clamp(10 - L.confused, 0, 5) //confuses and lightly knockdowns + damages hostile cultists instead of hardstunning like before
L.DefaultCombatKnockdown(15)
L.adjustBruteLoss(10)
else
diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm
index a7071276cc..e20203d9e6 100644
--- a/code/modules/antagonists/devil/devil.dm
+++ b/code/modules/antagonists/devil/devil.dm
@@ -527,7 +527,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
/datum/antagonist/devil/apply_innate_effects(mob/living/mob_override)
give_appropriate_spells()
- owner.current.grant_all_languages(TRUE)
+ owner.current.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_DEVIL)
update_hud()
.=..()
@@ -536,6 +536,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
var/obj/effect/proc_holder/spell/S = X
if(is_type_in_typecache(S, devil_spells))
owner.RemoveSpell(S)
+ owner.current.remove_all_languages(LANGUAGE_DEVIL)
.=..()
/datum/antagonist/devil/proc/printdevilinfo()
diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm
index 5725ac137b..1b245b5a01 100644
--- a/code/modules/antagonists/devil/true_devil/_true_devil.dm
+++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm
@@ -29,7 +29,7 @@
/mob/living/carbon/true_devil/Initialize()
create_bodyparts() //initialize bodyparts
create_internal_organs()
- grant_all_languages(omnitongue=TRUE)
+ grant_all_languages()
..()
/mob/living/carbon/true_devil/create_internal_organs()
diff --git a/code/modules/antagonists/disease/disease_datum.dm b/code/modules/antagonists/disease/disease_datum.dm
index c827179006..7de0330ad6 100644
--- a/code/modules/antagonists/disease/disease_datum.dm
+++ b/code/modules/antagonists/disease/disease_datum.dm
@@ -55,7 +55,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- result += "Objective #[count] : [objective.explanation_text] Success! "
+ result += "Objective #[count] : [objective.explanation_text] Success! "
else if(completion <= 0)
result += "Objective #[count] : [objective.explanation_text] Fail. "
win = FALSE
diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm
index a20a9cef85..e876beb5dc 100644
--- a/code/modules/antagonists/disease/disease_mob.dm
+++ b/code/modules/antagonists/disease/disease_mob.dm
@@ -128,6 +128,9 @@ the new instance inside the host to be updated to the template's stats.
link = FOLLOW_LINK(src, to_follow)
else
link = ""
+ // Create map text prior to modifying message for goonchat
+ if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker)))
+ create_chat_message(speaker, message_language, raw_message, spans, message_mode)
// Recompose the message, because it's scrambled by default
message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source)
to_chat(src, "[link] [message]")
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index ae8a23aaf5..49b475e98b 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -44,7 +44,7 @@
STOP_PROCESSING(SSobj, core)
update_icon()
GLOB.poi_list |= src
- previous_level = get_security_level()
+ previous_level = NUM2SECLEVEL(GLOB.security_level)
/obj/machinery/nuclearbomb/Destroy()
safety = FALSE
@@ -360,7 +360,7 @@
if(NUKEUI_AWAIT_TIMER)
var/number_value = text2num(numeric_input)
if(number_value)
- timer_set = CLAMP(number_value, minimum_timer_set, maximum_timer_set)
+ timer_set = clamp(number_value, minimum_timer_set, maximum_timer_set)
playsound(src, 'sound/machines/nuke/general_beep.ogg', 50, FALSE)
set_safety()
. = TRUE
@@ -421,7 +421,7 @@
return
timing = !timing
if(timing)
- previous_level = get_security_level()
+ previous_level = NUM2SECLEVEL(GLOB.security_level)
detonation_timer = world.time + (timer_set * 10)
for(var/obj/item/pinpointer/nuke/syndicate/S in GLOB.pinpointer_list)
S.switch_mode_to(TRACK_INFILTRATOR)
diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm
index 475438ba52..5d409a7fb9 100644
--- a/code/modules/antagonists/slaughter/slaughter.dm
+++ b/code/modules/antagonists/slaughter/slaughter.dm
@@ -64,8 +64,8 @@
/mob/living/simple_animal/slaughter/phasein()
. = ..()
- add_movespeed_modifier(MOVESPEED_ID_SLAUGHTER, update=TRUE, priority=100, multiplicative_slowdown=-1)
- addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, MOVESPEED_ID_SLAUGHTER, TRUE), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
+ add_movespeed_modifier(/datum/movespeed_modifier/slaughter)
+ addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
//The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl
diff --git a/code/modules/antagonists/slaughter/slaughterevent.dm b/code/modules/antagonists/slaughter/slaughterevent.dm
index 069795cfb8..1c6412dcad 100644
--- a/code/modules/antagonists/slaughter/slaughterevent.dm
+++ b/code/modules/antagonists/slaughter/slaughterevent.dm
@@ -27,6 +27,9 @@
for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list)
if(isturf(L.loc))
spawn_locs += L.loc
+ for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list)
+ if(isturf(L.loc))
+ spawn_locs += L.loc
if(!spawn_locs)
message_admins("No valid spawn locations found, aborting...")
diff --git a/code/modules/antagonists/traitor/classes/ai.dm b/code/modules/antagonists/traitor/classes/ai.dm
index eaa1137d51..f9682e5025 100644
--- a/code/modules/antagonists/traitor/classes/ai.dm
+++ b/code/modules/antagonists/traitor/classes/ai.dm
@@ -65,5 +65,5 @@
/datum/traitor_class/ai/finalize_traitor(datum/antagonist/traitor/T)
T.add_law_zero()
T.owner.current.playsound_local(get_turf(T.owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE)
- T.owner.current.grant_language(/datum/language/codespeak)
+ T.owner.current.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MALF)
return FALSE
diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm
index cf10f87bf8..1d30cdbf77 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -48,7 +48,7 @@
var/datum/traitor_class/class = GLOB.traitor_classes[C]
var/weight = LOGISTIC_FUNCTION(1.5*class.weight,chaos_weight,class.chaos,0)
weights[C] = weight * 1000
- var/choice = pickweightAllowZero(weights)
+ var/choice = pickweight(weights, 0)
if(!choice)
choice = TRAITOR_HUMAN // it's an "easter egg"
var/datum/traitor_class/actual_class = GLOB.traitor_classes[choice]
@@ -239,7 +239,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- objectives_text += "Objective #[count] : [objective.explanation_text] Success! "
+ objectives_text += "Objective #[count] : [objective.explanation_text] Success! "
else if(completion <= 0)
objectives_text += "Objective #[count] : [objective.explanation_text] Fail. "
traitorwin = FALSE
diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm
index 7c63266255..ff3d95598d 100644
--- a/code/modules/antagonists/wizard/equipment/artefact.dm
+++ b/code/modules/antagonists/wizard/equipment/artefact.dm
@@ -159,7 +159,7 @@
/obj/item/scrying/attack_self(mob/user)
to_chat(user, "You can see...everything! ")
visible_message("[user] stares into [src], their eyes glazing over. ")
- user.ghostize(1)
+ user.ghostize(1, voluntary = TRUE)
/////////////////////////////////////////Necromantic Stone///////////////////
diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm
index d7f1046cd7..46961c0caf 100644
--- a/code/modules/antagonists/wizard/equipment/soulstone.dm
+++ b/code/modules/antagonists/wizard/equipment/soulstone.dm
@@ -233,7 +233,7 @@
newstruct.cancel_camera()
-/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0)
+/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/user, vic = 0)
new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton
T.stop_sound_channel(CHANNEL_HEARTBEAT)
T.invisibility = INVISIBILITY_ABSTRACT
@@ -245,20 +245,23 @@
S.name = "Shade of [T.real_name]"
S.real_name = "Shade of [T.real_name]"
T.transfer_ckey(S)
- S.language_holder = U.language_holder.copy(S)
- if(U)
- S.faction |= "[REF(U)]" //Add the master as a faction, allowing inter-mob cooperation
- if(U && iscultist(U))
+ S.copy_languages(T, LANGUAGE_MIND)//Copies the old mobs languages into the new mob holder.
+ S.copy_languages(user, LANGUAGE_MASTER)
+ S.update_atom_languages()
+ grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue
+ if(user)
+ S.faction |= "[REF(user)]" //Add the master as a faction, allowing inter-mob cooperation
+ if(user && iscultist(user))
SSticker.mode.add_cultist(S.mind, 0)
S.cancel_camera()
name = "soulstone: Shade of [T.real_name]"
icon_state = "soulstone2"
- if(U && (iswizard(U) || usability))
- to_chat(S, "Your soul has been captured! You are now bound to [U.real_name]'s will. Help [U.p_them()] succeed in [U.p_their()] goals at all costs.")
- else if(U && iscultist(U))
+ if(user && (iswizard(user) || usability))
+ to_chat(S, "Your soul has been captured! You are now bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.")
+ else if(user && iscultist(user))
to_chat(S, "Your soul has been captured! You are now bound to the cult's will. Help them succeed in their goals at all costs.")
- if(vic && U)
- to_chat(U, "Capture successful! : [T.real_name]'s soul has been ripped from [T.p_their()] body and stored within the soul stone.")
+ if(vic && user)
+ to_chat(user, "Capture successful! : [T.real_name]'s soul has been ripped from [T.p_their()] body and stored within the soul stone.")
/obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U)
diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index 2bcda1d400..d49a8f83c6 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -294,7 +294,7 @@
name = "Staff of Change"
desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself."
item_path = /obj/item/gun/magic/staff/change
- dynamic_requirement = 60
+ dynamic_requirement = 200
/datum/spellbook_entry/item/staffanimation
name = "Staff of Animation"
@@ -361,7 +361,7 @@
desc = "A collection of wands that allow for a wide variety of utility. Wands have a limited number of charges, so be conservative in use. Comes in a handy belt."
item_path = /obj/item/storage/belt/wands/full
category = "Defensive"
- dynamic_requirement = 60
+ dynamic_requirement = 200
/datum/spellbook_entry/item/armor
name = "Mastercrafted Armor Set"
@@ -386,7 +386,7 @@
name = "Plasma Fist"
desc = "A forbidden martial art designed on the surging power of plasma. Use it to harness the ancient power."
item_path = /obj/item/book/granter/martial/plasma_fist
- cost = 3
+ cost = 2
/datum/spellbook_entry/item/guardian
name = "Guardian Deck"
diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm
index 2d32f8f00a..70adafd3fb 100644
--- a/code/modules/antagonists/wizard/wizard.dm
+++ b/code/modules/antagonists/wizard/wizard.dm
@@ -269,7 +269,7 @@
if(objective.completable)
var/completion = objective.check_completion()
if(completion >= 1)
- parts += "Objective #[count] : [objective.explanation_text] Success! "
+ parts += "Objective #[count] : [objective.explanation_text] Success! "
else if(completion <= 0)
parts += "Objective #[count] : [objective.explanation_text] Fail. "
wizardwin = FALSE
diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm
similarity index 99%
rename from modular_citadel/code/modules/arousal/arousal.dm
rename to code/modules/arousal/arousal.dm
index 843672877e..c9b2690784 100644
--- a/modular_citadel/code/modules/arousal/arousal.dm
+++ b/code/modules/arousal/arousal.dm
@@ -63,10 +63,12 @@
if(!target || !R)
return
var/turfing = isturf(target)
+ G.generate_fluid(R)
if(spill && R.total_volume >= 5)
R.reaction(turfing ? target : target.loc, TOUCH, 1, 0)
if(!turfing)
R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1))
+ G.time_since_last_orgasm = 0
R.clear_reagents()
/mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30) //This is used for forced orgasms and other hands-free climaxes
diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm
similarity index 95%
rename from modular_citadel/code/modules/arousal/genitals.dm
rename to code/modules/arousal/genitals.dm
index e0e1b37a3d..fb254a2dcc 100644
--- a/modular_citadel/code/modules/arousal/genitals.dm
+++ b/code/modules/arousal/genitals.dm
@@ -1,6 +1,7 @@
/obj/item/organ/genital
color = "#fcccb3"
w_class = WEIGHT_CLASS_SMALL
+ organ_flags = ORGAN_NO_DISMEMBERMENT
var/shape
var/sensitivity = 1 // wow if this were ever used that'd be cool but it's not but i'm keeping it for my unshit code
var/genital_flags //see citadel_defines.dm
@@ -15,6 +16,7 @@
var/fluid_efficiency = 1
var/fluid_rate = CUM_RATE
var/fluid_mult = 1
+ var/time_since_last_orgasm = 500
var/aroused_state = FALSE //Boolean used in icon_state strings
var/obj/item/organ/genital/linked_organ
var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link().
@@ -150,24 +152,18 @@
aroused_state = FALSE
/obj/item/organ/genital/on_life()
- if(!reagents || !owner)
+ . = ..()
+ if(!reagents || !.)
return
reagents.maximum_volume = fluid_max_volume
if(fluid_id && CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION))
- generate_fluid()
+ time_since_last_orgasm++
-/obj/item/organ/genital/proc/generate_fluid()
- var/amount = fluid_rate
- if(!reagents.total_volume && amount < 0.1) // Apparently, 0.015 gets rounded down to zero and no reagents are created if we don't start it with 0.1 in the tank.
- amount += 0.1
- var/multiplier = fluid_mult
- if(reagents.total_volume >= 5)
- multiplier *= 0.8
- if(reagents.total_volume < reagents.maximum_volume)
- reagents.isolate_reagent(fluid_id)//remove old reagents if it changed and just clean up generally
- reagents.add_reagent(fluid_id, (amount * multiplier))//generate the cum
- return TRUE
- return FALSE
+/obj/item/organ/genital/proc/generate_fluid(datum/reagents/R)
+ var/amount = clamp(fluid_rate * time_since_last_orgasm * fluid_mult,0,fluid_max_volume)
+ R.clear_reagents()
+ R.add_reagent(fluid_id,amount)
+ return TRUE
/obj/item/organ/genital/proc/update_link()
if(owner)
diff --git a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm b/code/modules/arousal/genitals_sprite_accessories.dm
similarity index 85%
rename from modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm
rename to code/modules/arousal/genitals_sprite_accessories.dm
index 1cea2dd916..1140a1d3ec 100644
--- a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm
+++ b/code/modules/arousal/genitals_sprite_accessories.dm
@@ -9,7 +9,7 @@
//DICKS,COCKS,PENISES,WHATEVER YOU WANT TO CALL THEM
/datum/sprite_accessory/penis
- icon = 'modular_citadel/icons/obj/genitals/penis_onmob.dmi'
+ icon = 'icons/obj/genitals/penis_onmob.dmi'
name = "penis" //the preview name of the accessory
color_src = "cock_color"
alt_aroused = TRUE
@@ -22,13 +22,13 @@
/datum/sprite_accessory/penis/knotted
icon_state = "knotted"
name = "Knotted"
- taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi'
+ taur_icon = 'icons/obj/genitals/taur_penis_onmob.dmi'
taur_dimension_x = 64
/datum/sprite_accessory/penis/flared
icon_state = "flared"
name = "Flared"
- taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi'
+ taur_icon = 'icons/obj/genitals/taur_penis_onmob.dmi'
taur_dimension_x = 64
/datum/sprite_accessory/penis/barbknot
@@ -38,7 +38,7 @@
/datum/sprite_accessory/penis/tapered
icon_state = "tapered"
name = "Tapered"
- taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi'
+ taur_icon = 'icons/obj/genitals/taur_penis_onmob.dmi'
taur_dimension_x = 64
/datum/sprite_accessory/penis/tentacle
@@ -55,7 +55,7 @@
//Testicles
/datum/sprite_accessory/testicles
- icon = 'modular_citadel/icons/obj/genitals/testicles_onmob.dmi'
+ icon = 'icons/obj/genitals/testicles_onmob.dmi'
icon_state = "testicle"
name = "testicle" //the preview name of the accessory
color_src = "balls_color"
@@ -66,7 +66,7 @@
//Vaginas
/datum/sprite_accessory/vagina
- icon = 'modular_citadel/icons/obj/genitals/vagina_onmob.dmi'
+ icon = 'icons/obj/genitals/vagina_onmob.dmi'
name = "vagina"
color_src = "vag_color"
alt_aroused = TRUE
@@ -104,7 +104,7 @@
//BREASTS BE HERE
/datum/sprite_accessory/breasts
- icon = 'modular_citadel/icons/obj/genitals/breasts_onmob.dmi'
+ icon = 'icons/obj/genitals/breasts_onmob.dmi'
name = "breasts"
color_src = "breasts_color"
diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/code/modules/arousal/organs/breasts.dm
similarity index 96%
rename from modular_citadel/code/modules/arousal/organs/breasts.dm
rename to code/modules/arousal/organs/breasts.dm
index c936eb9dc4..0989966638 100644
--- a/modular_citadel/code/modules/arousal/organs/breasts.dm
+++ b/code/modules/arousal/organs/breasts.dm
@@ -5,7 +5,7 @@
name = "breasts"
desc = "Female milk producing organs."
icon_state = "breasts"
- icon = 'modular_citadel/icons/obj/genitals/breasts.dmi'
+ icon = 'icons/obj/genitals/breasts.dmi'
zone = BODY_ZONE_CHEST
slot = ORGAN_SLOT_BREASTS
size = BREASTS_SIZE_DEF // "c". Refer to the breast_values static list below for the cups associated number values
@@ -54,7 +54,7 @@
desc += " They're leaking [lowertext(R.name)]."
var/datum/sprite_accessory/S = GLOB.breasts_shapes_list[shape]
var/icon_shape = S ? S.icon_state : "pair"
- var/icon_size = CLAMP(breast_values[size], BREASTS_ICON_MIN_SIZE, BREASTS_ICON_MAX_SIZE)
+ var/icon_size = clamp(breast_values[size], BREASTS_ICON_MIN_SIZE, BREASTS_ICON_MAX_SIZE)
icon_state = "breasts_[icon_shape]_[icon_size]"
if(owner)
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
@@ -73,7 +73,7 @@
//this is far too lewd wah
/obj/item/organ/genital/breasts/modify_size(modifier, min = -INFINITY, max = INFINITY)
- var/new_value = CLAMP(cached_size + modifier, min, max)
+ var/new_value = clamp(cached_size + modifier, min, max)
if(new_value == cached_size)
return
prev_size = cached_size
diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/code/modules/arousal/organs/penis.dm
similarity index 94%
rename from modular_citadel/code/modules/arousal/organs/penis.dm
rename to code/modules/arousal/organs/penis.dm
index c05549aaa0..7b20c0e7ce 100644
--- a/modular_citadel/code/modules/arousal/organs/penis.dm
+++ b/code/modules/arousal/organs/penis.dm
@@ -2,7 +2,7 @@
name = "penis"
desc = "A male reproductive organ."
icon_state = "penis"
- icon = 'modular_citadel/icons/obj/genitals/penis.dmi'
+ icon = 'icons/obj/genitals/penis.dmi'
zone = BODY_ZONE_PRECISE_GROIN
slot = ORGAN_SLOT_PENIS
masturbation_verb = "stroke"
@@ -21,11 +21,11 @@
var/diameter_ratio = COCK_DIAMETER_RATIO_DEF //0.25; check citadel_defines.dm
/obj/item/organ/genital/penis/modify_size(modifier, min = -INFINITY, max = INFINITY)
- var/new_value = CLAMP(length + modifier, min, max)
+ var/new_value = clamp(length + modifier, min, max)
if(new_value == length)
return
prev_length = length
- length = CLAMP(length + modifier, min, max)
+ length = clamp(length + modifier, min, max)
update()
..()
@@ -60,7 +60,7 @@
else if(!enlargement && status_effect)
owner.remove_status_effect(STATUS_EFFECT_PENIS_ENLARGEMENT)
if(linked_organ)
- linked_organ.size = CLAMP(size + new_size, BALLS_SIZE_MIN, BALLS_SIZE_MAX)
+ linked_organ.size = clamp(size + new_size, BALLS_SIZE_MIN, BALLS_SIZE_MAX)
linked_organ.update()
size = new_size
diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/code/modules/arousal/organs/testicles.dm
similarity index 91%
rename from modular_citadel/code/modules/arousal/organs/testicles.dm
rename to code/modules/arousal/organs/testicles.dm
index a8946294b1..bfb5c99a55 100644
--- a/modular_citadel/code/modules/arousal/organs/testicles.dm
+++ b/code/modules/arousal/organs/testicles.dm
@@ -2,7 +2,7 @@
name = "testicles"
desc = "A male reproductive organ."
icon_state = "testicles"
- icon = 'modular_citadel/icons/obj/genitals/testicles.dmi'
+ icon = 'icons/obj/genitals/testicles.dmi'
zone = BODY_ZONE_PRECISE_GROIN
slot = ORGAN_SLOT_TESTICLES
size = BALLS_SIZE_MIN
@@ -19,9 +19,8 @@
/obj/item/organ/genital/testicles/generate_fluid()
if(!linked_organ && !update_link())
return FALSE
- . = ..()
- if(. && reagents.holder_full())
- to_chat(owner, "Your balls finally feel full, again.")
+ return ..()
+ // in memoriam "Your balls finally feel full, again." ??-2020
/obj/item/organ/genital/testicles/upon_link()
size = linked_organ.size
@@ -65,4 +64,4 @@
fluid_rate = D.features["balls_cum_rate"]
fluid_mult = D.features["balls_cum_mult"]
fluid_efficiency = D.features["balls_efficiency"]
- toggle_visibility(D.features["balls_visibility"], FALSE)
\ No newline at end of file
+ toggle_visibility(D.features["balls_visibility"], FALSE)
diff --git a/modular_citadel/code/modules/arousal/organs/vagina.dm b/code/modules/arousal/organs/vagina.dm
similarity index 97%
rename from modular_citadel/code/modules/arousal/organs/vagina.dm
rename to code/modules/arousal/organs/vagina.dm
index cdc7dc4927..5c8bbeea98 100644
--- a/modular_citadel/code/modules/arousal/organs/vagina.dm
+++ b/code/modules/arousal/organs/vagina.dm
@@ -1,7 +1,7 @@
/obj/item/organ/genital/vagina
name = "vagina"
desc = "A female reproductive organ."
- icon = 'modular_citadel/icons/obj/genitals/vagina.dmi'
+ icon = 'icons/obj/genitals/vagina.dmi'
icon_state = ORGAN_SLOT_VAGINA
zone = BODY_ZONE_PRECISE_GROIN
slot = "vagina"
diff --git a/modular_citadel/code/modules/arousal/organs/womb.dm b/code/modules/arousal/organs/womb.dm
similarity index 84%
rename from modular_citadel/code/modules/arousal/organs/womb.dm
rename to code/modules/arousal/organs/womb.dm
index 7f91310e3e..386f407a26 100644
--- a/modular_citadel/code/modules/arousal/organs/womb.dm
+++ b/code/modules/arousal/organs/womb.dm
@@ -1,7 +1,7 @@
/obj/item/organ/genital/womb
name = "womb"
desc = "A female reproductive organ."
- icon = 'modular_citadel/icons/obj/genitals/vagina.dmi'
+ icon = 'icons/obj/genitals/vagina.dmi'
icon_state = "womb"
zone = BODY_ZONE_PRECISE_GROIN
slot = ORGAN_SLOT_WOMB
diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/code/modules/arousal/toys/dildos.dm
similarity index 98%
rename from modular_citadel/code/modules/arousal/toys/dildos.dm
rename to code/modules/arousal/toys/dildos.dm
index 58245c0c5f..5cb6d47118 100644
--- a/modular_citadel/code/modules/arousal/toys/dildos.dm
+++ b/code/modules/arousal/toys/dildos.dm
@@ -4,7 +4,7 @@
/obj/item/dildo
name = "dildo"
desc = "Floppy!"
- icon = 'modular_citadel/icons/obj/genitals/dildo.dmi'
+ icon = 'icons/obj/genitals/dildo.dmi'
force = 0
hitsound = 'sound/weapons/tap.ogg'
throwforce = 0
diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm
index 1c9c1a0203..32e262ce65 100644
--- a/code/modules/assembly/doorcontrol.dm
+++ b/code/modules/assembly/doorcontrol.dm
@@ -3,14 +3,35 @@
desc = "A small electronic device able to control a blast door remotely."
icon_state = "control"
attachable = TRUE
- var/id = null
- var/can_change_id = 0
+ /// Our ID. Make the first character ! if you want to obfuscate it as a mapper via randomization.
+ var/id
+ /// Can the ID be changed if used in hand?
+ var/can_change_id = FALSE
+ /// Show ID?
+ var/show_id = TRUE
var/cooldown = FALSE //Door cooldowns
+/obj/item/assembly/control/Initialize(mapload)
+ if(mapload && id)
+ if(copytext(id, 1, 2) == "!")
+ id = SSmapping.get_obfuscated_id(id)
+ return ..()
+
/obj/item/assembly/control/examine(mob/user)
. = ..()
- if(id)
+ if(id && show_id)
. += "Its channel ID is '[id]'. "
+ if(can_change_id)
+ . += "Use in hand to change ID. "
+
+/obj/item/assembly/control/attack_self(mob/living/user)
+ . = ..()
+ if(!can_change_id)
+ return
+ var/new_id
+ new_id = input(user, "Set ID", "Set ID", show_id? id : null) as text|null
+ if(!isnull(new_id)) //0/"" is considered !, so check null instead of just !.
+ id = new_id
/obj/item/assembly/control/activate()
cooldown = TRUE
@@ -22,7 +43,6 @@
INVOKE_ASYNC(M, openclose ? /obj/machinery/door/poddoor.proc/open : /obj/machinery/door/poddoor.proc/close)
addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10)
-
/obj/item/assembly/control/airlock
name = "airlock controller"
desc = "A small electronic device able to control an airlock remotely."
@@ -123,7 +143,6 @@
addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50)
-
/obj/item/assembly/control/crematorium
name = "crematorium controller"
desc = "An evil-looking remote controller for a crematorium."
@@ -135,3 +154,14 @@
C.cremate(usr)
addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50)
+
+/obj/item/assembly/control/electrochromatic
+ name = "electrochromatic window controller"
+ desc = "Toggles linked electrochromatic windows."
+ can_change_id = TRUE
+ /// Stores our status to prevent windows from desyncing.
+ var/on = FALSE
+
+/obj/item/assembly/control/electrochromatic/activate()
+ on = !on
+ do_electrochromatic_toggle(on, id)
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 0fbc5cf71c..8a0645f311 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -229,6 +229,7 @@
var/flashcd = 20
var/overheat = 0
var/obj/item/organ/cyberimp/arm/flash/I = null
+ var/active_light_strength = 7
/obj/item/assembly/flash/armimplant/burn_out()
if(I && I.owner)
@@ -248,6 +249,12 @@
update_icon(1)
return TRUE
+/obj/item/assembly/flash/armimplant/Moved(oldLoc, dir)
+ . = ..()
+ if(!ismob(loc))
+ set_light(0)
+ else
+ set_light(7)
/obj/item/assembly/flash/armimplant/proc/cooldown()
overheat = FALSE
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index d2cb35cd7c..23fb7ca9eb 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -161,12 +161,53 @@
return FALSE
if(signal.data["code"] != code)
return FALSE
+ if(suicider)
+ manual_suicide(suicider)
for(var/obj/effect/anomaly/A in get_turf(src))
A.anomalyNeutralize()
return TRUE
-/obj/item/assembly/signaler/anomaly/attack_self()
- return
+/obj/item/assembly/signaler/anomaly/manual_suicide(mob/living/carbon/user)
+ user.visible_message("[user]'s [src] is reacting to the radio signal, warping [user.p_their()] body! ")
+ user.suiciding = TRUE
+ user.suicide_log()
+ user.gib()
+
+/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, params)
+ if(I.tool_behaviour == TOOL_ANALYZER)
+ to_chat(user, "Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code]. ")
+ ..()
+
+//Anomaly cores
+/obj/item/assembly/signaler/anomaly/pyro
+ name = "\improper pyroclastic anomaly core"
+ desc = "The neutralized core of a pyroclastic anomaly. It feels warm to the touch. It'd probably be valuable for research."
+ icon_state = "pyro core"
+ anomaly_type = /obj/effect/anomaly/pyro
+
+/obj/item/assembly/signaler/anomaly/grav
+ name = "\improper gravitational anomaly core"
+ desc = "The neutralized core of a gravitational anomaly. It feels much heavier than it looks. It'd probably be valuable for research."
+ icon_state = "grav core"
+ anomaly_type = /obj/effect/anomaly/grav
+
+/obj/item/assembly/signaler/anomaly/flux
+ name = "\improper flux anomaly core"
+ desc = "The neutralized core of a flux anomaly. Touching it makes your skin tingle. It'd probably be valuable for research."
+ icon_state = "flux core"
+ anomaly_type = /obj/effect/anomaly/flux
+
+/obj/item/assembly/signaler/anomaly/bluespace
+ name = "\improper bluespace anomaly core"
+ desc = "The neutralized core of a bluespace anomaly. It keeps phasing in and out of view. It'd probably be valuable for research."
+ icon_state = "anomaly core"
+ anomaly_type = /obj/effect/anomaly/bluespace
+
+/obj/item/assembly/signaler/anomaly/vortex
+ name = "\improper vortex anomaly core"
+ desc = "The neutralized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it. It'd probably be valuable for research."
+ icon_state = "vortex core"
+ anomaly_type = /obj/effect/anomaly/bhole
/obj/item/assembly/signaler/cyborg
diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm
index c47c4a44af..06d73867f8 100644
--- a/code/modules/atmospherics/environmental/LINDA_fire.dm
+++ b/code/modules/atmospherics/environmental/LINDA_fire.dm
@@ -9,7 +9,7 @@
return
-/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh)
+/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh = FALSE, holo = FALSE)
var/datum/gas_mixture/air_contents = return_air()
if(!air_contents)
return 0
@@ -35,7 +35,7 @@
if(oxy < 0.5)
return 0
- active_hotspot = new /obj/effect/hotspot(src)
+ active_hotspot = new /obj/effect/hotspot(src, holo)
active_hotspot.temperature = exposed_temperature*50
active_hotspot.volume = exposed_volume*25
@@ -67,8 +67,10 @@
var/bypassing = FALSE
var/visual_update_tick = 0
-/obj/effect/hotspot/Initialize()
+/obj/effect/hotspot/Initialize(mapload, holo = FALSE)
. = ..()
+ if(holo)
+ flags_1 |= HOLOGRAM_1
SSair.hotspots += src
perform_exposure()
setDir(pick(GLOB.cardinals))
@@ -192,7 +194,8 @@
if(bypassing)
icon_state = "3"
- location.burn_tile()
+ if(!(flags_1 & HOLOGRAM_1))
+ location.burn_tile()
//Possible spread due to radiated heat
if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD)
@@ -200,7 +203,7 @@
for(var/t in location.atmos_adjacent_turfs)
var/turf/open/T = t
if(!T.active_hotspot)
- T.hotspot_expose(radiated_temperature, CELL_VOLUME/4)
+ T.hotspot_expose(radiated_temperature, CELL_VOLUME/4, flags_1 & HOLOGRAM_1)
else
if(volume > CELL_VOLUME*0.4)
@@ -224,7 +227,8 @@
var/turf/open/T = loc
if(istype(T) && T.active_hotspot == src)
T.active_hotspot = null
- DestroyTurf()
+ if(!(flags_1 & HOLOGRAM_1))
+ DestroyTurf()
return ..()
/obj/effect/hotspot/proc/DestroyTurf()
diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
index 632542f605..081f0b1d28 100644
--- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
+++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
@@ -89,7 +89,7 @@
temperature_archived = temperature
/turf/open/archive()
- ARCHIVE_TEMPERATURE(air)
+ ARCHIVE(air)
archived_cycle = SSair.times_fired
temperature_archived = temperature
@@ -215,7 +215,7 @@
if (planet_atmos) //share our air with the "atmosphere" "above" the turf
var/datum/gas_mixture/G = new
G.copy_from_turf(src)
- ARCHIVE_TEMPERATURE(G)
+ ARCHIVE(G)
if(our_air.compare(G))
if(!our_excited_group)
var/datum/excited_group/EG = new
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
index 5ff8586c34..93927f4420 100644
--- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
@@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(meta_gas_ids, meta_gas_id_list())
GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list())
/datum/gas_mixture
var/list/gases = list()
+ var/list/gas_archive = list()
var/temperature = 0 //kelvins
var/tmp/temperature_archived = 0
var/volume = CELL_VOLUME //liters
@@ -31,13 +32,25 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list())
//PV = nRT
-/datum/gas_mixture/proc/heat_capacity() //joules per kelvin
+/datum/gas_mixture/proc/heat_capacity()
+
+/datum/gas_mixture/proc/archived_heat_capacity()
+
+/datum/gas_mixture/heat_capacity() //joules per kelvin
var/list/cached_gases = gases
var/list/cached_gasheats = GLOB.meta_gas_specific_heats
. = 0
for(var/id in cached_gases)
. += cached_gases[id] * cached_gasheats[id]
+/datum/gas_mixture/archived_heat_capacity()
+ // lots of copypasta but heat_capacity is the single proc called the most in a regular round, bar none, so performance loss adds up
+ var/list/cached_gases = gas_archive
+ var/list/cached_gasheats = GLOB.meta_gas_specific_heats
+ . = 0
+ for(var/id in cached_gases)
+ . += cached_gases[id] * cached_gasheats[id]
+
/datum/gas_mixture/turf/heat_capacity() // Same as above except vacuums return HEAT_CAPACITY_VACUUM
var/list/cached_gases = gases
var/list/cached_gasheats = GLOB.meta_gas_specific_heats
@@ -46,6 +59,14 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list())
if(!.)
. += HEAT_CAPACITY_VACUUM //we want vacuums in turfs to have the same heat capacity as space
+/datum/gas_mixture/turf/archived_heat_capacity() // Same as above except vacuums return HEAT_CAPACITY_VACUUM
+ var/list/cached_gases = gas_archive
+ var/list/cached_gasheats = GLOB.meta_gas_specific_heats
+ for(var/id in cached_gases)
+ . += cached_gases[id] * cached_gasheats[id]
+ if(!.)
+ . += HEAT_CAPACITY_VACUUM //we want vacuums in turfs to have the same heat capacity as space
+
/datum/gas_mixture/proc/total_moles()
var/cached_gases = gases
TOTAL_MOLES(cached_gases, .)
@@ -67,6 +88,10 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list())
/datum/gas_mixture/proc/thermal_energy() //joules
return THERMAL_ENERGY(src) //see code/__DEFINES/atmospherics.dm; use the define in performance critical areas
+/datum/gas_mixture/proc/archive()
+ //Update archived versions of variables
+ //Returns: 1 in all cases
+
/datum/gas_mixture/proc/merge(datum/gas_mixture/giver)
//Merges all air from giver into self. Deletes giver.
//Returns: 1 if we are mutable, 0 otherwise
@@ -111,6 +136,10 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list())
//Performs various reactions such as combustion or fusion (LOL)
//Returns: 1 if any reaction took place; 0 otherwise
+/datum/gas_mixture/archive()
+ temperature_archived = temperature
+ gas_archive = gases.Copy()
+ return 1
/datum/gas_mixture/merge(datum/gas_mixture/giver)
if(!giver)
@@ -245,7 +274,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list())
//GAS TRANSFER
for(var/id in cached_gases | sharer_gases) // transfer gases
- delta = QUANTIZE(cached_gases[id] - sharer_gases[id])/(atmos_adjacent_turfs+1) //the amount of gas that gets moved between the mixtures
+ delta = QUANTIZE(gas_archive[id] - sharer.gas_archive[id])/(atmos_adjacent_turfs+1) //the amount of gas that gets moved between the mixtures
if(delta && abs_temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)
gas_heat_capacity = delta * cached_gasheats[id]
@@ -293,8 +322,8 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list())
sharer_temperature = sharer.temperature_archived
var/temperature_delta = temperature_archived - sharer_temperature
if(abs(temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)
- var/self_heat_capacity = heat_capacity()
- sharer_heat_capacity = sharer_heat_capacity || sharer.heat_capacity()
+ var/self_heat_capacity = archived_heat_capacity()
+ sharer_heat_capacity = sharer_heat_capacity || sharer.archived_heat_capacity()
if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY))
var/heat = conduction_coefficient*temperature_delta* \
diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm
index 5c34ece723..c7ffc51458 100644
--- a/code/modules/atmospherics/gasmixtures/gas_types.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_types.dm
@@ -192,6 +192,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
anchored = TRUE // should only appear in vis_contents, but to be safe
layer = FLY_LAYER
appearance_flags = TILE_BOUND
+ vis_flags = NONE
/obj/effect/overlay/gas/New(state, alph)
. = ..()
diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm
index ebe894138d..59ef15b4cf 100644
--- a/code/modules/atmospherics/gasmixtures/reactions.dm
+++ b/code/modules/atmospherics/gasmixtures/reactions.dm
@@ -282,7 +282,7 @@
var/new_heat_capacity = air.heat_capacity()
if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
- air.temperature = CLAMP(((air.temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB,INFINITY)
+ air.temperature = clamp(((air.temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB,INFINITY)
return REACTING
/datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst.
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index e25aa9b612..fd0700115b 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -786,9 +786,8 @@
return
user.visible_message("[user.name] wires the air alarm.", \
"You start wiring the air alarm... ")
- if (do_after(user, 20, target = src))
- if (cable.get_amount() >= 5 && buildstage == 1)
- cable.use(5)
+ if (W.use_tool(src, user, 20, 5))
+ if (buildstage == 1)
to_chat(user, "You wire the air alarm. ")
wires.repair()
aidisabled = 0
diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm
index 864edfdbe6..8f5ab7dd5e 100644
--- a/code/modules/atmospherics/machinery/atmosmachinery.dm
+++ b/code/modules/atmospherics/machinery/atmosmachinery.dm
@@ -64,6 +64,7 @@
nullifyNode(i)
SSair.atmos_machinery -= src
+ SSair.pipenets_needing_rebuilt -= src
dropContents()
if(pipe_vision_img)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
index 73cb8eeecb..c164dc5ae3 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm
@@ -116,7 +116,7 @@
if(node2)
node2.atmosinit()
node2.addMember(src)
- build_network()
+ SSair.add_to_rebuild_queue(src)
return TRUE
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
index 9238b8602b..2dc0afac26 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
@@ -159,13 +159,13 @@
pump_direction = 1
if("set_input_pressure" in signal.data)
- input_pressure_min = CLAMP(text2num(signal.data["set_input_pressure"]),0,ONE_ATMOSPHERE*50)
+ input_pressure_min = clamp(text2num(signal.data["set_input_pressure"]),0,ONE_ATMOSPHERE*50)
if("set_output_pressure" in signal.data)
- output_pressure_max = CLAMP(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50)
+ output_pressure_max = clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50)
if("set_external_pressure" in signal.data)
- external_pressure_bound = CLAMP(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50)
+ external_pressure_bound = clamp(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50)
if("status" in signal.data)
spawn(2)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm
index 19711c6e5f..2e2d68c35e 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm
@@ -137,7 +137,7 @@ Passive gate is similar to the regular pump except:
pressure = text2num(pressure)
. = TRUE
if(.)
- target_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE)
+ target_pressure = clamp(pressure, 0, MAX_OUTPUT_PRESSURE)
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
update_icon()
@@ -159,7 +159,7 @@ Passive gate is similar to the regular pump except:
on = !on
if("set_output_pressure" in signal.data)
- target_pressure = CLAMP(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50)
+ target_pressure = clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50)
if(on != old_on)
investigate_log("was turned [on ? "on" : "off"] by a remote signal", INVESTIGATE_ATMOS)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
index ec9b320d2c..ede416f67c 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm
@@ -145,7 +145,7 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- target_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE)
+ target_pressure = clamp(pressure, 0, MAX_OUTPUT_PRESSURE)
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
update_icon()
@@ -167,7 +167,7 @@
on = !on
if("set_output_pressure" in signal.data)
- target_pressure = CLAMP(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50)
+ target_pressure = clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50)
if(on != old_on)
investigate_log("was turned [on ? "on" : "off"] by a remote signal", INVESTIGATE_ATMOS)
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm
index bc58ef158f..7bdd22cbd1 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm
@@ -91,7 +91,7 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- open_pressure = CLAMP(pressure, close_pressure, 50*ONE_ATMOSPHERE)
+ open_pressure = clamp(pressure, close_pressure, 50*ONE_ATMOSPHERE)
investigate_log("open pressure was set to [open_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
if("close_pressure")
var/pressure = params["close_pressure"]
@@ -106,6 +106,6 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- close_pressure = CLAMP(pressure, 0, open_pressure)
+ close_pressure = clamp(pressure, 0, open_pressure)
investigate_log("close pressure was set to [close_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
update_icon()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
index d62d52ce43..926cacf8e2 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
@@ -135,7 +135,7 @@
rate = text2num(rate)
. = TRUE
if(.)
- transfer_rate = CLAMP(rate, 0, MAX_TRANSFER_RATE)
+ transfer_rate = clamp(rate, 0, MAX_TRANSFER_RATE)
investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS)
update_icon()
@@ -153,7 +153,7 @@
if("set_transfer_rate" in signal.data)
var/datum/gas_mixture/air1 = airs[1]
- transfer_rate = CLAMP(text2num(signal.data["set_transfer_rate"]),0,air1.volume)
+ transfer_rate = clamp(text2num(signal.data["set_transfer_rate"]),0,air1.volume)
if(on != old_on)
investigate_log("was turned [on ? "on" : "off"] by a remote signal", INVESTIGATE_ATMOS)
diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm
index 63a03b1d40..a45728d51f 100644
--- a/code/modules/atmospherics/machinery/components/components_base.dm
+++ b/code/modules/atmospherics/machinery/components/components_base.dm
@@ -144,7 +144,7 @@
var/datum/pipeline/parent = parents[i]
if(!parent)
stack_trace("Component is missing a pipenet! Rebuilding...")
- build_network()
+ SSair.add_to_rebuild_queue(src)
parent.update = 1
/obj/machinery/atmospherics/components/returnPipenets()
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
index 068930ab6a..a31e3e3c36 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
@@ -175,7 +175,7 @@
rate = text2num(rate)
. = TRUE
if(.)
- transfer_rate = CLAMP(rate, 0, MAX_TRANSFER_RATE)
+ transfer_rate = clamp(rate, 0, MAX_TRANSFER_RATE)
investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS)
if("filter")
filter_type = null
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
index a4519017a9..1eb1375724 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
@@ -164,7 +164,7 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- target_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE)
+ target_pressure = clamp(pressure, 0, MAX_OUTPUT_PRESSURE)
investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
if("node1")
var/value = text2num(params["concentration"])
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 2a516b5877..0670890c39 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -447,6 +447,6 @@
if(node)
node.atmosinit()
node.addMember(src)
- build_network()
+ SSair.add_to_rebuild_queue(src)
#undef CRYOMOBS
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
index e170109987..6a33bb5463 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
@@ -138,7 +138,7 @@
if("set_volume_rate" in signal.data)
var/number = text2num(signal.data["set_volume_rate"])
var/datum/gas_mixture/air_contents = airs[1]
- volume_rate = CLAMP(number, 0, air_contents.volume)
+ volume_rate = clamp(number, 0, air_contents.volume)
if("status" in signal.data)
spawn(2)
@@ -187,7 +187,7 @@
rate = text2num(rate)
. = TRUE
if(.)
- volume_rate = CLAMP(rate, 0, MAX_TRANSFER_RATE)
+ volume_rate = clamp(rate, 0, MAX_TRANSFER_RATE)
investigate_log("was set to [volume_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS)
update_icon()
broadcast_status()
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm
index 4b6a4a4c10..1d8b875528 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm
@@ -92,7 +92,7 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- open_pressure = CLAMP(pressure, close_pressure, 50*ONE_ATMOSPHERE)
+ open_pressure = clamp(pressure, close_pressure, 50*ONE_ATMOSPHERE)
investigate_log("open pressure was set to [open_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
if("close_pressure")
var/pressure = params["close_pressure"]
@@ -107,6 +107,6 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- close_pressure = CLAMP(pressure, 0, open_pressure)
+ close_pressure = clamp(pressure, 0, open_pressure)
investigate_log("close pressure was set to [close_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS)
update_icon()
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index db49efc781..f81e8efb78 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -116,7 +116,7 @@
if(node)
node.atmosinit()
node.addMember(src)
- build_network()
+ SSair.add_to_rebuild_queue(src)
return TRUE
/obj/machinery/atmospherics/components/unary/thermomachine/ui_status(mob/user)
@@ -170,7 +170,7 @@
target = text2num(target)
. = TRUE
if(.)
- target_temperature = CLAMP(target, min_temperature, max_temperature)
+ target_temperature = clamp(target, min_temperature, max_temperature)
investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS)
update_icon()
@@ -225,6 +225,7 @@
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return
target_temperature = min_temperature
+ to_chat(user,"You minimize the temperature on the [src]. ")
investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS)
message_admins("[src.name] was minimized by [ADMIN_LOOKUPFLW(usr)] at [ADMIN_COORDJMP(T)], [A]")
return TRUE
@@ -257,6 +258,7 @@
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return
target_temperature = max_temperature
+ to_chat(user,"You maximize the temperature on the [src]. ")
investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS)
message_admins("[src.name] was maximized by [ADMIN_LOOKUPFLW(usr)] at [ADMIN_COORDJMP(T)], [A]")
return TRUE
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index f2f2329661..9788bcb4ee 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -210,13 +210,13 @@
if("set_internal_pressure" in signal.data)
var/old_pressure = internal_pressure_bound
- internal_pressure_bound = CLAMP(text2num(signal.data["set_internal_pressure"]),0,ONE_ATMOSPHERE*50)
+ internal_pressure_bound = clamp(text2num(signal.data["set_internal_pressure"]),0,ONE_ATMOSPHERE*50)
if(old_pressure != internal_pressure_bound)
investigate_log(" internal pressure was set to [internal_pressure_bound] by [key_name(signal_sender)]",INVESTIGATE_ATMOS)
if("set_external_pressure" in signal.data)
var/old_pressure = external_pressure_bound
- external_pressure_bound = CLAMP(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50)
+ external_pressure_bound = clamp(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50)
if(old_pressure != external_pressure_bound)
investigate_log(" external pressure was set to [external_pressure_bound] by [key_name(signal_sender)]",INVESTIGATE_ATMOS)
@@ -227,10 +227,10 @@
internal_pressure_bound = 0
if("adjust_internal_pressure" in signal.data)
- internal_pressure_bound = CLAMP(internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]),0,ONE_ATMOSPHERE*50)
+ internal_pressure_bound = clamp(internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]),0,ONE_ATMOSPHERE*50)
if("adjust_external_pressure" in signal.data)
- external_pressure_bound = CLAMP(external_pressure_bound + text2num(signal.data["adjust_external_pressure"]),0,ONE_ATMOSPHERE*50)
+ external_pressure_bound = clamp(external_pressure_bound + text2num(signal.data["adjust_external_pressure"]),0,ONE_ATMOSPHERE*50)
if("init" in signal.data)
name = signal.data["init"]
diff --git a/code/modules/atmospherics/machinery/pipes/layermanifold.dm b/code/modules/atmospherics/machinery/pipes/layermanifold.dm
index b98098584f..bc8fd6777d 100644
--- a/code/modules/atmospherics/machinery/pipes/layermanifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/layermanifold.dm
@@ -31,7 +31,7 @@
nodes = list()
for(var/obj/machinery/atmospherics/A in needs_nullifying)
A.disconnect(src)
- A.build_network()
+ SSair.add_to_rebuild_queue(A)
/obj/machinery/atmospherics/pipe/layer_manifold/proc/get_all_connected_nodes()
return front_nodes + back_nodes + nodes
@@ -128,7 +128,7 @@
if(initialize_directions & dir)
return ..()
if((NORTH|EAST) & dir)
- user.ventcrawl_layer = CLAMP(user.ventcrawl_layer + 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
+ user.ventcrawl_layer = clamp(user.ventcrawl_layer + 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
if((SOUTH|WEST) & dir)
- user.ventcrawl_layer = CLAMP(user.ventcrawl_layer - 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
+ user.ventcrawl_layer = clamp(user.ventcrawl_layer - 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX)
to_chat(user, "You align yourself with the [user.ventcrawl_layer]\th output.")
diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm
index 77452fd6fd..aa8ee65bd8 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold.dm
@@ -28,6 +28,8 @@
/obj/machinery/atmospherics/pipe/manifold/update_icon()
cut_overlays()
+ if(!center)
+ center = mutable_appearance(icon, "manifold_center")
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
add_overlay(center)
diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
index 1bcca8d5ae..56c0408d18 100644
--- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm
+++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm
@@ -26,6 +26,8 @@
/obj/machinery/atmospherics/pipe/manifold4w/update_icon()
cut_overlays()
+ if(!center)
+ center = mutable_appearance(icon, "manifold_center")
PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer)
add_overlay(center)
diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm
index 1e513b846c..c466a422b2 100644
--- a/code/modules/atmospherics/machinery/pipes/pipes.dm
+++ b/code/modules/atmospherics/machinery/pipes/pipes.dm
@@ -22,7 +22,7 @@
var/obj/machinery/atmospherics/oldN = nodes[i]
..()
if(oldN)
- oldN.build_network()
+ SSair.add_to_rebuild_queue(oldN)
/obj/machinery/atmospherics/pipe/destroy_network()
QDEL_NULL(parent)
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index 8dcf7e7b16..2747932907 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -159,7 +159,6 @@
/obj/machinery/portable_atmospherics/canister/proto
name = "prototype canister"
-
/obj/machinery/portable_atmospherics/canister/proto/default
name = "prototype canister"
desc = "The best way to fix an atmospheric emergency... or the best way to introduce one."
@@ -172,7 +171,6 @@
can_min_release_pressure = (ONE_ATMOSPHERE / 30)
prototype = TRUE
-
/obj/machinery/portable_atmospherics/canister/proto/default/oxygen
name = "prototype canister"
desc = "A prototype canister for a prototype bike, what could go wrong?"
@@ -181,8 +179,6 @@
filled = 1
release_pressure = ONE_ATMOSPHERE*2
-
-
/obj/machinery/portable_atmospherics/canister/New(loc, datum/gas_mixture/existing_mixture)
..()
if(existing_mixture)
@@ -192,7 +188,7 @@
pump = new(src, FALSE)
pump.on = TRUE
pump.stat = 0
- pump.build_network()
+ SSair.add_to_rebuild_queue(pump)
update_icon()
@@ -208,6 +204,7 @@
air_contents.gases[gas_type] = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
if(starter_temp)
air_contents.temperature = starter_temp
+
/obj/machinery/portable_atmospherics/canister/air/create_gas()
air_contents.gases[/datum/gas/oxygen] = (O2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
air_contents.gases[/datum/gas/nitrogen] = (N2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature)
@@ -390,7 +387,7 @@
pressure = text2num(pressure)
. = TRUE
if(.)
- release_pressure = CLAMP(round(pressure), can_min_release_pressure, can_max_release_pressure)
+ release_pressure = clamp(round(pressure), can_min_release_pressure, can_max_release_pressure)
investigate_log("was set to [release_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS)
if("valve")
var/logmsg
@@ -434,7 +431,7 @@
var/N = text2num(user_input)
if(!N)
return
- timer_set = CLAMP(N,minimum_timer_set,maximum_timer_set)
+ timer_set = clamp(N,minimum_timer_set,maximum_timer_set)
log_admin("[key_name(usr)] has activated a prototype valve timer")
. = TRUE
if("toggle_timer")
diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm
index 9e2456cc2d..11dd4c5a60 100644
--- a/code/modules/atmospherics/machinery/portable/pump.dm
+++ b/code/modules/atmospherics/machinery/portable/pump.dm
@@ -22,7 +22,7 @@
pump = new(src, FALSE)
pump.on = TRUE
pump.stat = 0
- pump.build_network()
+ SSair.add_to_rebuild_queue(pump)
/obj/machinery/portable_atmospherics/pump/Destroy()
var/turf/T = get_turf(src)
diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm
index 0d96c125a1..f841ae20ca 100644
--- a/code/modules/awaymissions/capture_the_flag.dm
+++ b/code/modules/awaymissions/capture_the_flag.dm
@@ -487,8 +487,7 @@
suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf
toggle_helmet = FALSE // see the whites of their eyes
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
- id = /obj/item/card/id/syndicate
+ gloves = /obj/item/clothing/gloves/tackler/combat
belt = /obj/item/gun/ballistic/automatic/pistol/deagle/ctf
l_pocket = /obj/item/ammo_box/magazine/recharge/ctf
r_pocket = /obj/item/ammo_box/magazine/recharge/ctf
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 5dc11ed100..c11267a5f3 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -490,7 +490,7 @@
glasses = /obj/item/clothing/glasses/eyepatch
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
head = /obj/item/clothing/head/centhat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat
shoes = /obj/item/clothing/shoes/combat/swat
r_pocket = /obj/item/lighter
id = /obj/item/card/id
@@ -507,7 +507,7 @@
uniform = /obj/item/clothing/under/rank/security/officer
suit = /obj/item/clothing/suit/armor/vest
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat
mask = /obj/item/clothing/mask/gas/sechailer/swat
head = /obj/item/clothing/head/helmet/swat/nanotrasen
back = /obj/item/storage/backpack/security
diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm
index dae3650009..1e2e1fe43c 100644
--- a/code/modules/awaymissions/zlevel.dm
+++ b/code/modules/awaymissions/zlevel.dm
@@ -1,12 +1,19 @@
-// How much "space" we give the edge of the map
-GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt"))
-/proc/createRandomZlevel()
- if(GLOB.potentialRandomZlevels && GLOB.potentialRandomZlevels.len)
- to_chat(world, "Loading away mission... ")
- var/map = pick(GLOB.potentialRandomZlevels)
- load_new_z_level(map, "Away Mission")
- to_chat(world, "Away mission loaded. ")
+/proc/createRandomZlevel(name = AWAY_MISSION_NAME, list/traits = list(ZTRAIT_AWAY = TRUE), list/potential_levels = GLOB.potential_away_levels)
+ if(GLOB.random_zlevels_generated[name])
+ stack_trace("[name] level already generated.")
+ return
+ if(!length(potential_levels))
+ stack_trace("No potential [name] level to load has been found.")
+ return
+
+ var/start_time = REALTIMEOFDAY
+ var/map = pick(potential_levels)
+ if(!load_new_z_level(map, name, traits))
+ INIT_ANNOUNCE("Failed to load [name]! map filepath: [map]!")
+ return
+ INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!")
+ GLOB.random_zlevels_generated[name] = TRUE
/obj/effect/landmark/awaystart
name = "away mission spawn"
diff --git a/code/modules/buildmode/effects/line.dm b/code/modules/buildmode/effects/line.dm
index 60191de934..8bba27ac88 100644
--- a/code/modules/buildmode/effects/line.dm
+++ b/code/modules/buildmode/effects/line.dm
@@ -12,7 +12,7 @@
var/matrix/mat = matrix()
mat.Translate(0, 16)
mat.Scale(1, sqrt((x_offset * x_offset) + (y_offset * y_offset)) / 32)
- mat.Turn(90 - ATAN2(x_offset, y_offset)) // So... You pass coords in order x,y to this version of atan2. It should be called acsc2.
+ mat.Turn(90 - arctan(x_offset, y_offset)) // So... You pass coords in order x,y to this version of atan2. It should be called acsc2.
mat.Translate(atom_a.pixel_x, atom_a.pixel_y)
transform = mat
diff --git a/code/modules/buildmode/submodes/copy.dm b/code/modules/buildmode/submodes/copy.dm
index ba415c50fc..4aed8ac700 100644
--- a/code/modules/buildmode/submodes/copy.dm
+++ b/code/modules/buildmode/submodes/copy.dm
@@ -23,6 +23,6 @@
DuplicateObject(stored, perfectcopy=1, sameloc=0,newloc=T)
log_admin("Build Mode: [key_name(c)] copied [stored] to [AREACOORD(object)]")
else if(right_click)
- if(ismovableatom(object)) // No copying turfs for now.
+ if(ismovable(object)) // No copying turfs for now.
to_chat(c, "[object] set as template. ")
stored = object
diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm
index 4db7c68efd..8dba7f69da 100644
--- a/code/modules/cargo/exports/gear.dm
+++ b/code/modules/cargo/exports/gear.dm
@@ -309,7 +309,7 @@
/datum/export/gear/combatgloves
cost = 80
unit_name = "combat gloves"
- export_types = list(/obj/item/clothing/gloves/combat, /obj/item/clothing/gloves/fingerless/pugilist/rapid, /obj/item/clothing/gloves/krav_maga)
+ export_types = list(/obj/item/clothing/gloves/tackler/combat, /obj/item/clothing/gloves/tackler/dolphin, /obj/item/clothing/gloves/fingerless/pugilist/rapid, /obj/item/clothing/gloves/krav_maga)
include_subtypes = TRUE
/datum/export/gear/bonegloves
@@ -797,4 +797,4 @@ datum/export/gear/glasses //glasses are not worth selling
export_types = list(/obj/item/clothing/head/chameleon, /obj/item/clothing/mask/chameleon, /obj/item/clothing/under/chameleon, /obj/item/clothing/suit/chameleon, /obj/item/clothing/glasses/chameleon,\
/obj/item/clothing/gloves/chameleon, /obj/item/clothing/head/chameleon, /obj/item/clothing/shoes/chameleon, /obj/item/storage/backpack/chameleon, \
/obj/item/storage/belt/chameleon, /obj/item/radio/headset/chameleon, /obj/item/pda/chameleon, /obj/item/stamp/chameleon, /obj/item/clothing/neck/cloak/chameleon)
- include_subtypes = TRUE
\ No newline at end of file
+ include_subtypes = TRUE
diff --git a/code/modules/cargo/exports/manifest.dm b/code/modules/cargo/exports/manifest.dm
index 60515781f9..d59ef1093f 100644
--- a/code/modules/cargo/exports/manifest.dm
+++ b/code/modules/cargo/exports/manifest.dm
@@ -76,19 +76,3 @@
/datum/export/manifest_correct_denied/get_cost(obj/O)
var/obj/item/paper/fluff/jobs/cargo/manifest/M = O
return ..() - M.order_cost
-
-// Paper work done correctly
-
-/datum/export/paperwork_correct
- cost = 120 // finicky number 20 x 120 = 2400 per crate
- k_elasticity = 0
- unit_name = "correct paperwork"
- export_types = list(/obj/item/folder/paperwork_correct)
-
-// Paper work not done retruned
-
-/datum/export/paperwork_incorrect
- cost = -500 // Failed to meet NT standers
- k_elasticity = 0
- unit_name = "returned incorrect paperwork"
- export_types = list(/obj/item/folder/paperwork)
diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm
index b78f218348..13e223bca3 100644
--- a/code/modules/cargo/order.dm
+++ b/code/modules/cargo/order.dm
@@ -66,12 +66,9 @@
P.info += "Item: [pack.name] "
P.info += "Contents: "
P.info += ""
- for(var/atom/movable/AM in C.contents - P)
- if((P.errors & MANIFEST_ERROR_CONTENTS))
- if(prob(50))
- P.info += "[AM.name] "
- else
- continue
+ for(var/atom/movable/AM in C.contents - P - C.lockerelectronics)
+ if((P.errors & MANIFEST_ERROR_CONTENTS) && prob(50))
+ continue
P.info += "[AM.name] "
P.info += " "
P.info += "Stamp below to confirm receipt of goods: "
diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm
index d832200201..501b1426ae 100644
--- a/code/modules/cargo/packs/armory.dm
+++ b/code/modules/cargo/packs/armory.dm
@@ -175,7 +175,7 @@
/obj/item/clothing/suit/armor/vest/russian,
/obj/item/clothing/head/helmet/rus_helmet,
/obj/item/clothing/shoes/russian,
- /obj/item/clothing/gloves/combat,
+ /obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/under/syndicate/rus_army,
/obj/item/clothing/under/costume/soviet,
/obj/item/clothing/mask/russian_balaclava,
@@ -201,8 +201,8 @@
/obj/item/clothing/mask/gas/sechailer/swat,
/obj/item/storage/belt/military/assault,
/obj/item/storage/belt/military/assault,
- /obj/item/clothing/gloves/combat,
- /obj/item/clothing/gloves/combat)
+ /obj/item/clothing/gloves/tackler/combat/insulated,
+ /obj/item/clothing/gloves/tackler/combat/insulated)
crate_name = "swat crate"
/datum/supply_pack/security/armory/wt550
diff --git a/code/modules/cargo/packs/engine.dm b/code/modules/cargo/packs/engine.dm
index 27891f3ab6..89775c07ee 100644
--- a/code/modules/cargo/packs/engine.dm
+++ b/code/modules/cargo/packs/engine.dm
@@ -148,15 +148,7 @@
crate_name = "supermatter shard crate"
crate_type = /obj/structure/closet/crate/secure/engineering
dangerous = TRUE
-
-/datum/supply_pack/engine/supermatter_spray
- name = "Supermatter Spray Crate"
- desc = "The single thing that can truly heal the supermatter."
- cost = 2000
- contains = list(/obj/item/supermatterspray)
- crate_name = "supermatter shard crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
+
/datum/supply_pack/engine/tesla_coils
name = "Tesla Coil Crate"
desc = "Whether it's high-voltage executions, creating research points, or just plain old power generation: This pack of four Tesla coils can do it all!"
diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm
index 6c1742896f..1ce3a6b084 100644
--- a/code/modules/cargo/packs/materials.dm
+++ b/code/modules/cargo/packs/materials.dm
@@ -129,14 +129,6 @@
/obj/item/rcd_ammo)
crate_name = "rcd ammo"
-/datum/supply_pack/materials/loom
- name = "Loom"
- desc = "A large pre-made loom."
- cost = 1000
- contains = list(/obj/structure/loom/unanchored)
- crate_name = "loom crate"
- crate_type = /obj/structure/closet/crate/large
-
//////////////////////////////////////////////////////////////////////////////
///////////////////////////// Canisters //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm
index dfaa6f0027..5265b2c2f6 100644
--- a/code/modules/cargo/packs/misc.dm
+++ b/code/modules/cargo/packs/misc.dm
@@ -87,37 +87,12 @@
crate_type = /obj/structure/closet/crate/wooden
crate_name = "calligraphy crate"
-/datum/supply_pack/misc/paper_work
- name = "Freelance Paper work"
- desc = "The Nanotrasen Primary Bureaucratic Database Intelligence (PDBI) reports that the station has not completed its funding and grant paperwork this solar cycle. In order to gain further funding, your station is required to fill out (10) ten of these forms or no additional capital will be disbursed. We have sent you ten copies of the following form and we expect every one to be up to Nanotrasen Standards." // Disbursement. It's not a typo, look it up.
- cost = 700 // Net of 0 credits but makes (120 x 10 = 1200)
- contains = list(/obj/item/folder/paperwork,
- /obj/item/pen/fountain
- )
- crate_name = "Paperwork"
-
-/datum/supply_pack/misc/paper_work/generate()
- . = ..()
- for(var/i in 1 to 9)
- new /obj/item/folder/paperwork(.)
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////// Entertainment ///////////////////////////////
//////////////////////////////////////////////////////////////////////////////
-/datum/supply_pack/misc/randombedsheets
- name = "Bedsheet Crate (R)"
- desc = "Snuggle up in some sweet sheets with this assorted bedsheet crate. Each set comes with eight random bedsheets for your slumbering pleasure!"
- cost = 2000
- contains = list(/obj/item/bedsheet/random)
- crate_name = "random bedsheet crate"
-
-/datum/supply_pack/misc/randombedsheets/generate()
- . = ..()
- for(var/i in 1 to 7)
- new /obj/item/bedsheet/random(.)
-
/datum/supply_pack/misc/coloredsheets
- name = "Bedsheet Crate (C)"
+ name = "Bedsheet Crate"
desc = "Give your night life a splash of color with this crate filled with bedsheets! Contains a total of nine different-colored sheets."
cost = 1250
contains = list(/obj/item/bedsheet/blue,
diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm
index 97b7636f58..22cb518926 100644
--- a/code/modules/cargo/packs/organic.dm
+++ b/code/modules/cargo/packs/organic.dm
@@ -205,7 +205,7 @@
desc = "Need some meat? With this do-it-yourself kit you'll be swimming in it! Contains a monkey cube, an IV drip, and some cryoxadone!"
cost = 2150
contraband = TRUE
- contains = list(/obj/item/reagent_containers/food/snacks/monkeycube,
+ contains = list(/obj/item/reagent_containers/food/snacks/cube/monkey,
/obj/item/restraints/handcuffs/cable,
/obj/machinery/iv_drip,
/obj/item/reagent_containers/glass/beaker/cryoxadone,
diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm
index a3548a5eb6..51bb2b728f 100644
--- a/code/modules/cargo/packs/science.dm
+++ b/code/modules/cargo/packs/science.dm
@@ -10,24 +10,13 @@
group = "Science"
crate_type = /obj/structure/closet/crate/science
-/* For later
-/datum/supply_pack/science/monkey
+/datum/supply_pack/science/ape //Ape out!
name = "Ape Cube Crate"
desc = "Pss what a new test subject with supper strangth, speed, and love for bananas all at the same time? Say no more... Contains a single ape cube. Dont add water!"
contraband = TRUE
cost = 2500
- contains = list (/obj/item/reagent_containers/food/snacks/monkeycube/ape)
+ contains = list (/obj/item/reagent_containers/food/snacks/cube/ape)
crate_name = "ape cube crate"
-*/
-
-/datum/supply_pack/science/aliens
- name = "Advanced Alien Alloy Crate Crate"
- desc = "Hello brothers from the stars!!! Our fellow brethren have made contact at long last and gave us gifts man! They really did build the prymi- Connection Error- Bro we’ll send you a sheet of advanced alien alloy."
- cost = 15000
- DropPodOnly = TRUE
- contraband = TRUE
- contains = list(/obj/item/stack/sheet/mineral/abductor)
- crate_name = "alien bro alloy crate"
/datum/supply_pack/science/beakers
name = "Chemistry Beakers Crate"
diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm
index aea7b95742..ee750b8df7 100644
--- a/code/modules/cargo/packs/security.dm
+++ b/code/modules/cargo/packs/security.dm
@@ -91,8 +91,8 @@
/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/head/helmet/alt,
/obj/item/clothing/head/helmet/alt,
- /obj/item/clothing/gloves/combat,
- /obj/item/clothing/gloves/combat,
+ /obj/item/clothing/gloves/tackler/combat/insulated,
+ /obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas)
crate_name = "surplus russian clothing"
@@ -109,7 +109,7 @@
/obj/item/clothing/head/ushanka,
/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/head/helmet/alt,
- /obj/item/clothing/gloves/combat,
+ /obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/mask/gas,
/obj/item/gun/ballistic/shotgun/boltaction,
/obj/item/ammo_box/a762)
diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm
index 1deb702de4..f865cfddbb 100644
--- a/code/modules/client/client_defines.dm
+++ b/code/modules/client/client_defines.dm
@@ -84,3 +84,6 @@
var/next_keysend_reset = 0
var/next_keysend_trip_reset = 0
var/keysend_tripped = FALSE
+
+ /// Messages currently seen by this client
+ var/list/seen_messages
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 0e5e80eaf3..a0c0832c2e 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -48,6 +48,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/UI_style = null
var/buttons_locked = FALSE
var/hotkeys = FALSE
+ var/chat_on_map = TRUE
+ var/max_chat_length = CHAT_MESSAGE_MAX_LENGTH
+ var/see_chat_non_mob = TRUE
var/tgui_fancy = TRUE
var/tgui_lock = TRUE
var/windowflashing = TRUE
@@ -91,8 +94,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/skin_tone = "caucasian1" //Skin color
var/use_custom_skin_tone = FALSE
var/eye_color = "000" //Eye color
- var/horn_color = "85615a" //Horn color
- var/wing_color = "fff" //Wing color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFF",
"mcolor2" = "FFF",
@@ -101,8 +102,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"tail_human" = "None",
"snout" = "Round",
"horns" = "None",
+ "horns_color" = "85615a",
"ears" = "None",
"wings" = "None",
+ "wings_color" = "FFF",
"frills" = "None",
"deco_wings" = "None",
"spines" = "None",
@@ -150,6 +153,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"ipc_screen" = "Sunburst",
"ipc_antenna" = "None",
"flavor_text" = "",
+ "ooc_notes" = "",
"meat_type" = "Mammalian",
"body_model" = MALE,
"body_size" = RESIZE_DEFAULT_SIZE
@@ -208,6 +212,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/show_mismatched_markings = FALSE //determines whether or not the markings lists should show markings that don't match the currently selected species. Intentionally left unsaved.
+ var/no_tetris_storage = FALSE
+
/datum/preferences/New(client/C)
parent = C
@@ -343,6 +349,16 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "[features["flavor_text"]]"
else
dat += "[TextPreview(features["flavor_text"])]... "
+ dat += "OOC notes "
+ dat += "Set OOC notes "
+ var/ooc_notes_len = length(features["ooc_notes"])
+ if(ooc_notes_len <= 40)
+ if(!ooc_notes_len)
+ dat += "\[...\]"
+ else
+ dat += "[features["ooc_notes"]]"
+ else
+ dat += "[TextPreview(features["ooc_notes"])]... "
dat += "Body "
dat += "Gender: [gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))] "
if(gender != NEUTER && pref_species.sexes)
@@ -491,7 +507,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Horns "
dat += "[features["horns"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
@@ -604,7 +620,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Decorative wings "
dat += "[features["deco_wings"]] "
- dat += " Change "
+ dat += " Change "
if(pref_species.mutant_bodyparts["insect_wings"])
if(!mutant_category)
@@ -613,7 +629,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Insect wings "
dat += "[features["insect_wings"]] "
- dat += " Change "
+ dat += " Change "
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
dat += ""
@@ -822,6 +838,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "UI Style: [UI_style] "
dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"] "
dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"] "
+ dat += "Show Runechat Chat Bubbles: [chat_on_map ? "Enabled" : "Disabled"] "
+ dat += "Runechat message char limit: [max_chat_length] "
+ dat += "See Runechat for non-mobs: [see_chat_non_mob ? "Enabled" : "Disabled"] "
dat += " "
dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"] "
dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"] "
@@ -863,6 +882,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Widescreen: [widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"] "
dat += "Auto stand: [autostand ? "Enabled" : "Disabled"] "
dat += "Auto OOC: [auto_ooc ? "Enabled" : "Disabled"] "
+ dat += "Force Slot Storage HUD: [no_tetris_storage ? "Enabled" : "Disabled"] "
dat += "Screen Shake: [(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")] "
if (user && user.client && !user.client.prefs.screenshake==0)
dat += "Damage Screen Shake: [(damagescreenshake==1) ? "On" : ((damagescreenshake==0) ? "Off" : "Only when down")] "
@@ -1501,6 +1521,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(!isnull(msg))
features["flavor_text"] = html_decode(msg)
+ if("ooc_notes")
+ var/msg = stripped_multiline_input(usr, "Set always-visible OOC notes related to content preferences. THIS IS NOT FOR CHARACTE DESCRIPTIONS!!", "OOC notes", features["ooc_notes"], MAX_FLAVOR_LEN, TRUE)
+ if(!isnull(msg))
+ features["ooc_notes"] = html_decode(msg)
+
if("hair")
var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null
if(new_hair)
@@ -1761,12 +1786,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["horns"] = new_horns
if("horns_color")
- var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+horn_color) as color|null
+ var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+features["horns_color"]) as color|null
if(new_horn_color)
if (new_horn_color == "#000000")
- horn_color = "#85615A"
+ features["horns_color"] = "85615A"
else
- horn_color = sanitize_hexcolor(new_horn_color)
+ features["horns_color"] = sanitize_hexcolor(new_horn_color)
if("wings")
var/new_wings
@@ -1775,12 +1800,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["wings"] = new_wings
if("wings_color")
- var/new_wing_color = input(user, "Choose your character's wing colour:", "Character Preference","#"+wing_color) as color|null
+ var/new_wing_color = input(user, "Choose your character's wing colour:", "Character Preference","#"+features["wings_color"]) as color|null
if(new_wing_color)
if (new_wing_color == "#000000")
- wing_color = "#FFFFFF"
+ features["wings_color"] = "#FFFFFF"
else
- wing_color = sanitize_hexcolor(new_wing_color)
+ features["wings_color"] = sanitize_hexcolor(new_wing_color)
if("frills")
var/new_frills
@@ -1834,7 +1859,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("s_tone")
var/list/choices = GLOB.skin_tones - GLOB.nonstandard_skin_tones
- if(CONFIG_GET(number/allow_custom_skintones))
+ if(CONFIG_GET(flag/allow_custom_skintones))
choices += "custom"
var/new_s_tone = input(user, "Choose your character's skin tone:", "Character Preference") as null|anything in choices
if(new_s_tone)
@@ -1963,7 +1988,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/max_D = CONFIG_GET(number/penis_max_inches_prefs)
var/new_length = input(user, "Penis length in inches:\n([min_D]-[max_D])", "Character Preference") as num|null
if(new_length)
- features["cock_length"] = CLAMP(round(new_length), min_D, max_D)
+ features["cock_length"] = clamp(round(new_length), min_D, max_D)
if("cock_shape")
var/new_shape
@@ -2131,6 +2156,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/pickedPDASkin = input(user, "Choose your PDA reskin.", "Character Preference", pda_skin) as null|anything in GLOB.pda_reskins
if(pickedPDASkin)
pda_skin = pickedPDASkin
+ if ("max_chat_length")
+ var/desiredlength = input(user, "Choose the max character length of shown Runechat messages. Valid range is 1 to [CHAT_MESSAGE_MAX_LENGTH] (default: [initial(max_chat_length)]))", "Character Preference", max_chat_length) as null|num
+ if (!isnull(desiredlength))
+ max_chat_length = clamp(desiredlength, 1, CHAT_MESSAGE_MAX_LENGTH)
if("hud_toggle_color")
var/new_toggle_color = input(user, "Choose your HUD toggle flash color:", "Game Preference",hud_toggle_color) as color|null
@@ -2160,7 +2189,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/danger = CONFIG_GET(number/threshold_body_size_slowdown)
var/new_body_size = input(user, "Choose your desired sprite size:\n([min*100]%-[max*100]%), Warning: May make your character look distorted[danger > min ? ", and an exponential slowdown will occur for those smaller than [danger*100]%!" : "!"]", "Character Preference", features["body_size"]*100) as num|null
if (new_body_size)
- new_body_size = CLAMP(new_body_size * 0.01, min, max)
+ new_body_size = clamp(new_body_size * 0.01, min, max)
var/dorfy
if(danger > new_body_size)
dorfy = alert(user, "The chosen size appears to be smaller than the threshold of [danger*100]%, which will lead to an added exponential slowdown. Are you sure about that?", "Dwarfism Alert", "Yes", "Move it to the threshold", "No")
@@ -2201,6 +2230,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
autostand = !autostand
if("auto_ooc")
auto_ooc = !auto_ooc
+ if("no_tetris_storage")
+ no_tetris_storage = !no_tetris_storage
if ("screenshake")
var/desiredshake = input(user, "Set the amount of screenshake you want. \n(0 = disabled, 100 = full, 200 = maximum.)", "Character Preference", screenshake) as null|num
if (!isnull(desiredshake))
@@ -2231,6 +2262,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=default")
else
winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=old_default")
+ if("chat_on_map")
+ chat_on_map = !chat_on_map
+ if("see_chat_non_mob")
+ see_chat_non_mob = !see_chat_non_mob
if("action_buttons")
buttons_locked = !buttons_locked
if("tgui_fancy")
@@ -2440,9 +2475,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
organ_eyes.old_eye_color = eye_color
character.hair_color = hair_color
character.facial_hair_color = facial_hair_color
- character.horn_color = horn_color
- character.wing_color = wing_color
-
character.skin_tone = skin_tone
character.dna.skin_tone_override = use_custom_skin_tone ? skin_tone : null
character.hair_style = hair_style
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index a64d3e057d..3fa36cc254 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 29
+#define SAVEFILE_VERSION_MAX 31
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -162,7 +162,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(malformed_hockeys[hockey])
features["cock_shape"] = malformed_hockeys[hockey]
features["cock_taur"] = TRUE
-
+
if(current_version < 29)
var/digestable
var/devourable
@@ -181,6 +181,19 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(lickable)
ENABLE_BITFIELD(vore_flags,LICKABLE)
+ if(current_version < 30)
+ switch(features["taur"])
+ if("Husky", "Lab", "Shepherd", "Fox", "Wolf")
+ features["taur"] = "Canine"
+ if("Panther", "Tiger")
+ features["taur"] = "Feline"
+ if("Cow")
+ features["taur"] = "Cow (Spotted)"
+
+ if(current_version < 31)
+ S["wing_color"] >> features["wings_color"]
+ S["horn_color"] >> features["horns_color"]
+
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
return
@@ -211,6 +224,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["lastchangelog"] >> lastchangelog
S["UI_style"] >> UI_style
S["hotkeys"] >> hotkeys
+ S["chat_on_map"] >> chat_on_map
+ S["max_chat_length"] >> max_chat_length
+ S["see_chat_non_mob"] >> see_chat_non_mob
S["tgui_fancy"] >> tgui_fancy
S["tgui_lock"] >> tgui_lock
S["buttons_locked"] >> buttons_locked
@@ -253,7 +269,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["autostand"] >> autostand
S["cit_toggles"] >> cit_toggles
S["preferred_chaos"] >> preferred_chaos
- S["auto_ooc"] >> auto_ooc
+ S["auto_ooc"] >> auto_ooc
+ S["no_tetris_storage"] >> no_tetris_storage
//try to fix any outdated data if necessary
@@ -265,6 +282,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog))
UI_style = sanitize_inlist(UI_style, GLOB.available_ui_styles, GLOB.available_ui_styles[1])
hotkeys = sanitize_integer(hotkeys, 0, 1, initial(hotkeys))
+ chat_on_map = sanitize_integer(chat_on_map, 0, 1, initial(chat_on_map))
+ max_chat_length = sanitize_integer(max_chat_length, 1, CHAT_MESSAGE_MAX_LENGTH, initial(max_chat_length))
+ see_chat_non_mob = sanitize_integer(see_chat_non_mob, 0, 1, initial(see_chat_non_mob))
tgui_fancy = sanitize_integer(tgui_fancy, 0, 1, initial(tgui_fancy))
tgui_lock = sanitize_integer(tgui_lock, 0, 1, initial(tgui_lock))
buttons_locked = sanitize_integer(buttons_locked, 0, 1, initial(buttons_locked))
@@ -290,10 +310,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
pda_skin = sanitize_inlist(pda_skin, GLOB.pda_reskins, PDA_SKIN_ALT)
screenshake = sanitize_integer(screenshake, 0, 800, initial(screenshake))
damagescreenshake = sanitize_integer(damagescreenshake, 0, 2, initial(damagescreenshake))
- widescreenpref = sanitize_integer(widescreenpref, 0, 1, initial(widescreenpref))
+ widescreenpref = sanitize_integer(widescreenpref, 0, 1, initial(widescreenpref))
autostand = sanitize_integer(autostand, 0, 1, initial(autostand))
cit_toggles = sanitize_integer(cit_toggles, 0, 65535, initial(cit_toggles))
auto_ooc = sanitize_integer(auto_ooc, 0, 1, initial(auto_ooc))
+ no_tetris_storage = sanitize_integer(no_tetris_storage, 0, 1, initial(no_tetris_storage))
return 1
@@ -317,6 +338,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["lastchangelog"], lastchangelog)
WRITE_FILE(S["UI_style"], UI_style)
WRITE_FILE(S["hotkeys"], hotkeys)
+ WRITE_FILE(S["chat_on_map"], chat_on_map)
+ WRITE_FILE(S["max_chat_length"], max_chat_length)
+ WRITE_FILE(S["see_chat_non_mob"], see_chat_non_mob)
WRITE_FILE(S["tgui_fancy"], tgui_fancy)
WRITE_FILE(S["tgui_lock"], tgui_lock)
WRITE_FILE(S["buttons_locked"], buttons_locked)
@@ -358,6 +382,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["cit_toggles"], cit_toggles)
WRITE_FILE(S["preferred_chaos"], preferred_chaos)
WRITE_FILE(S["auto_ooc"], auto_ooc)
+ WRITE_FILE(S["no_tetris_storage"], no_tetris_storage)
return 1
@@ -400,15 +425,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(newtype)
pref_species = new newtype
- if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000")
- WRITE_FILE(S["features["mcolor"]"] , "#FFF")
-
- if(!S["features["horn_color"]"] || S["features["horn_color"]"] == "#000")
- WRITE_FILE(S["features["horn_color"]"] , "#85615a")
-
- if(!S["features["wing_color"]"] || S["features["wing_color"]"] == "#000")
- WRITE_FILE(S["features["wing_color"]"] , "#FFF")
-
//Character
S["real_name"] >> real_name
S["nameless"] >> nameless
@@ -432,8 +448,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["shirt_color"] >> shirt_color
S["socks"] >> socks
S["socks_color"] >> socks_color
- S["horn_color"] >> horn_color
- S["wing_color"] >> wing_color
S["backbag"] >> backbag
S["jumpsuit_style"] >> jumpsuit_style
S["uplink_loc"] >> uplink_spawn_loc
@@ -521,6 +535,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
else //We have no old flavortext, default to new
S["feature_flavor_text"] >> features["flavor_text"]
+ S["feature_ooc_notes"] >> features["ooc_notes"]
+
S["vore_flags"] >> vore_flags
S["vore_taste"] >> vore_taste
S["belly_prefs"] >> belly_prefs
@@ -543,15 +559,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(!custom_names[custom_name_id])
custom_names[custom_name_id] = get_default_name(custom_name_id)
- if(!features["mcolor"] || features["mcolor"] == "#000")
- features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
-
- if(!features["horn_color"] || features["horn_color"] == "#000")
- features["horn_color"] = "85615a"
-
- if(!features["wing_color"] || features["wing_color"] == "#000")
- features["wing_color"] = "FFFFFF"
-
nameless = sanitize_integer(nameless, 0, 1, initial(nameless))
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
@@ -568,13 +575,18 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
hair_color = sanitize_hexcolor(hair_color, 3, 0)
facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0)
eye_color = sanitize_hexcolor(eye_color, 3, 0)
- use_custom_skin_tone = sanitize_integer(use_custom_skin_tone, FALSE, TRUE, initial(use_custom_skin_tone))
- if(use_custom_skin_tone && CONFIG_GET(number/allow_custom_skintones))
+
+ var/static/allow_custom_skintones
+ if(isnull(allow_custom_skintones))
+ allow_custom_skintones = CONFIG_GET(flag/allow_custom_skintones)
+ use_custom_skin_tone = allow_custom_skintones ? sanitize_integer(use_custom_skin_tone, FALSE, TRUE, initial(use_custom_skin_tone)) : FALSE
+ if(use_custom_skin_tone)
skin_tone = sanitize_hexcolor(skin_tone, 6, TRUE, "#FFFFFF")
else
skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones - GLOB.nonstandard_skin_tones, initial(skin_tone))
- horn_color = sanitize_hexcolor(horn_color, 3, FALSE)
- wing_color = sanitize_hexcolor(wing_color, 3, FALSE, "#FFFFFF")
+
+ features["horns_color"] = sanitize_hexcolor(features["horns_color"], 3, FALSE, "85615a")
+ features["wings_color"] = sanitize_hexcolor(features["wings_color"], 3, FALSE, "FFFFFF")
backbag = sanitize_inlist(backbag, GLOB.backbaglist, initial(backbag))
jumpsuit_style = sanitize_inlist(jumpsuit_style, GLOB.jumpsuitlist, initial(jumpsuit_style))
uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc))
@@ -599,7 +611,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/static/size_max
if(!size_max)
size_max = CONFIG_GET(number/body_size_max)
- features["body_size"] = sanitize_integer(features["body_size"], size_min, size_max, RESIZE_DEFAULT_SIZE)
+ features["body_size"] = sanitize_num_clamp(features["body_size"], size_min, size_max, RESIZE_DEFAULT_SIZE, 0.01)
var/static/list/B_sizes
if(!B_sizes)
@@ -633,6 +645,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["flavor_text"] = copytext(features["flavor_text"], 1, MAX_FLAVOR_LEN)
+ features["ooc_notes"] = copytext(features["ooc_notes"], 1, MAX_FLAVOR_LEN)
joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole))
//Validate job prefs
@@ -688,8 +701,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["shirt_color"] , shirt_color)
WRITE_FILE(S["socks"] , socks)
WRITE_FILE(S["socks_color"] , socks_color)
- WRITE_FILE(S["horn_color"] , horn_color)
- WRITE_FILE(S["wing_color"] , wing_color)
+ WRITE_FILE(S["horns_color"] , features["horns_color"])
+ WRITE_FILE(S["wings_color"] , features["wings_color"])
WRITE_FILE(S["backbag"] , backbag)
WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style)
WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc)
@@ -736,6 +749,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_has_womb"], features["has_womb"])
+ WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"])
+
//Custom names
for(var/custom_name_id in GLOB.preferences_custom_names)
var/savefile_slot_name = custom_name_id + "_name" //TODO remove this
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 9f1111e5d9..df05eee638 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -262,7 +262,15 @@
return
random_look(owner)
-/obj/item/clothing/under/chameleon
+// Forgive me for my sins...
+#define CHAMELEON_CLOTHING_DEFINE(path) \
+##path/syndicate/Initialize(mapload){\
+ . = ..();\
+ AddComponent(/datum/component/identification/syndicate, ID_COMPONENT_DEL_ON_IDENTIFY, ID_COMPONENT_EFFECT_NO_ACTIONS, ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR);\
+}\
+##path
+
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/under/chameleon)
//starts off as black
name = "black jumpsuit"
icon_state = "black"
@@ -300,7 +308,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/clothing/suit/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/suit/chameleon)
name = "armor"
desc = "A slim armored vest that protects against most types of damage."
icon_state = "armor"
@@ -329,7 +337,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/clothing/glasses/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/glasses/chameleon)
name = "Optical Meson Scanner"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
icon_state = "meson"
@@ -357,7 +365,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/clothing/gloves/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/gloves/chameleon)
desc = "These gloves will protect the wearer from electric shock."
name = "insulated gloves"
icon_state = "yellow"
@@ -368,6 +376,9 @@
var/datum/action/item_action/chameleon/change/chameleon_action
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/gloves/chameleon/insulated)
+ siemens_coefficient = 0
+
/obj/item/clothing/gloves/chameleon/Initialize()
. = ..()
chameleon_action = new(src)
@@ -386,7 +397,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/clothing/head/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/head/chameleon)
name = "grey cap"
desc = "It's a baseball hat in a tasteful grey colour."
icon_state = "greysoft"
@@ -429,7 +440,7 @@
var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src)
randomise_action.UpdateButtonIcon()
-/obj/item/clothing/mask/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/mask/chameleon)
name = "gas mask"
desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate
icon_state = "gas_alt"
@@ -486,7 +497,7 @@
/obj/item/clothing/mask/chameleon/drone/attack_self(mob/user)
to_chat(user, "[src] does not have a voice changer. ")
-/obj/item/clothing/shoes/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/shoes/chameleon)
name = "black shoes"
icon_state = "black"
desc = "A pair of black shoes."
@@ -511,7 +522,7 @@
return
chameleon_action.emp_randomise()
-/obj/item/clothing/shoes/chameleon/noslip
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/shoes/chameleon/noslip)
name = "black shoes"
icon_state = "black"
desc = "A pair of black shoes."
@@ -521,7 +532,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/storage/backpack/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/storage/backpack/chameleon)
name = "backpack"
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -542,7 +553,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/storage/belt/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/storage/belt/chameleon)
name = "toolbelt"
desc = "Holds tools."
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -570,7 +581,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/radio/headset/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/radio/headset/chameleon)
name = "radio headset"
var/datum/action/item_action/chameleon/change/chameleon_action
@@ -591,7 +602,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/pda/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/pda/chameleon)
name = "PDA"
var/datum/action/item_action/chameleon/change/pda/chameleon_action
@@ -613,7 +624,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/stamp/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/stamp/chameleon)
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/stamp/chameleon/Initialize()
@@ -627,7 +638,7 @@
. = ..()
chameleon_action.emp_randomise(INFINITY)
-/obj/item/clothing/neck/cloak/chameleon
+CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/neck/cloak/chameleon)
name = "black tie"
desc = "A neosilk clip-on tie."
icon = 'icons/obj/clothing/neck.dmi'
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index d484027ad5..a28061db10 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -173,12 +173,18 @@ SEE_PIXELS// if an object is located on an unlit area, but some of its pixels ar
BLIND // can't see anything
*/
-/proc/generate_female_clothing(index,t_color,icon,type)
- var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"=t_color)
- var/icon/female_s = icon("icon"='icons/mob/clothing/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]")
- female_clothing_icon.Blend(female_s, ICON_MULTIPLY)
- female_clothing_icon = fcopy_rsc(female_clothing_icon)
- GLOB.female_clothing_icons[index] = female_clothing_icon
+/proc/generate_alpha_masked_clothing(index,state,icon,female,alpha_masks)
+ var/icon/I = icon(icon, state)
+ if(female)
+ var/icon/female_s = icon('icons/mob/clothing/alpha_masks.dmi', "[(female == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]")
+ I.Blend(female_s, ICON_MULTIPLY, -15, -15) //it's a 64x64 icon.
+ if(alpha_masks)
+ if(istext(alpha_masks))
+ alpha_masks = list(alpha_masks)
+ for(var/alpha_state in alpha_masks)
+ var/icon/alpha = icon('icons/mob/clothing/alpha_masks.dmi', alpha_state)
+ I.Blend(alpha, ICON_MULTIPLY, -15, -15)
+ . = GLOB.alpha_masked_worn_icons[index] = fcopy_rsc(I)
/obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc.
if(!can_use(user))
diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm
new file mode 100644
index 0000000000..ddbeeab7f6
--- /dev/null
+++ b/code/modules/clothing/gloves/tacklers.dm
@@ -0,0 +1,97 @@
+/obj/item/clothing/gloves/tackler
+ name = "gripper gloves"
+ desc = "Special gloves that manipulate the blood vessels in the wearer's hands, granting them the ability to launch headfirst into walls."
+ icon_state = "tackle"
+ item_state = "tackle"
+ transfer_prints = TRUE
+ cold_protection = HANDS
+ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
+ resistance_flags = NONE
+ //custom_premium_price = 350
+ /// For storing our tackler datum so we can remove it after
+ var/datum/component/tackler
+ /// See: [/datum/component/tackler/var/stamina_cost]
+ var/tackle_stam_cost = 25
+ /// See: [/datum/component/tackler/var/base_knockdown]
+ var/base_knockdown = 1 SECONDS
+ /// See: [/datum/component/tackler/var/range]
+ var/tackle_range = 4
+ /// See: [/datum/component/tackler/var/min_distance]
+ var/min_distance = 0
+ /// See: [/datum/component/tackler/var/speed]
+ var/tackle_speed = 1
+ /// See: [/datum/component/tackler/var/skill_mod]
+ var/skill_mod = 1
+
+/obj/item/clothing/gloves/tackler/equipped(mob/user, slot)
+ . = ..()
+ if(!ishuman(user))
+ return
+ if(slot == ITEM_SLOT_GLOVES)
+ var/mob/living/carbon/human/H = user
+ tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance)
+
+/obj/item/clothing/gloves/tackler/dropped(mob/user)
+ . = ..()
+ if(tackler)
+ qdel(tackler)
+
+/obj/item/clothing/gloves/tackler/dolphin
+ name = "dolphin gloves"
+ desc = "Sleek, aerodynamic gripper gloves that are less effective at actually performing takedowns, but more effective at letting the user sail through the hallways and cause accidents."
+ icon_state = "tackledolphin"
+ item_state = "tackledolphin"
+
+ tackle_stam_cost = 15
+ base_knockdown = 0.5 SECONDS
+ tackle_range = 5
+ tackle_speed = 2
+ min_distance = 2
+ skill_mod = -2
+
+/obj/item/clothing/gloves/tackler/combat
+ name = "gorilla gloves"
+ desc = "Premium quality combative gloves, heavily reinforced to give the user an edge in close combat tackles, though they are more taxing to use than normal gripper gloves. Fireproof to boot!"
+ icon_state = "combat"
+ item_state = "blackgloves"
+
+ tackle_stam_cost = 35
+ base_knockdown = 1.5 SECONDS
+ tackle_range = 5
+ skill_mod = 3
+
+ cold_protection = HANDS
+ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
+ heat_protection = HANDS
+ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
+ resistance_flags = NONE
+
+/obj/item/clothing/gloves/tackler/combat/insulated
+ name = "guerrilla gloves"
+ desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks."
+ siemens_coefficient = 0
+ permeability_coefficient = 0.05
+
+/obj/item/clothing/gloves/tackler/rocket
+ name = "rocket gloves"
+ desc = "The ultimate in high risk, high reward, perfect for when you need to stop a criminal from fifty feet away or die trying. Banned in most Spinward gridiron football and rugby leagues."
+ icon_state = "tacklerocket"
+ item_state = "tacklerocket"
+
+ tackle_stam_cost = 50
+ base_knockdown = 2 SECONDS
+ tackle_range = 10
+ min_distance = 7
+ tackle_speed = 6
+ skill_mod = 7
+
+/obj/item/clothing/gloves/tackler/offbrand
+ name = "improvised gripper gloves"
+ desc = "Ratty looking fingerless gloves wrapped with sticky tape. Beware anyone wearing these, for they clearly have no shame and nothing to lose."
+ icon_state = "fingerless"
+ item_state = "fingerless"
+
+ tackle_stam_cost = 30
+ base_knockdown = 1.75 SECONDS
+ min_distance = 2
+ skill_mod = -1
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 9ad05efb7a..25ef367b48 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -243,7 +243,7 @@
icon_state = "knight_greyscale"
item_state = "knight_greyscale"
armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40)
- material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix
+ material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix
/obj/item/clothing/head/helmet/skull
name = "skull helmet"
@@ -273,7 +273,7 @@
//LightToggle
-/obj/item/clothing/head/helment/ComponentInitialize()
+/obj/item/clothing/head/helmet/ComponentInitialize()
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 9c96223a6f..764b50de8c 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -42,6 +42,7 @@
desc = "You put the cake on your head. Brilliant."
icon_state = "hardhat0_cakehat"
item_state = "hardhat0_cakehat"
+ hat_type = "cakehat"
hitsound = 'sound/weapons/tap.ogg'
flags_inv = HIDEEARS|HIDEHAIR
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 144b17e510..90b3d7d86b 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -73,18 +73,26 @@
resistance_flags = FLAMMABLE
actions_types = list(/datum/action/item_action/adjust)
dog_fashion = /datum/dog_fashion/head/clown
+ var/list/clownmask_designs = list()
+
+/obj/item/clothing/mask/gas/clown_hat/Initialize(mapload)
+ .=..()
+ clownmask_designs = list(
+ "True Form" = image(icon = src.icon, icon_state = "clown"),
+ "The Feminist" = image(icon = src.icon, icon_state = "sexyclown"),
+ "The Jester" = image(icon = src.icon, icon_state = "chaos"),
+ "The Madman" = image(icon = src.icon, icon_state = "joker"),
+ "The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow")
+ )
/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user)
if(!istype(user) || user.incapacitated())
return
- var/list/options = list()
- options["True Form"] = "clown"
- options["The Feminist"] = "sexyclown"
- options["The Madman"] = "joker"
- options["The Rainbow Color"] ="rainbow"
+ var/static/list/options = list("True Form" = "clown", "The Feminist" = "sexyclown", "The Madman" = "joker",
+ "The Rainbow Color" ="rainbow", "The Jester" = "chaos")
- var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options
+ var/choice = show_radial_menu(user,src, clownmask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
if(src && choice && !user.incapacitated() && in_range(user,src))
icon_state = options[choice]
@@ -93,7 +101,7 @@
var/datum/action/A = X
A.UpdateButtonIcon()
to_chat(user, "Your Clown Mask has now morphed into [choice], all praise the Honkmother! ")
- return 1
+ return TRUE
/obj/item/clothing/mask/gas/sexyclown
name = "sexy-clown wig and mask"
@@ -113,19 +121,26 @@
flags_cover = MASKCOVERSEYES
resistance_flags = FLAMMABLE
actions_types = list(/datum/action/item_action/adjust)
+ var/list/mimemask_designs = list()
+
+
+/obj/item/clothing/mask/gas/mime/Initialize(mapload)
+ .=..()
+ mimemask_designs = list(
+ "Blanc" = image(icon = src.icon, icon_state = "mime"),
+ "Excité" = image(icon = src.icon, icon_state = "sexymime"),
+ "Triste" = image(icon = src.icon, icon_state = "sadmime"),
+ "Effrayé" = image(icon = src.icon, icon_state = "scaredmime")
+ )
/obj/item/clothing/mask/gas/mime/ui_action_click(mob/user)
if(!istype(user) || user.incapacitated())
return
- var/list/options = list()
- options["Blanc"] = "mime"
- options["Triste"] = "sadmime"
- options["Effrayé"] = "scaredmime"
- options["Excité"] ="sexymime"
+ var/static/list/options = list("Blanc" = "mime", "Triste" = "sadmime", "Effrayé" = "scaredmime", "Excité" ="sexymime")
- var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options
+ var/choice = show_radial_menu(user,src, mimemask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
if(src && choice && !user.incapacitated() && in_range(user,src))
icon_state = options[choice]
@@ -134,7 +149,7 @@
var/datum/action/A = X
A.UpdateButtonIcon()
to_chat(user, "Your Mime Mask has now morphed into [choice]! ")
- return 1
+ return TRUE
/obj/item/clothing/mask/gas/monkeymask
name = "monkey mask"
@@ -187,18 +202,25 @@
max_integrity = 100
actions_types = list(/datum/action/item_action/adjust)
dog_fashion = null
+ var/list/tikimask_designs = list()
+/obj/item/clothing/mask/gas/tiki_mask/Initialize(mapload)
+ .=..()
+ tikimask_designs = list(
+ "Original Tiki" = image(icon = src.icon, icon_state = "tiki_eyebrow"),
+ "Happy Tiki" = image(icon = src.icon, icon_state = "tiki_happy"),
+ "Confused Tiki" = image(icon = src.icon, icon_state = "tiki_confused"),
+ "Angry Tiki" = image(icon = src.icon, icon_state = "tiki_angry")
+ )
+
/obj/item/clothing/mask/gas/tiki_mask/ui_action_click(mob/user)
var/mob/M = usr
- var/list/options = list()
- options["Original Tiki"] = "tiki_eyebrow"
- options["Happy Tiki"] = "tiki_happy"
- options["Confused Tiki"] = "tiki_confused"
- options["Angry Tiki"] ="tiki_angry"
+ var/static/list/options = list("Original Tiki" = "tiki_eyebrow", "Happy Tiki" = "tiki_happy", "Confused Tiki" = "tiki_confused",
+ "Angry Tiki" = "tiki_angry")
- var/choice = input(M,"To what form do you wish to change this mask?","Morph Mask") in options
+ var/choice = show_radial_menu(user,src, tikimask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
if(src && choice && !M.stat && in_range(M,src))
icon_state = options[choice]
@@ -207,4 +229,4 @@
var/datum/action/A = X
A.UpdateButtonIcon()
to_chat(M, "The Tiki Mask has now changed into the [choice] Mask!")
- return 1
+ return TRUE
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 3813ced2c4..11df38cfdd 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -351,30 +351,40 @@
resistance_flags = FLAMMABLE
max_integrity = 100
actions_types = list(/datum/action/item_action/adjust)
+ var/list/papermask_designs = list()
+/obj/item/clothing/mask/paper/Initialize(mapload)
+ .=..()
+ papermask_designs = list(
+ "Blank" = image(icon = src.icon, icon_state = "plainmask"),
+ "Neutral" = image(icon = src.icon, icon_state = "neutralmask"),
+ "Eyes" = image(icon = src.icon, icon_state = "eyemask"),
+ "Sleeping" = image(icon = src.icon, icon_state = "sleepingmask"),
+ "Heart" = image(icon = src.icon, icon_state = "heartmask"),
+ "Core" = image(icon = src.icon, icon_state = "coremask"),
+ "Plus" = image(icon = src.icon, icon_state = "plusmask"),
+ "Square" = image(icon = src.icon, icon_state = "squaremask"),
+ "Bullseye" = image(icon = src.icon, icon_state = "bullseyemask"),
+ "Vertical" = image(icon = src.icon, icon_state = "verticalmask"),
+ "Horizontal" = image(icon = src.icon, icon_state = "horizontalmask"),
+ "X" = image(icon = src.icon, icon_state = "xmask"),
+ "Bugeyes" = image(icon = src.icon, icon_state = "bugmask"),
+ "Double" = image(icon = src.icon, icon_state = "doublemask"),
+ "Mark" = image(icon = src.icon, icon_state = "markmask")
+ )
+
/obj/item/clothing/mask/paper/ui_action_click(mob/user)
if(!istype(user) || user.incapacitated())
return
- var/list/options = list()
- options["Blank"] = "plainmask"
- options["Neutral"] = "neutralmask"
- options["Eyes"] = "eyemask"
- options["Sleeping"] ="sleepingmask"
- options["Heart"] = "heartmask"
- options["Core"] = "coremask"
- options["Plus"] = "plusmask"
- options["Square"] ="squaremask"
- options["Bullseye"] = "bullseyemask"
- options["Vertical"] = "verticalmask"
- options["Horizontal"] = "horizontalmask"
- options["X"] ="xmask"
- options["Bugeyes"] = "bugmask"
- options["Double"] = "doublemask"
- options["Mark"] = "markmask"
+ var/static/list/options = list("Blank" = "plainmask", "Neutral" = "neutralmask", "Eyes" = "eyemask",
+ "Sleeping" ="sleepingmask", "Heart" = "heartmask", "Core" = "coremask",
+ "Plus" = "plusmask", "Square" ="squaremask", "Bullseye" = "bullseyemask",
+ "Vertical" = "verticalmask", "Horizontal" = "horizontalmask", "X" ="xmask",
+ "Bugeyes" = "bugmask", "Double" = "doublemask", "Mark" = "markmask")
- var/choice = input(user,"What symbol would you want on this mask?","Morph Mask") in options
+ var/choice = show_radial_menu(user,src, papermask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
if(src && choice && !user.incapacitated() && in_range(user,src))
icon_state = options[choice]
diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm
index 48cc92db61..7cd2e9b394 100644
--- a/code/modules/clothing/outfits/ert.dm
+++ b/code/modules/clothing/outfits/ert.dm
@@ -3,7 +3,7 @@
uniform = /obj/item/clothing/under/rank/centcom/officer
shoes = /obj/item/clothing/shoes/combat/swat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
ears = /obj/item/radio/headset/headset_cent/alt
/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
@@ -69,8 +69,8 @@
id = /obj/item/card/id/ert/Security
suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
- back = /obj/item/storage/backpack/security
belt = /obj/item/storage/belt/security/full
+ back = /obj/item/storage/backpack/security
backpack_contents = list(/obj/item/storage/box/engineer=1,\
/obj/item/storage/box/handcuffs=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm
index b1f6e7696d..d692f9c3fb 100644
--- a/code/modules/clothing/outfits/standard.dm
+++ b/code/modules/clothing/outfits/standard.dm
@@ -205,7 +205,7 @@
uniform = /obj/item/clothing/under/rank/centcom/commander
suit = /obj/item/clothing/suit/armor/bulletproof
shoes = /obj/item/clothing/shoes/combat/swat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
ears = /obj/item/radio/headset/headset_cent/commander
glasses = /obj/item/clothing/glasses/eyepatch
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
@@ -234,7 +234,7 @@
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/space/officer
shoes = /obj/item/clothing/shoes/combat/swat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
glasses = /obj/item/clothing/glasses/thermal/eyepatch
ears = /obj/item/radio/headset/headset_cent/commander
mask = /obj/item/clothing/mask/cigarette/cigar/havana
@@ -316,7 +316,7 @@
uniform = /obj/item/clothing/under/costume/soviet
head = /obj/item/clothing/head/pirate/captain
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
ears = /obj/item/radio/headset/headset_cent
glasses = /obj/item/clothing/glasses/thermal/eyepatch
suit = /obj/item/clothing/suit/pirate/captain
@@ -372,7 +372,7 @@
uniform = /obj/item/clothing/under/color/green
suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
shoes = /obj/item/clothing/shoes/combat/swat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
mask = /obj/item/clothing/mask/gas/sechailer/swat
glasses = /obj/item/clothing/glasses/hud/toggle/thermal
back = /obj/item/storage/backpack/security
@@ -431,7 +431,7 @@
glasses = /obj/item/clothing/glasses/debug
ears = /obj/item/radio/headset/headset_cent/commander
mask = /obj/item/clothing/mask/gas/welding/up
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
belt = /obj/item/storage/belt/utility/chief/full
l_pocket = /obj/item/gun/magic/wand/resurrection/debug
r_pocket = /obj/item/gun/magic/wand/death/debug
diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm
index ee350e3891..7a057eda41 100644
--- a/code/modules/clothing/outfits/vr.dm
+++ b/code/modules/clothing/outfits/vr.dm
@@ -17,7 +17,7 @@
name = "Syndicate VR Operative - Basic"
uniform = /obj/item/clothing/under/syndicate
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
back = /obj/item/storage/backpack
id = /obj/item/card/id/syndicate
belt = /obj/item/gun/ballistic/automatic/pistol
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 7a3ed902ea..46477097d0 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -143,6 +143,13 @@
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
+/obj/item/clothing/shoes/winterboots/ice_boots
+ name = "ice hiking boots"
+ desc = "A pair of winter boots with special grips on the bottom, designed to prevent slipping on frozen surfaces."
+ icon_state = "iceboots"
+ item_state = "iceboots"
+ clothing_flags = NOSLIP_ICE
+
/obj/item/clothing/shoes/winterboots/christmasbootsr
name = "red christmas boots"
desc = "A pair of fluffy red christmas boots!"
@@ -173,6 +180,10 @@
name = "mining boots"
desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed."
icon_state = "explorer"
+ cold_protection = FEET|LEGS
+ min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
+ heat_protection = FEET|LEGS
+ max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
/obj/item/clothing/shoes/cult
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 8a7092d8a6..2e72c154d9 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -41,7 +41,7 @@
/obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user)
..()
- if(suit)
+ if(suit && !ismob(loc)) //equipped() will handle mob cases, so it doesn't disengage twice.
suit.RemoveHelmet()
soundloop.stop(user)
@@ -408,7 +408,6 @@
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
mutantrace_variation = STYLE_DIGITIGRADE
-
//Wizard hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/wizard
name = "gem-encrusted hardsuit helmet"
@@ -473,6 +472,7 @@
name = "medical hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
item_state = "medical_hardsuit"
+ slowdown = 0.8
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical)
armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
@@ -748,63 +748,20 @@
allowed = null
armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
- var/current_charges = 3
var/max_charges = 3 //How many charges total the shielding has
+ var/current_charges //if null, will default to max_chargs
var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here
- var/recharge_cooldown = 0 //Time since we've last been shot
var/recharge_rate = 1 //How quickly the shield recharges once it starts charging
var/shield_state = "shield-old"
- var/shield_on = "shield-old"
/obj/item/clothing/suit/space/hardsuit/shielded/Initialize()
. = ..()
if(!allowed)
allowed = GLOB.advanced_hardsuit_allowed
-/obj/item/clothing/suit/space/hardsuit/shielded/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- if(current_charges > 0)
- block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100
- block_return[BLOCK_RETURN_BLOCK_CAPACITY] = (block_return[BLOCK_RETURN_BLOCK_CAPACITY] || 0) + current_charges
- return ..()
-
-/obj/item/clothing/suit/space/hardsuit/shielded/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- recharge_cooldown = world.time + recharge_delay
- if(current_charges > 0)
- var/datum/effect_system/spark_spread/s = new
- s.set_up(2, 1, src)
- s.start()
- owner.visible_message("[owner]'s shields deflect [attack_text] in a shower of sparks! ")
- current_charges--
- if(recharge_rate)
- START_PROCESSING(SSobj, src)
- if(current_charges <= 0)
- owner.visible_message("[owner]'s shield overloads!")
- shield_state = "broken"
- owner.update_inv_wear_suit()
- return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL
- return BLOCK_NONE
-
-/obj/item/clothing/suit/space/hardsuit/shielded/Destroy()
- STOP_PROCESSING(SSobj, src)
- return ..()
-
-/obj/item/clothing/suit/space/hardsuit/shielded/process()
- if(world.time > recharge_cooldown && current_charges < max_charges)
- current_charges = CLAMP((current_charges + recharge_rate), 0, max_charges)
- playsound(loc, 'sound/magic/charge.ogg', 50, 1)
- if(current_charges == max_charges)
- playsound(loc, 'sound/machines/ding.ogg', 50, 1)
- STOP_PROCESSING(SSobj, src)
- shield_state = "[shield_on]"
- if(ishuman(loc))
- var/mob/living/carbon/human/C = loc
- C.update_inv_wear_suit()
-
-/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE)
+/obj/item/clothing/suit/space/hardsuit/shielded/ComponentInitialize()
. = ..()
- if(!isinhands)
- var/file2use = style_flags & STYLE_ALL_TAURIC ? 'modular_citadel/icons/mob/64x32_effects.dmi' : 'icons/effects/effects.dmi'
- . += mutable_appearance(file2use, shield_state, MOB_LAYER + 0.01)
+ AddComponent(/datum/component/shielded, current_charges, max_charges, recharge_delay, recharge_rate, ITEM_SLOT_OCLOTHING, shield_state)
/obj/item/clothing/head/helmet/space/hardsuit/shielded
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -833,7 +790,6 @@
hardsuit_type = "ert_security"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
shield_state = "shield-red"
- shield_on = "shield-red"
/obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue
name = "blue shielded hardsuit"
@@ -896,7 +852,6 @@
item_state = "swat_suit"
hardsuit_type = "syndi"
max_charges = 4
- current_charges = 4
recharge_delay = 15
armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
strip_delay = 130
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 8bd7ee741d..bbfab5fda7 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -285,7 +285,7 @@
icon_state = "knight_greyscale"
item_state = "knight_greyscale"
armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40)
- material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix
+ material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix
/obj/item/clothing/suit/armor/vest/durathread
name = "makeshift vest"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index dfd0a0ef3b..6c4511324d 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -811,7 +811,7 @@
desc = "A dusty button up winter coat. The zipper tab looks like a tiny pickaxe."
icon_state = "coatminer"
item_state = "coatminer"
- allowed = list(/obj/item/pickaxe, /obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
+ allowed = list(/obj/item/pickaxe, /obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/miner
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index 8b5e87d63b..e392a6b2d1 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -199,10 +199,9 @@
icon_state = "battlemage"
item_state = "battlemage"
recharge_rate = 0
+ max_charges = INFINITY
current_charges = 15
- recharge_cooldown = INFINITY
shield_state = "shield-red"
- shield_on = "shield-red"
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
@@ -243,6 +242,7 @@
if(!istype(W))
to_chat(user, "The rune can only be used on battlemage armour! ")
return
- W.current_charges += 8
- to_chat(user, "You charge \the [W]. It can now absorb [W.current_charges] hits. ")
+ var/datum/component/shielded/S = GetComponent(/datum/component/shielded)
+ S.adjust_charges(8)
+ to_chat(user, "You charge \the [W]. It can now absorb [S.charges] hits. ")
qdel(src)
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index fe3aaf4bda..e0ecf24204 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -6,7 +6,7 @@
block_priority = BLOCK_PRIORITY_UNIFORM
slot_flags = ITEM_SLOT_ICLOTHING
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
- mutantrace_variation = STYLE_DIGITIGRADE
+ mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK
var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women
var/has_sensor = HAS_SENSORS // For the crew computer
var/random_sensor = TRUE
@@ -26,11 +26,13 @@
. += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform")
if(blood_DNA)
. += mutable_appearance('icons/effects/blood.dmi', "uniformblood", color = blood_DNA_to_color())
+ if(accessory_overlay)
+ . += accessory_overlay
/obj/item/clothing/under/attackby(obj/item/I, mob/user, params)
if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = I
- C.use(1)
+ I.use_tool(src, user, 0, 1)
has_sensor = HAS_SENSORS
to_chat(user,"You repair the suit sensors on [src] with [C]. ")
return 1
@@ -99,8 +101,7 @@
if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY))
return TRUE
- var/accessory_color = attached_accessory.icon_state
- accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', "[accessory_color]")
+ accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', attached_accessory.icon_state)
accessory_overlay.alpha = attached_accessory.alpha
accessory_overlay.color = attached_accessory.color
@@ -262,10 +263,13 @@
fitted = NO_FEMALE_UNIFORM
if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted
body_parts_covered &= ~CHEST
+ mutantrace_variation &= ~USE_TAUR_CLIP_MASK //How are we supposed to see the uniform otherwise?
else
fitted = initial(fitted)
if(!alt_covers_chest)
body_parts_covered |= CHEST
+ if(initial(mutantrace_variation) & USE_TAUR_CLIP_MASK)
+ mutantrace_variation |= USE_TAUR_CLIP_MASK
return adjusted
diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm
index 7e37d83baa..3e7bc755cb 100644
--- a/code/modules/clothing/under/costume.dm
+++ b/code/modules/clothing/under/costume.dm
@@ -130,25 +130,27 @@
var/obj/item/clothing/accessory/maidapron/A = new (src)
attach_accessory(A)
+/obj/item/clothing/under/costume/singer
+ desc = "Just looking at this makes you want to sing."
+ mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
+ body_parts_covered = CHEST|GROIN|ARMS
+ alternate_worn_layer = ABOVE_SHOES_LAYER
+ can_adjust = FALSE
+
/obj/item/clothing/under/costume/singer/yellow
name = "yellow performer's outfit"
- desc = "Just looking at this makes you want to sing."
icon_state = "ysing"
item_state = "ysing"
body_parts_covered = CHEST|GROIN|ARMS
fitted = NO_FEMALE_UNIFORM
- alternate_worn_layer = ABOVE_SHOES_LAYER
can_adjust = FALSE
/obj/item/clothing/under/costume/singer/blue
name = "blue performer's outfit"
- desc = "Just looking at this makes you want to sing."
icon_state = "bsing"
item_state = "bsing"
- body_parts_covered = CHEST|GROIN|ARMS
alternate_worn_layer = ABOVE_SHOES_LAYER
fitted = FEMALE_UNIFORM_TOP
- can_adjust = FALSE
/obj/item/clothing/under/costume/geisha
name = "geisha suit"
@@ -205,7 +207,7 @@
body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/costume/drfreeze
name = "doctor freeze's jumpsuit"
@@ -213,7 +215,7 @@
icon_state = "drfreeze"
item_state = "drfreeze"
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/costume/lobster
name = "foam lobster suit"
@@ -222,7 +224,7 @@
item_state = "lobster"
fitted = NO_FEMALE_UNIFORM
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/costume/gondola
name = "gondola hide suit"
@@ -248,7 +250,7 @@
icon_state = "christmasmaler"
item_state = "christmasmaler"
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/costume/christmas/green
name = "green christmas suit"
@@ -262,7 +264,7 @@
icon_state = "christmasfemaler"
item_state = "christmasfemaler"
body_parts_covered = CHEST|GROIN
- mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
+ mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON|USE_TAUR_CLIP_MASK
/obj/item/clothing/under/costume/christmas/croptop/green
name = "green feminine christmas suit"
@@ -287,7 +289,6 @@
item_state = "qipao_white"
body_parts_covered = CHEST|GROIN
can_adjust = FALSE
- mutantrace_variation = NONE
/obj/item/clothing/under/costume/qipao/red
name = "Red Qipao"
@@ -296,7 +297,6 @@
item_state = "qipao_red"
body_parts_covered = CHEST|GROIN
can_adjust = FALSE
- mutantrace_variation = NONE
/obj/item/clothing/under/costume/cheongsam
name = "Black Cheongsam"
@@ -305,7 +305,7 @@
item_state = "cheong"
body_parts_covered = CHEST|GROIN
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/costume/cheongsam/white
name = "White Cheongsam"
@@ -323,7 +323,6 @@
item_state = "cheongr"
body_parts_covered = CHEST|GROIN
can_adjust = FALSE
- mutantrace_variation = NONE
/obj/item/clothing/under/costume/cloud
name = "cloud"
diff --git a/code/modules/clothing/under/jobs/civilian/clown_mime.dm b/code/modules/clothing/under/jobs/civilian/clown_mime.dm
index 5b3b84fd6e..470a3695fc 100644
--- a/code/modules/clothing/under/jobs/civilian/clown_mime.dm
+++ b/code/modules/clothing/under/jobs/civilian/clown_mime.dm
@@ -30,6 +30,7 @@
item_state = "clown"
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
+ mutantrace_variation = STYLE_DIGITIGRADE //The clown suit must look funny, no taur alpha masks where possible.
/obj/item/clothing/under/rank/civilian/clown/blue
name = "blue clown suit"
@@ -90,6 +91,7 @@
desc = "A jolly dress, well suited to entertain your master, nuncle."
icon_state = "jester"
can_adjust = FALSE
+ mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK
/obj/item/clothing/under/rank/civilian/clown/jester/alt
icon_state = "jester2"
@@ -100,6 +102,7 @@
icon_state = "sexyclown"
item_state = "sexyclown"
can_adjust = FALSE
+ mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK
/obj/item/clothing/under/rank/civilian/clown/Initialize()
. = ..()
diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm
index 0d6e6aea62..a614e2fcb3 100644
--- a/code/modules/clothing/under/jobs/command.dm
+++ b/code/modules/clothing/under/jobs/command.dm
@@ -46,4 +46,4 @@
icon_state = "lewdcap"
item_state = "lewdcap"
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm
index 846aae4f18..f50e5161b6 100644
--- a/code/modules/clothing/under/jobs/medical.dm
+++ b/code/modules/clothing/under/jobs/medical.dm
@@ -22,7 +22,7 @@
icon_state = "cmoturtle"
item_state = "w_suit"
alt_covers_chest = TRUE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/rank/medical/geneticist
desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it."
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 0acbafe183..997f10a379 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -102,7 +102,7 @@
mob_overlay_icon = 'goon/icons/mob/worn_js_rank.dmi'
icon_state = "assistant"
item_state = "gy_suit"
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/croptop
name = "crop top"
@@ -120,7 +120,7 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95)
slowdown = 1
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
can_adjust = FALSE
strip_delay = 80
var/next_extinguish = 0
@@ -195,7 +195,7 @@
icon_state = "squatteroutfit"
item_state = "squatteroutfit"
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/misc/blue_camo
name = "russian blue camo"
@@ -203,7 +203,7 @@
icon_state = "russobluecamo"
item_state = "russobluecamo"
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/misc/keyholesweater
name = "keyhole sweater"
@@ -237,7 +237,7 @@
icon_state = "tssuit"
item_state = "r_suit"
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/misc/poly_shirt
name = "polychromic button-up shirt"
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
index d0048326ff..8aa1ee429c 100644
--- a/code/modules/clothing/under/pants.dm
+++ b/code/modules/clothing/under/pants.dm
@@ -3,6 +3,7 @@
body_parts_covered = GROIN|LEGS
fitted = NO_FEMALE_UNIFORM
can_adjust = FALSE
+ mutantrace_variation = STYLE_DIGITIGRADE //how do they show up on taurs otherwise?
/obj/item/clothing/under/pants/classicjeans
name = "classic jeans"
diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm
index b1194da479..426e0e28d9 100644
--- a/code/modules/clothing/under/shorts.dm
+++ b/code/modules/clothing/under/shorts.dm
@@ -5,6 +5,7 @@
body_parts_covered = GROIN
fitted = NO_FEMALE_UNIFORM
can_adjust = FALSE
+ mutantrace_variation = STYLE_DIGITIGRADE //how do they show up on taurs otherwise?
/obj/item/clothing/under/shorts/red
name = "red athletic shorts"
diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm
index a7e842282c..e1212cf337 100644
--- a/code/modules/clothing/under/skirt_dress.dm
+++ b/code/modules/clothing/under/skirt_dress.dm
@@ -1,4 +1,4 @@
-/obj/item/clothing/under/dress/skirt
+/obj/item/clothing/under/dress
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
/obj/item/clothing/under/dress/skirt
@@ -182,7 +182,6 @@
icon_state = "bride_white"
item_state = "bride_white"
can_adjust = FALSE
- mutantrace_variation = NONE
/obj/item/clothing/under/dress/wedding/orange
name = "orange wedding dress"
@@ -213,7 +212,6 @@
desc = "A fancy skirt made with polychromic threads."
icon_state = "polyskirt"
item_state = "rainbow"
- mutantrace_variation = NONE
var/list/poly_colors = list("#FFFFFF", "#F08080", "#808080")
/obj/item/clothing/under/dress/skirt/polychromic/ComponentInitialize()
@@ -226,5 +224,4 @@
icon_state = "polypleat"
item_state = "rainbow"
body_parts_covered = CHEST|GROIN|ARMS
- mutantrace_variation = NONE
poly_colors = list("#8CC6FF", "#808080", "#FF3535")
diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm
index 4fc62893b5..8a88e99d05 100644
--- a/code/modules/clothing/under/syndicate.dm
+++ b/code/modules/clothing/under/syndicate.dm
@@ -57,8 +57,7 @@
icon_state = "tactifool"
item_state = "bl_suit"
has_sensor = TRUE
- mutantrace_variation = NONE
- armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
+ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
/obj/item/clothing/under/syndicate/sniper
name = "Tactical turtleneck suit"
@@ -87,7 +86,7 @@
desc = "With a suit lined with this many pockets, you are ready to operate."
icon_state = "syndicate_combat"
can_adjust = FALSE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
/obj/item/clothing/under/syndicate/rus_army
name = "advanced military tracksuit"
@@ -106,5 +105,5 @@
has_sensor = NO_SENSORS
armor = list("melee" = 15, "bullet" = 5, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40)
alt_covers_chest = TRUE
- mutantrace_variation = NONE
+ mutantrace_variation = USE_TAUR_CLIP_MASK
diff --git a/code/modules/events/operative.dm b/code/modules/events/operative.dm
index 7fca4188b7..6ef693a886 100644
--- a/code/modules/events/operative.dm
+++ b/code/modules/events/operative.dm
@@ -19,6 +19,8 @@
var/list/spawn_locs = list()
for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list)
spawn_locs += L.loc
+ for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list)
+ spawn_locs += L.loc
if(!spawn_locs.len)
return MAP_ERROR
diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm
index c27393f83c..d5ab5c6f9c 100644
--- a/code/modules/events/pirates.dm
+++ b/code/modules/events/pirates.dm
@@ -58,6 +58,9 @@
var/list/candidates = pollGhostCandidates("Do you wish to be considered for pirate crew?", ROLE_TRAITOR)
shuffle_inplace(candidates)
+ if(!SSmapping.empty_space)
+ SSmapping.empty_space = SSmapping.add_new_zlevel("Empty Area For Pirates", list(ZTRAIT_LINKAGE = SELFLOOPING))
+
var/datum/map_template/shuttle/pirate/default/ship = new
var/x = rand(TRANSITIONEDGE,world.maxx - TRANSITIONEDGE - ship.width)
var/y = rand(TRANSITIONEDGE,world.maxy - TRANSITIONEDGE - ship.height)
diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm
index 8fe68f509b..ba14a5307f 100644
--- a/code/modules/events/sentience.dm
+++ b/code/modules/events/sentience.dm
@@ -9,6 +9,8 @@
role_name = "random animal"
var/animals = 1
var/one = "one"
+ /// Blacklisted mob_biotypes - Hey can we like, not have player controlled megafauna?
+ var/blacklisted_biotypes = MOB_EPIC
fakeable = TRUE
/datum/round_event/ghost_role/sentience/announce(fake)
@@ -33,6 +35,8 @@
var/turf/T = get_turf(L)
if(!T || !is_station_level(T.z))
continue
+ if(L.mob_biotypes & blacklisted_biotypes) //hey can you don't
+ continue
if(!(L in GLOB.player_list) && !L.mind)
potential += L
@@ -50,7 +54,7 @@
SG.transfer_ckey(SA, FALSE)
- SA.grant_all_languages(TRUE)
+ SA.grant_all_languages(TRUE, FALSE, FALSE)
SA.sentience_act()
diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm
index 3b8f8de359..60f2aef629 100644
--- a/code/modules/events/spacevine.dm
+++ b/code/modules/events/spacevine.dm
@@ -22,7 +22,7 @@
if(turfs.len) //Pick a turf to spawn at if we can
var/turf/T = pick(turfs)
- new /datum/spacevine_controller(T) //spawn a controller at turf
+ new /datum/spacevine_controller(T, pick(subtypesof(/datum/spacevine_mutation)), rand(30,100), rand(5,10), src) //spawn a controller at turf with randomized stats and a single random mutation
/datum/spacevine_mutation
@@ -227,13 +227,13 @@
quality = NEGATIVE
/datum/spacevine_mutation/thorns/on_cross(obj/structure/spacevine/holder, mob/living/crosser)
- if(prob(severity) && istype(crosser) && !isvineimmune(holder))
+ if(prob(severity) && istype(crosser) && !isvineimmune(crosser))
var/mob/living/M = crosser
M.adjustBruteLoss(5)
to_chat(M, "You cut yourself on the thorny vines. ")
/datum/spacevine_mutation/thorns/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage)
- if(prob(severity) && istype(hitter) && !isvineimmune(holder))
+ if(prob(severity) && istype(hitter) && !isvineimmune(hitter))
var/mob/living/M = hitter
M.adjustBruteLoss(5)
to_chat(M, "You cut yourself on the thorny vines. ")
@@ -251,7 +251,7 @@
holder.obj_integrity = holder.max_integrity
/datum/spacevine_mutation/woodening/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage)
- if(I.get_sharpness())
+ if(I?.get_sharpness())
. = expected_damage * 0.5
else
. = expected_damage
@@ -344,16 +344,17 @@
switch(damage_type)
if(BRUTE)
if(damage_amount)
- playsound(src, 'sound/weapons/slash.ogg', 50, 1)
+ playsound(src, 'sound/weapons/slash.ogg', 50, TRUE)
else
- playsound(src, 'sound/weapons/tap.ogg', 50, 1)
+ playsound(src, 'sound/weapons/tap.ogg', 50, TRUE)
if(BURN)
- playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
+ playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE)
-/obj/structure/spacevine/Crossed(mob/crosser)
- if(isliving(crosser))
- for(var/datum/spacevine_mutation/SM in mutations)
- SM.on_cross(src, crosser)
+/obj/structure/spacevine/Crossed(atom/movable/AM)
+ if(!isliving(AM))
+ return
+ for(var/datum/spacevine_mutation/SM in mutations)
+ SM.on_cross(src, AM)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/structure/spacevine/attack_hand(mob/user)
@@ -378,10 +379,9 @@
var/list/vine_mutations_list
var/mutativeness = 1
-/datum/spacevine_controller/New(turf/location, list/muts, potency, production)
+/datum/spacevine_controller/New(turf/location, list/muts, potency, production, datum/round_event/event = null)
vines = list()
growth_queue = list()
- spawn_spacevine_piece(location, null, muts)
START_PROCESSING(SSobj, src)
vine_mutations_list = list()
init_subtypes(/datum/spacevine_mutation/, vine_mutations_list)
@@ -428,6 +428,7 @@
for(var/datum/spacevine_mutation/SM in SV.mutations)
SM.on_birth(SV)
location.Entered(SV)
+ return SV
/datum/spacevine_controller/proc/VineDestroyed(obj/structure/spacevine/S)
S.master = null
@@ -531,14 +532,13 @@
qdel(src)
/obj/structure/spacevine/CanPass(atom/movable/mover, turf/target)
+ . = ..()
if(isvineimmune(mover))
- . = TRUE
- else
- . = ..()
+ return TRUE
/proc/isvineimmune(atom/A)
- . = FALSE
if(isliving(A))
var/mob/living/M = A
if(("vines" in M.faction) || ("plants" in M.faction))
- . = TRUE
+ return TRUE
+ return FALSE
\ No newline at end of file
diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm
index b7f8b8f911..1b4716b407 100644
--- a/code/modules/events/wormholes.dm
+++ b/code/modules/events/wormholes.dm
@@ -23,6 +23,9 @@
/datum/round_event/wormholes/start()
for(var/turf/open/floor/T in world)
if(is_station_level(T.z))
+ var/area/A = get_area(T)
+ if(A.outdoors)
+ continue
pick_turfs += T
for(var/i = 1, i <= number_of_wormholes, i++)
@@ -57,7 +60,7 @@
if(!(ismecha(M) && mech_sized))
return
- if(ismovableatom(M))
+ if(ismovable(M))
if(GLOB.portals.len)
var/obj/effect/portal/P = pick(GLOB.portals)
if(P && isturf(P.loc))
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index ea475b28d6..0c2cbc0c67 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -701,6 +701,9 @@ GLOBAL_LIST_INIT(hallucination_list, list(
target.client.images |= speech_overlay
sleep(30)
target.client.images.Remove(speech_overlay)
+ var/spans = list(person.speech_span)
+ if (target.client?.prefs.chat_on_map)
+ target.create_chat_message(person, understood_language, chosen, spans, 0)
else // Radio talk
var/chosen = specific_message
if(!chosen)
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 95b9f92873..ccce186304 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -396,6 +396,16 @@
list_reagents = list(/datum/reagent/consumable/orangejuice = 100)
foodtype = FRUIT| BREAKFAST
+/obj/item/reagent_containers/food/drinks/bottle/bio_carton
+ name = "small carton box"
+ desc = "A small biodegradable carton box made from plant biomatter."
+ icon_state = "eco_box"
+ item_state = "carton"
+ lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+ volume = 50
+ isGlass = FALSE
+
/obj/item/reagent_containers/food/drinks/bottle/cream
name = "milk cream"
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm
index 1342b1fcbf..203eb3eef6 100644
--- a/code/modules/food_and_drinks/food.dm
+++ b/code/modules/food_and_drinks/food.dm
@@ -25,7 +25,7 @@
pixel_y = rand(-5, 5)
/obj/item/reagent_containers/food/proc/adjust_food_quality(new_quality)
- food_quality = CLAMP(new_quality,0,100)
+ food_quality = clamp(new_quality,0,100)
/obj/item/reagent_containers/food/proc/checkLiked(var/fraction, mob/M)
if(last_check_time + 50 < world.time)
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index a485f0c864..ccac1d4a77 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -260,6 +260,7 @@ All foods are distributed among various categories. Use common sense.
slice.desc = "[desc]"
if(foodtype != initial(foodtype))
slice.foodtype = foodtype //if something happens that overrode our food type, make sure the slice carries that over
+ slice.adjust_food_quality(food_quality)
/obj/item/reagent_containers/food/snacks/proc/generate_trash(atom/location)
if(trash)
diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm
index d44f859823..7f75a93464 100644
--- a/code/modules/food_and_drinks/food/snacks/meat.dm
+++ b/code/modules/food_and_drinks/food/snacks/meat.dm
@@ -47,6 +47,7 @@
slice.name = "raw [subjectname] cutlet"
else if(subjectjob)
slice.name = "raw [subjectjob] cutlet"
+ slice.adjust_food_quality(food_quality)
/obj/item/reagent_containers/food/snacks/meat/slab/human/initialize_cooked_food(obj/item/reagent_containers/food/snacks/meat/S, cooking_efficiency)
..()
diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm
index 7e831b6cd6..4e6be19488 100644
--- a/code/modules/food_and_drinks/food/snacks_meat.dm
+++ b/code/modules/food_and_drinks/food/snacks_meat.dm
@@ -57,7 +57,6 @@
/obj/item/reagent_containers/food/snacks/sushi_basic
name = "funa hosomaki"
desc = "A small cylindrical kudzu skin, filled with rice and fish."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_basic"
bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2)
list_reagents = list(/datum/reagent/consumable/nutriment = 4)
@@ -69,7 +68,6 @@
/obj/item/reagent_containers/food/snacks/sushi_adv
name = "funa nigiri"
desc = "A peace of carp lightly placed on some rice."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_adv"
bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2)
list_reagents = list(/datum/reagent/consumable/nutriment = 6)
@@ -81,7 +79,6 @@
/obj/item/reagent_containers/food/snacks/sushi_pro
name = "funa nigiri"
desc = "A well prepared peace of the best of the carp fillet placed on rice. Looks fancy and fresh!"
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_pro"
bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
@@ -222,36 +219,6 @@
tastes = list("meat" = 1, "onions" = 1, "garlic" = 1)
foodtype = MEAT
-/obj/item/reagent_containers/food/snacks/monkeycube
- name = "monkey cube"
- desc = "Just add water!"
- icon_state = "monkeycube"
- bitesize = 12
- list_reagents = list(/datum/reagent/consumable/nutriment = 2)
- filling_color = "#CD853F"
- tastes = list("the jungle" = 1, "bananas" = 1)
- foodtype = MEAT | SUGAR
-
-/obj/item/reagent_containers/food/snacks/monkeycube/On_Consume(mob/living/carbon/M)
- if(iscarbon(M))
- M.visible_message("[src] bursts out of [M]! ")
- M.emote("scream")
- M.DefaultCombatKnockdown(40)
- M.adjustBruteLoss(60)
- Expand()
- return TRUE
- return ..()
-
-/obj/item/reagent_containers/food/snacks/monkeycube/proc/Expand()
- var/mob/spammer = get_mob_by_key(fingerprintslast)
- var/mob/living/carbon/monkey/bananas = new(drop_location(), TRUE, spammer)
- if (!QDELETED(bananas))
- visible_message("[src] expands! ")
- bananas.log_message("Spawned via [src] at [AREACOORD(src)], Last attached mob: [key_name(spammer)].", LOG_ATTACK)
- else if (!spammer) // Visible message in case there are no fingerprints
- visible_message("[src] fails to expand! ")
- qdel(src)
-
/obj/item/reagent_containers/food/snacks/enchiladas
name = "enchiladas"
desc = "Viva La Mexico!"
@@ -372,3 +339,76 @@
bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("meat" = 3, "smokey sauce" = 1)
foodtype = MEAT
+
+////////////// Cubes //////////
+
+/obj/item/reagent_containers/food/snacks/cube
+ name = "debug cube"
+ desc = "Just add water!"
+ icon_state = "monkeycube"
+ bitesize = 12
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
+ filling_color = "#CD853F"
+ tastes = list("broken" = 1, "code" = 1)
+ foodtype = MEAT | SUGAR
+ var/dried_being = /mob/living/carbon/monkey //What the cube will spawn mob wise
+
+/obj/item/reagent_containers/food/snacks/cube/On_Consume(mob/living/carbon/M)
+ if(iscarbon(M))
+ M.visible_message("[src] bursts out of [M]!")
+ M.emote("scream")
+ M.DefaultCombatKnockdown(40)
+ M.adjustBruteLoss(60)
+ Expand()
+ return TRUE
+ return ..()
+
+/obj/item/reagent_containers/food/snacks/cube/proc/Expand()
+ var/mob/spammer = get_mob_by_key(fingerprintslast)
+ var/mob/living/water = new dried_being(drop_location(), TRUE, spammer)
+ if (!QDELETED(water))
+ visible_message("[src] expands! ")
+ water.log_message("Spawned via [src] at [AREACOORD(src)], Last attached mob: [key_name(spammer)].", LOG_ATTACK)
+ else if (!spammer) // Visible message in case there are no fingerprints
+ visible_message("[src] fails to expand! ")
+ qdel(src)
+
+/obj/item/reagent_containers/food/snacks/cube/monkey
+ name = "monkey cube"
+ desc = "Just add water!"
+ tastes = list("the jungle" = 1, "bananas" = 1)
+ dried_being = /mob/living/carbon/monkey
+
+/obj/item/reagent_containers/food/snacks/cube/beno
+ name = "alien drone cube"
+ desc = "Just add water and run!"
+ tastes = list("the jungle" = 1, "acid" = 1)
+ dried_being = /mob/living/carbon/alien/humanoid/drone
+
+/obj/item/reagent_containers/food/snacks/cube/goat
+ name = "goat cube"
+ tastes = list("grass" = 1)
+ dried_being = /mob/living/simple_animal/hostile/retaliate/goat
+
+/obj/item/reagent_containers/food/snacks/cube/cow
+ name = "cow cube"
+ tastes = list("milk" = 1, "beef" = 1)
+ dried_being = /mob/living/simple_animal/cow
+
+/obj/item/reagent_containers/food/snacks/cube/ape
+ name = "ape cube"
+ desc = "Don't add water."
+ tastes = list("the jungle" = 1, "bananas" = 1, "jimmies" = 1)
+ dried_being = /mob/living/simple_animal/hostile/gorilla
+
+/obj/item/reagent_containers/food/snacks/cube/egg
+//Well eggs normally are able to hatch into small birds, this one does not.
+//Also in order to have a normal egg hatch you need a hen to lay the egg that is able to hatch, meaning this one is for on-demand hen needs.
+ name = "egg cube thing"
+ desc = "Just add water, hey wait a second..."
+ icon_state = "egg"
+ filling_color = "#F0E68C"
+ cooked_type = /obj/item/reagent_containers/food/snacks/boiledegg
+ list_reagents = list(/datum/reagent/consumable/eggyolk = 5)
+ tastes = list("dried eggs" = 1, "confusion" = 1)
+ dried_being = /mob/living/simple_animal/chicken
diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm
index 6feb2df524..2463ed3ced 100644
--- a/code/modules/food_and_drinks/food/snacks_other.dm
+++ b/code/modules/food_and_drinks/food/snacks_other.dm
@@ -215,7 +215,6 @@
/obj/item/reagent_containers/food/snacks/tobiko
name = "tobiko"
desc = "Spider eggs wrapped in a thin salted Kudzu pod"
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_egg"
list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#FF3333" // R225 G051 B051
@@ -558,7 +557,6 @@
/obj/item/reagent_containers/food/snacks/riceball
name = "onigiri"
desc = "A ball of rice with some light salt and a wrap of Kudzu skin."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "riceball"
list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/sodiumchloride = 2)
tastes = list("rice" = 3, "salt" = 1)
diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm
index 3cc4cfe63f..9096429228 100644
--- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm
+++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm
@@ -136,7 +136,6 @@
/obj/item/reagent_containers/food/snacks/tuna_sandwich
name = "tuna sandwich"
desc = "Both a salad and a sandwich in one."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "tunasandwich"
trash = /obj/item/trash/plate
bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
diff --git a/code/modules/food_and_drinks/food/snacks_sushi.dm b/code/modules/food_and_drinks/food/snacks_sushi.dm
index d16ca79001..3757759daf 100644
--- a/code/modules/food_and_drinks/food/snacks_sushi.dm
+++ b/code/modules/food_and_drinks/food/snacks_sushi.dm
@@ -3,7 +3,6 @@
/obj/item/reagent_containers/food/snacks/sushi_rice
name = "Sushi Rice"
desc = "A bowl of sticky rice for making sushi."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushi_rice"
list_reagents = list(/datum/reagent/consumable/sodiumchloride = 5)
tastes = list("rice" = 5, "salt" = 1)
@@ -12,7 +11,6 @@
/obj/item/reagent_containers/food/snacks/sea_weed
name = "Sea Weed Sheet"
desc = "A thin, light salt sheet of plant mater. This is commenly used in sushi recipes,"
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sea_weed"
list_reagents = list(/datum/reagent/consumable/sodiumchloride = 2)
tastes = list("plants" = 2, "salt" = 1)
@@ -21,7 +19,6 @@
/obj/item/reagent_containers/food/snacks/tuna
name = "Canned Tuna"
desc = "A small can of tuna fish beloved by felines."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "tuna_can"
//trash = /obj/item/trash/tuna_used //I dont know if I like this idea - A Masked Cat
list_reagents = list(/datum/reagent/consumable/sodiumchloride = 5, /datum/reagent/mercury = 2)
@@ -32,7 +29,6 @@
/obj/item/reagent_containers/food/snacks/sushie_basic
name = "Funa Hosomaki"
desc = "A small cylindrical filled with rice and fish."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_basic"
bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2)
list_reagents = list(/datum/reagent/consumable/nutriment = 1)
@@ -44,7 +40,6 @@
/obj/item/reagent_containers/food/snacks/sushie_adv
name = "Funa Nigiri"
desc = "A pice of carp lightly placed on some rice."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_adv"
bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2)
list_reagents = list(/datum/reagent/consumable/nutriment = 2)
@@ -56,7 +51,6 @@
/obj/item/reagent_containers/food/snacks/sushie_pro
name = "Funa Nigiri"
desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!"
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_pro"
bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
@@ -68,7 +62,6 @@
/obj/item/reagent_containers/food/snacks/tobiko
name = "Tobiko"
desc = "Spider eggs wrapped in a thin salted Kudzu pod"
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_egg"
list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#FF3333" // R225 G051 B051
@@ -78,7 +71,6 @@
/obj/item/reagent_containers/food/snacks/riceball
name = "Onigiri"
desc = "A ball of rice with some light salt and a wrap of Kudzu skin."
- icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "riceball"
list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sodiumchloride = 2)
tastes = list("rice" = 4, "salt" = 1)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
index 68cc84c639..feba35da97 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
@@ -118,7 +118,7 @@
break
if(href_list["portion"])
- portion = CLAMP(input("How much drink do you want to dispense per glass?") as num, 0, 50)
+ portion = clamp(input("How much drink do you want to dispense per glass?") as num, 0, 50)
if(href_list["pour"] || href_list["m_pour"])
if(glasses-- <= 0)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index c94aba95b4..dcea93f06f 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -184,9 +184,9 @@
for (var/i=1 to meat_produced)
var/obj/item/reagent_containers/food/snacks/meat/slab/newmeat = new typeofmeat
- newmeat.adjust_food_quality(meat_quality)
newmeat.name = "[sourcename] [newmeat.name]"
if(istype(newmeat))
+ newmeat.adjust_food_quality(meat_quality)
newmeat.subjectname = sourcename
newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) // Thehehe. Fat guys go first
if(sourcejob)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
index 3d7341308b..2318c54508 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
@@ -78,7 +78,7 @@
playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1)
grinded -= required_grind
for(var/i = 0, i < cube_production, i++)
- new /obj/item/reagent_containers/food/snacks/monkeycube(src.loc)
+ new /obj/item/reagent_containers/food/snacks/cube/monkey(src.loc)
to_chat(user, "The machine's display flashes that it has [grinded] monkeys worth of material left. ")
else
to_chat(user, "The machine needs at least [required_grind] monkey(s) worth of material to produce a monkey cube. It only has [grinded]. ")
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index 94c8d7219c..19ded25b08 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -125,7 +125,7 @@
return
else
bomb_timer = input(user, "Set the [bomb] timer from [BOMB_TIMER_MIN] to [BOMB_TIMER_MAX].", bomb, bomb_timer) as num
- bomb_timer = CLAMP(CEILING(bomb_timer / 2, 1), BOMB_TIMER_MIN, BOMB_TIMER_MAX)
+ bomb_timer = clamp(CEILING(bomb_timer / 2, 1), BOMB_TIMER_MIN, BOMB_TIMER_MAX)
bomb_defused = FALSE
var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds."
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm
index 90036c0e2a..f25aaab6fd 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm
@@ -68,7 +68,7 @@
/datum/reagent/consumable/sodiumchloride = 1,
/datum/reagent/consumable/blackpepper = 1,
/obj/item/reagent_containers/glass/bowl = 1,
- /obj/item/reagent_containers/food/snacks/monkeycube = 1,
+ /obj/item/reagent_containers/food/snacks/cube/monkey = 1,
/obj/item/reagent_containers/food/snacks/grown/banana = 1
)
result = /obj/item/reagent_containers/food/snacks/soup/monkeysdelight
diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm
index 74432c7cbe..6d9e141309 100644
--- a/code/modules/goonchat/browserOutput.dm
+++ b/code/modules/goonchat/browserOutput.dm
@@ -138,7 +138,7 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
/datum/chatOutput/proc/setMusicVolume(volume = "")
if(volume)
- adminMusicVolume = CLAMP(text2num(volume), 0, 100)
+ adminMusicVolume = clamp(text2num(volume), 0, 100)
//Sends client connection details to the chat to handle and save
/datum/chatOutput/proc/sendClientData()
diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm
index 7c3754b616..09dcd7fa64 100644
--- a/code/modules/holodeck/holo_effect.dm
+++ b/code/modules/holodeck/holo_effect.dm
@@ -62,7 +62,7 @@
s.set_up(3, 1, T)
s.start()
T.temperature = 5000
- T.hotspot_expose(50000,50000,1)
+ T.hotspot_expose(50000, 50000, TRUE, TRUE)
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index 6a3fd56208..28f3387097 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -40,14 +40,14 @@
updateUsrDialog()
/obj/machinery/biogenerator/RefreshParts()
- var/E = 0
- var/P = 0
- var/max_storage = 40
+ var/E = 0.5
+ var/P = 0.5
+ var/max_storage = 20
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
- P += B.rating
- max_storage = 40 * B.rating
+ P += B.rating * 0.5
+ max_storage = max(20 * B.rating, max_storage)
for(var/obj/item/stock_parts/manipulator/M in component_parts)
- E += M.rating
+ E += M.rating * 0.5
efficiency = E
productivity = P
max_items = max_storage
@@ -196,7 +196,7 @@
dat += "x5 "
if(ispath(D.build_path, /obj/item/stack))
dat += "x10 "
- dat += "([D.materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]/efficiency]) "
+ dat += "([CEILING(D.materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]/efficiency, 1)]) "
dat += ""
else
dat += "No container inside, please insert container.
"
@@ -214,12 +214,16 @@
to_chat(usr, "The biogenerator is in the process of working. ")
return
var/S = 0
+ var/total = 0
for(var/obj/item/reagent_containers/food/snacks/grown/I in contents)
S += 5
- if(I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) < 0.1)
- points += 1*productivity
- else points += I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment)*10*productivity
+ var/nutri_amount = I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment)
+ if(nutri_amount < 0.1)
+ total += 1*productivity
+ else
+ total += nutri_amount*10*productivity
qdel(I)
+ points += round(total)
if(S)
processing = TRUE
update_icon()
@@ -235,12 +239,13 @@
/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = TRUE)
if(materials.len != 1 || materials[1] != SSmaterials.GetMaterialRef(/datum/material/biomass))
return FALSE
- if (materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]*multiplier/efficiency > points)
+ var/cost = CEILING(materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]*multiplier/efficiency, 1)
+ if (cost > points)
menustat = "nopoints"
return FALSE
else
if(remove_points)
- points -= materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]*multiplier/efficiency
+ points -= cost
update_icon()
updateUsrDialog()
return TRUE
@@ -311,7 +316,7 @@
else if(href_list["create"])
var/amount = (text2num(href_list["amount"]))
//Can't be outside these (if you change this keep a sane limit)
- amount = CLAMP(amount, 1, 50)
+ amount = clamp(amount, 1, 50)
var/id = href_list["create"]
if(!stored_research.researched_designs.Find(id))
//naughty naughty
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index 1775a1f9b1..a18dbe165d 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -199,8 +199,8 @@
if(!click_params || !click_params["icon-x"] || !click_params["icon-y"])
return
//Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
- W.pixel_x = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
- W.pixel_y = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
+ W.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
+ W.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
else
return ..()
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 718033ac56..b7665d7b5d 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -928,26 +928,26 @@
/// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds.///
/obj/machinery/hydroponics/proc/adjustNutri(adjustamt)
- nutrilevel = CLAMP(nutrilevel + adjustamt, 0, maxnutri)
+ nutrilevel = clamp(nutrilevel + adjustamt, 0, maxnutri)
/obj/machinery/hydroponics/proc/adjustWater(adjustamt)
- waterlevel = CLAMP(waterlevel + adjustamt, 0, maxwater)
+ waterlevel = clamp(waterlevel + adjustamt, 0, maxwater)
if(adjustamt>0)
adjustToxic(-round(adjustamt/4))//Toxicity dilutation code. The more water you put in, the lesser the toxin concentration.
/obj/machinery/hydroponics/proc/adjustHealth(adjustamt)
if(myseed && !dead)
- plant_health = CLAMP(plant_health + adjustamt, 0, myseed.endurance)
+ plant_health = clamp(plant_health + adjustamt, 0, myseed.endurance)
/obj/machinery/hydroponics/proc/adjustToxic(adjustamt)
- toxic = CLAMP(toxic + adjustamt, 0, 100)
+ toxic = clamp(toxic + adjustamt, 0, 100)
/obj/machinery/hydroponics/proc/adjustPests(adjustamt)
- pestlevel = CLAMP(pestlevel + adjustamt, 0, 10)
+ pestlevel = clamp(pestlevel + adjustamt, 0, 10)
/obj/machinery/hydroponics/proc/adjustWeeds(adjustamt)
- weedlevel = CLAMP(weedlevel + adjustamt, 0, 10)
+ weedlevel = clamp(weedlevel + adjustamt, 0, 10)
/obj/machinery/hydroponics/proc/spawnplant() // why would you put strange reagent in a hydro tray you monster I bet you also feed them blood
var/list/livingplants = list(/mob/living/simple_animal/hostile/tree, /mob/living/simple_animal/hostile/killertomato)
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index ef2eff707f..b18f4396d6 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -392,8 +392,7 @@
/datum/plant_gene/trait/battery/on_attackby(obj/item/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user)
if(istype(I, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/C = I
- if(C.use(5))
+ if(I.use_tool(src, user, 0, 5, max_level = JOB_SKILL_EXPERT))
to_chat(user, "You add some cable to [G] and slide it inside the battery encasing. ")
var/obj/item/stock_parts/cell/potato/pocell = new /obj/item/stock_parts/cell/potato(user.loc)
pocell.icon_state = G.icon_state
diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm
index aa0e789721..5e49a32a23 100644
--- a/code/modules/hydroponics/seeds.dm
+++ b/code/modules/hydroponics/seeds.dm
@@ -211,7 +211,7 @@ obj/item/seeds/proc/is_gene_forbidden(typepath)
/// Setters procs ///
/obj/item/seeds/proc/adjust_yield(adjustamt)
if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable
- yield = CLAMP(yield + adjustamt, 0, 10)
+ yield = clamp(yield + adjustamt, 0, 10)
if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism))
yield = 1 // Mushrooms always have a minimum yield of 1.
@@ -220,39 +220,39 @@ obj/item/seeds/proc/is_gene_forbidden(typepath)
C.value = yield
/obj/item/seeds/proc/adjust_lifespan(adjustamt)
- lifespan = CLAMP(lifespan + adjustamt, 10, 100)
+ lifespan = clamp(lifespan + adjustamt, 10, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan)
if(C)
C.value = lifespan
/obj/item/seeds/proc/adjust_endurance(adjustamt)
- endurance = CLAMP(endurance + adjustamt, 10, 100)
+ endurance = clamp(endurance + adjustamt, 10, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance)
if(C)
C.value = endurance
/obj/item/seeds/proc/adjust_production(adjustamt)
if(yield != -1)
- production = CLAMP(production + adjustamt, 1, 10)
+ production = clamp(production + adjustamt, 1, 10)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production)
if(C)
C.value = production
/obj/item/seeds/proc/adjust_potency(adjustamt)
if(potency != -1)
- potency = CLAMP(potency + adjustamt, 0, 100)
+ potency = clamp(potency + adjustamt, 0, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency)
if(C)
C.value = potency
/obj/item/seeds/proc/adjust_weed_rate(adjustamt)
- weed_rate = CLAMP(weed_rate + adjustamt, 0, 10)
+ weed_rate = clamp(weed_rate + adjustamt, 0, 10)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate)
if(C)
C.value = weed_rate
/obj/item/seeds/proc/adjust_weed_chance(adjustamt)
- weed_chance = CLAMP(weed_chance + adjustamt, 0, 67)
+ weed_chance = clamp(weed_chance + adjustamt, 0, 67)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance)
if(C)
C.value = weed_chance
@@ -261,7 +261,7 @@ obj/item/seeds/proc/is_gene_forbidden(typepath)
/obj/item/seeds/proc/set_yield(adjustamt)
if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable
- yield = CLAMP(adjustamt, 0, 10)
+ yield = clamp(adjustamt, 0, 10)
if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism))
yield = 1 // Mushrooms always have a minimum yield of 1.
@@ -270,39 +270,39 @@ obj/item/seeds/proc/is_gene_forbidden(typepath)
C.value = yield
/obj/item/seeds/proc/set_lifespan(adjustamt)
- lifespan = CLAMP(adjustamt, 10, 100)
+ lifespan = clamp(adjustamt, 10, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan)
if(C)
C.value = lifespan
/obj/item/seeds/proc/set_endurance(adjustamt)
- endurance = CLAMP(adjustamt, 10, 100)
+ endurance = clamp(adjustamt, 10, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance)
if(C)
C.value = endurance
/obj/item/seeds/proc/set_production(adjustamt)
if(yield != -1)
- production = CLAMP(adjustamt, 1, 10)
+ production = clamp(adjustamt, 1, 10)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production)
if(C)
C.value = production
/obj/item/seeds/proc/set_potency(adjustamt)
if(potency != -1)
- potency = CLAMP(adjustamt, 0, 100)
+ potency = clamp(adjustamt, 0, 100)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency)
if(C)
C.value = potency
/obj/item/seeds/proc/set_weed_rate(adjustamt)
- weed_rate = CLAMP(adjustamt, 0, 10)
+ weed_rate = clamp(adjustamt, 0, 10)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate)
if(C)
C.value = weed_rate
/obj/item/seeds/proc/set_weed_chance(adjustamt)
- weed_chance = CLAMP(adjustamt, 0, 67)
+ weed_chance = clamp(adjustamt, 0, 67)
var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance)
if(C)
C.value = weed_chance
diff --git a/code/modules/instruments/instruments/item.dm b/code/modules/instruments/instruments/item.dm
index fa3e75e431..dde35a9f75 100644
--- a/code/modules/instruments/instruments/item.dm
+++ b/code/modules/instruments/instruments/item.dm
@@ -66,6 +66,11 @@
/obj/item/instrument/proc/is_tuned()
return tune_time_left > 0
+/obj/item/instrument/dropped(mob/user)
+ . = ..()
+ if((loc != user) && (user.machine == src))
+ user.set_machine(null)
+
/obj/item/instrument/interact(mob/user)
ui_interact(user)
diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm
index 67feb14457..0fb4418a30 100644
--- a/code/modules/instruments/songs/_song.dm
+++ b/code/modules/instruments/songs/_song.dm
@@ -213,7 +213,7 @@
/datum/song/proc/sanitize_tempo(new_tempo)
new_tempo = abs(new_tempo)
- return CLAMP(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS)
+ return clamp(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS)
/datum/song/proc/get_bpm()
return 600 / tempo
@@ -222,7 +222,9 @@
tempo = sanitize_tempo(600 / bpm)
/// Updates the window for our user. Override in subtypes.
-/datum/song/proc/updateDialog(mob/user)
+/datum/song/proc/updateDialog(mob/user = usr)
+ if(user.machine != src)
+ return
ui_interact(user)
/datum/song/process(wait)
@@ -242,22 +244,22 @@
cached_linear_dropoff = volume_decrease_per_decisecond
/datum/song/proc/set_volume(volume)
- src.volume = CLAMP(volume, max(0, min_volume), min(100, max_volume))
+ src.volume = clamp(volume, max(0, min_volume), min(100, max_volume))
update_sustain()
updateDialog()
/datum/song/proc/set_dropoff_volume(volume)
- sustain_dropoff_volume = CLAMP(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100)
+ sustain_dropoff_volume = clamp(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100)
update_sustain()
updateDialog()
/datum/song/proc/set_exponential_drop_rate(drop)
- sustain_exponential_dropoff = CLAMP(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX)
+ sustain_exponential_dropoff = clamp(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX)
update_sustain()
updateDialog()
/datum/song/proc/set_linear_falloff_duration(duration)
- sustain_linear_duration = CLAMP(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN)
+ sustain_linear_duration = clamp(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN)
update_sustain()
updateDialog()
@@ -277,8 +279,10 @@
// subtype for handheld instruments, like violin
/datum/song/handheld
-/datum/song/handheld/updateDialog(mob/user)
- parent.ui_interact(user || usr)
+/datum/song/handheld/updateDialog(mob/user = usr)
+ if(user.machine != src)
+ return
+ parent.ui_interact(user)
/datum/song/handheld/should_stop_playing(mob/user)
. = ..()
@@ -290,8 +294,10 @@
// subtype for stationary structures, like pianos
/datum/song/stationary
-/datum/song/stationary/updateDialog(mob/user)
- parent.ui_interact(user || usr)
+/datum/song/stationary/updateDialog(mob/user = usr)
+ if(user.machine != src)
+ return
+ parent.ui_interact(user)
/datum/song/stationary/should_stop_playing(mob/user)
. = ..()
diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm
index 873ff0e1a7..d9595797d7 100644
--- a/code/modules/instruments/songs/editor.dm
+++ b/code/modules/instruments/songs/editor.dm
@@ -230,7 +230,7 @@
else if(href_list["setnoteshift"])
var/amount = input(usr, "Set note shift", "Note Shift") as null|num
if(!isnull(amount))
- note_shift = CLAMP(amount, note_shift_min, note_shift_max)
+ note_shift = clamp(amount, note_shift_min, note_shift_max)
else if(href_list["setsustainmode"])
var/choice = input(usr, "Choose a sustain mode", "Sustain Mode") as null|anything in list("Linear", "Exponential")
diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm
index 2573da324a..5e7c5652a0 100644
--- a/code/modules/instruments/songs/play_synthesized.dm
+++ b/code/modules/instruments/songs/play_synthesized.dm
@@ -52,8 +52,8 @@
if(!num) //it's an accidental
accents[key] = oct_acc //if they misspelled it/fucked up that's on them lmao, no safety checks.
else //octave
- octaves[key] = CLAMP(num, octave_min, octave_max)
- compiled_chord += CLAMP((note_offset_lookup[key] + octaves[key] * 12 + accent_lookup[accents[key]]), key_min, key_max)
+ octaves[key] = clamp(num, octave_min, octave_max)
+ compiled_chord += clamp((note_offset_lookup[key] + octaves[key] * 12 + accent_lookup[accents[key]]), key_min, key_max)
compiled_chord += tempodiv //this goes last
if(length(compiled_chord))
compiled_chords[++compiled_chords.len] = compiled_chord
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index e144e4dbe6..ef63ba97f8 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -79,7 +79,9 @@
for(var/I in assembly_components)
var/obj/item/integrated_circuit/IC = I
- . += IC.external_examine(user)
+ var/text = IC.external_examine(user)
+ if(text)
+ . += text
if(opened)
interact(user)
diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm
index 0709b179d2..f90b584d76 100644
--- a/code/modules/integrated_electronics/core/integrated_circuit.dm
+++ b/code/modules/integrated_electronics/core/integrated_circuit.dm
@@ -36,7 +36,9 @@ a creative player the means to solve many problems. Circuits are held inside an
/obj/item/integrated_circuit/examine(mob/user)
interact(user)
. = ..()
- . += external_examine(user)
+ var/text = external_examine(user)
+ if(text)
+ . += text
// Can be called via electronic_assembly/attackby()
/obj/item/integrated_circuit/proc/additem(var/obj/item/I, var/mob/living/user)
@@ -57,7 +59,7 @@ a creative player the means to solve many problems. Circuits are held inside an
var/datum/integrated_io/activate/A = activators[k]
if(A.linked.len)
to_chat(user, "The '[A]' is connected to [A.get_linked_to_desc()].")
- any_examine(user)
+ to_chat(user, any_examine(user))
interact(user)
// This should be used when someone is examining from an 'outside' perspective, e.g. reading a screen or LED.
diff --git a/code/modules/integrated_electronics/core/special_pins/index_pin.dm b/code/modules/integrated_electronics/core/special_pins/index_pin.dm
index 06267eec61..e904c4c6d0 100644
--- a/code/modules/integrated_electronics/core/special_pins/index_pin.dm
+++ b/code/modules/integrated_electronics/core/special_pins/index_pin.dm
@@ -14,7 +14,7 @@
new_data = 0
if(isnum(new_data))
- data = CLAMP(round(new_data), 0, IC_MAX_LIST_LENGTH)
+ data = clamp(round(new_data), 0, IC_MAX_LIST_LENGTH)
holder.on_data_written()
/datum/integrated_io/index/display_pin_type()
diff --git a/code/modules/integrated_electronics/subtypes/atmospherics.dm b/code/modules/integrated_electronics/subtypes/atmospherics.dm
index 6b4f46f83d..219e30c57f 100644
--- a/code/modules/integrated_electronics/subtypes/atmospherics.dm
+++ b/code/modules/integrated_electronics/subtypes/atmospherics.dm
@@ -308,7 +308,7 @@ obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir()
/obj/item/integrated_circuit/atmospherics/pump/filter/on_data_written()
var/amt = get_pin_data(IC_INPUT, 5)
- target_pressure = CLAMP(amt, 0, PUMP_MAX_PRESSURE)
+ target_pressure = clamp(amt, 0, PUMP_MAX_PRESSURE)
/obj/item/integrated_circuit/atmospherics/pump/filter/do_work()
activate_pin(2)
diff --git a/code/modules/integrated_electronics/subtypes/data_transfer.dm b/code/modules/integrated_electronics/subtypes/data_transfer.dm
index 8e1c715d83..8db1db4e00 100644
--- a/code/modules/integrated_electronics/subtypes/data_transfer.dm
+++ b/code/modules/integrated_electronics/subtypes/data_transfer.dm
@@ -125,7 +125,7 @@
/obj/item/integrated_circuit/transfer/pulsedemultiplexer/do_work()
var/output_index = get_pin_data(IC_INPUT, 1)
- if(output_index == CLAMP(output_index, 1, number_of_pins))
+ if(output_index == clamp(output_index, 1, number_of_pins))
activate_pin(round(output_index + 1 ,1))
/obj/item/integrated_circuit/transfer/pulsedemultiplexer/medium
diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm
index 0be6fd8686..a0608bb5ed 100644
--- a/code/modules/integrated_electronics/subtypes/input.dm
+++ b/code/modules/integrated_electronics/subtypes/input.dm
@@ -389,8 +389,8 @@
activate_pin(3)
return
var/turf/T = get_turf(assembly)
- var/target_x = CLAMP(get_pin_data(IC_INPUT, 1), 0, world.maxx)
- var/target_y = CLAMP(get_pin_data(IC_INPUT, 2), 0, world.maxy)
+ var/target_x = clamp(get_pin_data(IC_INPUT, 1), 0, world.maxx)
+ var/target_y = clamp(get_pin_data(IC_INPUT, 2), 0, world.maxy)
var/turf/A = locate(target_x, target_y, T.z)
set_pin_data(IC_OUTPUT, 1, null)
if(!A || !(A in view(T)))
@@ -532,7 +532,7 @@
var/rad = get_pin_data(IC_INPUT, 2)
if(isnum(rad))
- rad = CLAMP(rad, 0, 8)
+ rad = clamp(rad, 0, 8)
radius = rad
/obj/item/integrated_circuit/input/advanced_locator_list/do_work()
@@ -594,7 +594,7 @@
/obj/item/integrated_circuit/input/advanced_locator/on_data_written()
var/rad = get_pin_data(IC_INPUT, 2)
if(isnum(rad))
- rad = CLAMP(rad, 0, 8)
+ rad = clamp(rad, 0, 8)
radius = rad
/obj/item/integrated_circuit/input/advanced_locator/do_work()
@@ -865,7 +865,7 @@
var/translated = FALSE
if(speaker && message)
if(raw_message)
- if(message_langs != get_default_language())
+ if(message_langs != get_selected_language())
translated = TRUE
set_pin_data(IC_OUTPUT, 1, speaker.GetVoice())
set_pin_data(IC_OUTPUT, 2, raw_message)
diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm
index d1cd852651..fd4e6abfc5 100644
--- a/code/modules/integrated_electronics/subtypes/manipulation.dm
+++ b/code/modules/integrated_electronics/subtypes/manipulation.dm
@@ -236,7 +236,7 @@
var/mode = get_pin_data(IC_INPUT, 2)
switch(ord)
if(1)
- mode = CLAMP(mode, GRAB_PASSIVE, max_grab)
+ mode = clamp(mode, GRAB_PASSIVE, max_grab)
if(AM)
if(check_target(AM, exclude_contents = TRUE))
acting_object.investigate_log("grabbed ([AM]) using [src].", INVESTIGATE_CIRCUIT)
@@ -329,9 +329,9 @@
// If the item is in a grabber circuit we'll update the grabber's outputs after we've thrown it.
var/obj/item/integrated_circuit/manipulation/grabber/G = A.loc
- var/x_abs = CLAMP(T.x + target_x_rel, 0, world.maxx)
- var/y_abs = CLAMP(T.y + target_y_rel, 0, world.maxy)
- var/range = round(CLAMP(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1)
+ var/x_abs = clamp(T.x + target_x_rel, 0, world.maxx)
+ var/y_abs = clamp(T.y + target_y_rel, 0, world.maxy)
+ var/range = round(clamp(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1)
//remove damage
A.throwforce = 0
A.embedding = list("embed_chance" = 0)
@@ -447,7 +447,7 @@
if(!S)
activate_pin(4)
return
- if(materials.insert_item(S, CLAMP(get_pin_data(IC_INPUT, 2),0,100), multiplier = 1) )
+ if(materials.insert_item(S, clamp(get_pin_data(IC_INPUT, 2),0,100), multiplier = 1) )
AfterMaterialInsert()
activate_pin(3)
else
@@ -458,7 +458,7 @@
for(var/I in 1 to mtypes.len)
var/datum/material/M = materials.materials[mtypes[I]]
if(M)
- var/U = CLAMP(get_pin_data(IC_INPUT, I+2),-100000,100000)
+ var/U = clamp(get_pin_data(IC_INPUT, I+2),-100000,100000)
if(!U)
continue
if(!mt) //Invalid input
diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm
index 6005709dde..47b6e151cb 100644
--- a/code/modules/integrated_electronics/subtypes/output.dm
+++ b/code/modules/integrated_electronics/subtypes/output.dm
@@ -112,7 +112,7 @@
var/brightness = get_pin_data(IC_INPUT, 2)
if(new_color && isnum(brightness))
- brightness = CLAMP(brightness, 0, 10)
+ brightness = clamp(brightness, 0, 10)
light_rgb = new_color
light_brightness = brightness
@@ -151,7 +151,7 @@
var/selected_sound = sounds[ID]
if(!selected_sound)
return
- vol = CLAMP(vol ,0 , 100)
+ vol = clamp(vol ,0 , 100)
playsound(get_turf(src), selected_sound, vol, freq, -1)
var/atom/A = get_object()
A.investigate_log("played a sound ([selected_sound]) as [type].", INVESTIGATE_CIRCUIT)
diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm
index 0fc9f58db8..663ba9fe16 100644
--- a/code/modules/integrated_electronics/subtypes/reagents.dm
+++ b/code/modules/integrated_electronics/subtypes/reagents.dm
@@ -94,7 +94,7 @@
else
direction_mode = SYRINGE_INJECT
if(isnum(new_amount))
- new_amount = CLAMP(new_amount, 0, volume)
+ new_amount = clamp(new_amount, 0, volume)
transfer_amount = new_amount
@@ -222,7 +222,7 @@
else
direction_mode = SYRINGE_INJECT
if(isnum(new_amount))
- new_amount = CLAMP(new_amount, 0, 50)
+ new_amount = clamp(new_amount, 0, 50)
transfer_amount = new_amount
/obj/item/integrated_circuit/reagent/pump/do_work()
@@ -468,7 +468,7 @@
else
direction_mode = SYRINGE_INJECT
if(isnum(new_amount))
- new_amount = CLAMP(new_amount, 0, 50)
+ new_amount = clamp(new_amount, 0, 50)
transfer_amount = new_amount
/obj/item/integrated_circuit/reagent/filter/do_work()
diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm
index d0c47f0950..5dc866c556 100644
--- a/code/modules/integrated_electronics/subtypes/smart.dm
+++ b/code/modules/integrated_electronics/subtypes/smart.dm
@@ -57,8 +57,8 @@
activate_pin(3)
return
var/turf/T = get_turf(assembly)
- var/target_x = CLAMP(get_pin_data(IC_INPUT, 1), 0, world.maxx)
- var/target_y = CLAMP(get_pin_data(IC_INPUT, 2), 0, world.maxy)
+ var/target_x = clamp(get_pin_data(IC_INPUT, 1), 0, world.maxx)
+ var/target_y = clamp(get_pin_data(IC_INPUT, 2), 0, world.maxy)
var/turf/A = locate(target_x, target_y, T.z)
set_pin_data(IC_OUTPUT, 1, null)
if(!A||A==T)
diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm
index 1f1d5444bb..cae43718c2 100644
--- a/code/modules/integrated_electronics/subtypes/time.dm
+++ b/code/modules/integrated_electronics/subtypes/time.dm
@@ -64,7 +64,7 @@
/obj/item/integrated_circuit/time/delay/custom/do_work()
var/delay_input = get_pin_data(IC_INPUT, 1)
if(delay_input && isnum(delay_input) )
- var/new_delay = CLAMP(delay_input ,1 ,36000) //An hour.
+ var/new_delay = clamp(delay_input ,1 ,36000) //An hour.
delay = new_delay
..()
@@ -119,7 +119,7 @@
/obj/item/integrated_circuit/time/ticker/custom/on_data_written()
var/delay_input = get_pin_data(IC_INPUT, 2)
if(delay_input && isnum(delay_input) )
- var/new_delay = CLAMP(delay_input ,1 ,1 HOURS)
+ var/new_delay = clamp(delay_input ,1 ,1 HOURS)
delay = new_delay
..()
diff --git a/code/modules/integrated_electronics/subtypes/trig.dm b/code/modules/integrated_electronics/subtypes/trig.dm
index cefa25e945..75580911c3 100644
--- a/code/modules/integrated_electronics/subtypes/trig.dm
+++ b/code/modules/integrated_electronics/subtypes/trig.dm
@@ -71,7 +71,7 @@
var/result = null
var/A = get_pin_data(IC_INPUT, 1)
if(!isnull(A))
- result = TAN(A)
+ result = tan(A)
set_pin_data(IC_OUTPUT, 1, result)
push_data()
diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm
index 02340970af..2f6a2cd841 100644
--- a/code/modules/integrated_electronics/subtypes/weaponized.dm
+++ b/code/modules/integrated_electronics/subtypes/weaponized.dm
@@ -102,8 +102,8 @@
yo.data = round(yo.data, 1)
var/turf/T = get_turf(assembly)
- var/target_x = CLAMP(T.x + xo.data, 0, world.maxx)
- var/target_y = CLAMP(T.y + yo.data, 0, world.maxy)
+ var/target_x = clamp(T.x + xo.data, 0, world.maxx)
+ var/target_y = clamp(T.y + yo.data, 0, world.maxy)
assembly.visible_message("[assembly] fires [installed_gun]! ")
shootAt(locate(target_x, target_y, T.z))
@@ -191,7 +191,7 @@
var/datum/integrated_io/detonation_time = inputs[1]
var/dt
if(isnum(detonation_time.data) && detonation_time.data > 0)
- dt = CLAMP(detonation_time.data, 1, 12)*10
+ dt = clamp(detonation_time.data, 1, 12)*10
else
dt = 15
addtimer(CALLBACK(attached_grenade, /obj/item/grenade.proc/prime), dt)
@@ -293,9 +293,9 @@
// If the item is in a grabber circuit we'll update the grabber's outputs after we've thrown it.
var/obj/item/integrated_circuit/manipulation/grabber/G = A.loc
- var/x_abs = CLAMP(T.x + target_x_rel, 0, world.maxx)
- var/y_abs = CLAMP(T.y + target_y_rel, 0, world.maxy)
- var/range = round(CLAMP(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1)
+ var/x_abs = clamp(T.x + target_x_rel, 0, world.maxx)
+ var/y_abs = clamp(T.y + target_y_rel, 0, world.maxy)
+ var/range = round(clamp(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1)
assembly.visible_message("\The [assembly] has thrown [A]! ")
log_attack("[assembly] [REF(assembly)] has thrown [A] with lethal force.")
A.forceMove(drop_location())
@@ -324,7 +324,7 @@
/obj/item/integrated_circuit/weaponized/stun/do_work()
- var/stunforce = CLAMP(get_pin_data(IC_INPUT, 1),1,70)
+ var/stunforce = clamp(get_pin_data(IC_INPUT, 1),1,70)
var/mob/living/L = assembly.loc
if(attempt_stun(L,stunforce))
activate_pin(2)
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index ee441c21f7..e10f009cec 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -66,6 +66,11 @@
// How much threat this job is worth in dynamic. Is subtracted if the player's not an antag, added if they are.
var/threat = 0
+ /// Starting skill levels.
+ var/list/starting_skills
+ /// Skill affinities to set
+ var/list/skill_affinities
+
//Only override this proc
//H is usually a human unless an /equip override transformed it
/datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE)
@@ -142,7 +147,6 @@
return TRUE //Available in 0 days = available right now = player is old enough to play.
return FALSE
-
/datum/job/proc/available_in_days(client/C)
if(!C)
return 0
@@ -166,6 +170,17 @@
/datum/job/proc/radio_help_message(mob/M)
to_chat(M, "Prefix your message with :h to speak on your department's radio. To see other prefixes, look closely at your headset. ")
+/datum/job/proc/standard_assign_skills(datum/mind/M)
+ if(!starting_skills)
+ return
+ for(var/skill in starting_skills)
+ M.skill_holder.boost_skill_value_to(skill, starting_skills[skill], TRUE) //silent
+ // do wipe affinities though
+ M.skill_holder.skill_affinities = list()
+ for(var/skill in skill_affinities)
+ M.skill_holder.skill_affinities[skill] = skill_affinities[skill]
+ UNSETEMPTY(M.skill_holder.skill_affinities) //if we didn't set any.
+
/datum/outfit/job
name = "Standard Gear"
diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm
index efe574ab66..1395b90b39 100644
--- a/code/modules/jobs/job_types/ai.dm
+++ b/code/modules/jobs/job_types/ai.dm
@@ -17,6 +17,8 @@
var/do_special_check = TRUE
threat = 5
+ starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC))
+
/datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null)
if(visualsOnly)
CRASH("dynamic preview is unsupported")
diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm
index 019e50799e..42c6afaed8 100644
--- a/code/modules/jobs/job_types/atmospheric_technician.dm
+++ b/code/modules/jobs/job_types/atmospheric_technician.dm
@@ -5,7 +5,7 @@
department_flag = ENGSEC
faction = "Station"
total_positions = 3
- spawn_positions = 2
+ spawn_positions = 3
supervisors = "the chief engineer"
selection_color = "#ff9b3d"
exp_requirements = 60
@@ -17,6 +17,10 @@
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ENGINE,
ACCESS_ENGINE_EQUIP, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM)
+
+ starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC))
+ skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO)
+
display_order = JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN
threat = 0.5
diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm
index 44b0e90ec8..571785526b 100644
--- a/code/modules/jobs/job_types/chemist.dm
+++ b/code/modules/jobs/job_types/chemist.dm
@@ -19,6 +19,9 @@
display_order = JOB_DISPLAY_ORDER_CHEMIST
threat = 1.5
+ starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL)
+ skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL)
+
/datum/outfit/job/chemist
name = "Chemist"
jobtype = /datum/job/chemist
diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm
index 0d70e872ac..bd4732f3c3 100644
--- a/code/modules/jobs/job_types/chief_engineer.dm
+++ b/code/modules/jobs/job_types/chief_engineer.dm
@@ -27,6 +27,9 @@
ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT,
ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
+ starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED))
+ skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO)
+
display_order = JOB_DISPLAY_ORDER_CHIEF_ENGINEER
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity)
threat = 2
diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm
index 8dd7fafab3..478c33551d 100644
--- a/code/modules/jobs/job_types/chief_medical_officer.dm
+++ b/code/modules/jobs/job_types/chief_medical_officer.dm
@@ -29,6 +29,9 @@
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
threat = 2
+ starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL)
+ skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL)
+
/datum/outfit/job/cmo
name = "Chief Medical Officer"
jobtype = /datum/job/cmo
diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm
index d73d909f4f..440675c73c 100644
--- a/code/modules/jobs/job_types/curator.dm
+++ b/code/modules/jobs/job_types/curator.dm
@@ -41,4 +41,4 @@
if(visualsOnly)
return
- H.grant_all_languages(omnitongue=TRUE)
+ H.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_CURATOR)
diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm
index f84bd0d8d6..d88d888aec 100644
--- a/code/modules/jobs/job_types/cyborg.dm
+++ b/code/modules/jobs/job_types/cyborg.dm
@@ -12,6 +12,8 @@
exp_requirements = 120
exp_type = EXP_TYPE_CREW
+ starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC))
+
display_order = JOB_DISPLAY_ORDER_CYBORG
/datum/job/cyborg/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, datum/outfit/outfit_override = null, client/preference_source = null)
diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm
index 2e8b18d772..4fb989f6e8 100644
--- a/code/modules/jobs/job_types/geneticist.dm
+++ b/code/modules/jobs/job_types/geneticist.dm
@@ -19,6 +19,8 @@
display_order = JOB_DISPLAY_ORDER_GENETICIST
threat = 1.5
+ starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL)
+
/datum/outfit/job/geneticist
name = "Geneticist"
jobtype = /datum/job/geneticist
diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm
index 3eaa2ae10a..0e8b2e645b 100644
--- a/code/modules/jobs/job_types/medical_doctor.dm
+++ b/code/modules/jobs/job_types/medical_doctor.dm
@@ -17,6 +17,9 @@
display_order = JOB_DISPLAY_ORDER_MEDICAL_DOCTOR
threat = 0.5
+ starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL)
+ skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL)
+
/datum/outfit/job/doctor
name = "Medical Doctor"
jobtype = /datum/job/doctor
diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm
index df6e1431ae..e8098daddc 100644
--- a/code/modules/jobs/job_types/paramedic.dm
+++ b/code/modules/jobs/job_types/paramedic.dm
@@ -19,6 +19,9 @@
threat = 0.5
+ starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL)
+ skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL)
+
/datum/outfit/job/paramedic
name = "Paramedic"
jobtype = /datum/job/paramedic
diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm
index f9f1d20d3b..d9e891f057 100644
--- a/code/modules/jobs/job_types/roboticist.dm
+++ b/code/modules/jobs/job_types/roboticist.dm
@@ -16,6 +16,10 @@
access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_XENOBIOLOGY, ACCESS_GENETICS)
minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM)
+ starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED))
+ skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO)
+
+
display_order = JOB_DISPLAY_ORDER_ROBOTICIST
threat = 1
diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm
index 66ddc90e9b..c5280d72db 100644
--- a/code/modules/jobs/job_types/station_engineer.dm
+++ b/code/modules/jobs/job_types/station_engineer.dm
@@ -18,6 +18,9 @@
minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
+ starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED))
+ skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO)
+
display_order = JOB_DISPLAY_ORDER_STATION_ENGINEER
threat = 1
diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm
index 4ba65dff59..78f0ba4272 100644
--- a/code/modules/jobs/job_types/virologist.dm
+++ b/code/modules/jobs/job_types/virologist.dm
@@ -20,6 +20,9 @@
threat = 1.5
+ starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL)
+ skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL)
+
/datum/outfit/job/virologist
name = "Virologist"
jobtype = /datum/job/virologist
diff --git a/code/modules/language/codespeak.dm b/code/modules/language/codespeak.dm
index be325d14b0..5d658b1fce 100644
--- a/code/modules/language/codespeak.dm
+++ b/code/modules/language/codespeak.dm
@@ -46,7 +46,7 @@
return
to_chat(user, "You start skimming through [src], and suddenly your mind is filled with codewords and responses. ")
- user.grant_language(/datum/language/codespeak)
+ user.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND)
use_charge(user)
@@ -65,7 +65,7 @@
M.visible_message("[user] beats [M] over the head with [src]! ", "[user] beats you over the head with [src]! ", "You hear smacking. ")
else
M.visible_message("[user] teaches [M] by beating [M.p_them()] over the head with [src]! ", "As [user] hits you with [src], codewords and responses flow through your mind. ", "You hear smacking. ")
- M.grant_language(/datum/language/codespeak)
+ M.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND)
use_charge(user)
/obj/item/codespeak_manual/proc/use_charge(mob/user)
diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm
index b307e66b39..6e3d27f2b8 100644
--- a/code/modules/language/language_holder.dm
+++ b/code/modules/language/language_holder.dm
@@ -1,149 +1,332 @@
-/datum/language_holder
- var/list/languages = list(/datum/language/common)
- var/list/shadow_languages = list()
- var/only_speaks_language = null
- var/selected_default_language = null
- var/datum/language_menu/language_menu
+/*!Language holders will either exist in an atom/movable or a mind. Creation of language holders happens
+automatically when they are needed, for example when something tries to speak.
+Where a mind is available, the mind language holder will be the one "in charge". The mind holder
+will update its languages based on the atom holder, and will get updated as part of
+transformations and other events that cause new languages to become available.
+Every language holder has three lists of languages (and sources for each of them):
+- understood_languages
+- spoken_languages
+- blocked_languages
+Understood languages let you understand them, spoken languages lets you speak them
+(if your tongue is compatible), and blocked languages will let you do neither no matter
+what the source of the language is.
+Language holders are designed to mostly only ever require the use the helpers in atom/movable
+to achieve your goals, but it is also possible to work on them directly if needed. Any adding
+and removing of languages and sources should only happen through the procs, as directly changing
+these will mess something up somewhere down the line.
+All atom movables have the initial_language_holder var which allows you to set the default language
+holder to create. For example, /datum/language_holder/alien will give you xenocommon and a block for
+galactic common. Human species also have a default language holder var that will be updated on
+species change, initial_species_holder.
+Key procs
+* [grant_language](atom/movable.html#proc/grant_language)
+* [remove_language](atom/movable.html#proc/remove_language)
+* [add_blocked_language](atom/movable.html#proc/add_blocked_language)
+* [remove_blocked_language](atom/movable.html#proc/remove_blocked_language)
+* [grant_all_languages](atom/movable.html#proc/grant_all_languages)
+* [remove_all_languages](atom/movable.html#proc/remove_all_languages)
+* [has_language](atom/movable.html#proc/has_language)
+* [can_speak_language](atom/movable.html#proc/can_speak_language)
+* [get_selected_language](atom/movable.html#proc/get_selected_language)
+* [update_atom_languages](atom/movable.html#proc/update_atom_languages)
+*/
+/datum/language_holder
+ /// Understood languages.
+ var/list/understood_languages = list(/datum/language/common = list(LANGUAGE_MIND))
+ /// A list of languages that can be spoken. Tongue organ may also set limits beyond this list.
+ var/list/spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM))
+ /// A list of blocked languages. Used to prevent understanding and speaking certain languages, ie for certain mobs, mutations etc.
+ var/list/blocked_languages = list()
+ /// If true, overrides tongue limitations.
var/omnitongue = FALSE
+ /// Handles displaying the language menu UI.
+ var/datum/language_menu/language_menu
+ /// Currently spoken language
+ var/selected_language
+ /// Tracks the entity that owns the holder.
var/owner
-/datum/language_holder/New(owner)
- src.owner = owner
-
- languages = typecacheof(languages)
- shadow_languages = typecacheof(shadow_languages)
-
-/datum/language_holder/Destroy()
- owner = null
- QDEL_NULL(language_menu)
- languages.Cut()
- shadow_languages.Cut()
- return ..()
-
-/datum/language_holder/proc/copy(newowner)
- var/datum/language_holder/copy = new(newowner)
- copy.languages = src.languages.Copy()
- // shadow languages are not copied.
- copy.only_speaks_language = src.only_speaks_language
- copy.selected_default_language = src.selected_default_language
- // language menu is not copied, that's tied to the holder.
- copy.omnitongue = src.omnitongue
- return copy
-
-/datum/language_holder/proc/grant_language(datum/language/dt, shadow = FALSE)
- if(shadow)
- shadow_languages[dt] = TRUE
- else
- languages[dt] = TRUE
-
-/datum/language_holder/proc/grant_all_languages(omnitongue=FALSE)
- for(var/la in GLOB.all_languages)
- grant_language(la)
-
- if(omnitongue)
- src.omnitongue = TRUE
-
-/datum/language_holder/proc/get_random_understood_language()
- var/list/possible = list()
- for(var/dt in languages)
- possible += dt
- . = safepick(possible)
-
-/datum/language_holder/proc/remove_language(datum/language/dt, shadow = FALSE)
- if(shadow)
- shadow_languages -= dt
- else
- languages -= dt
-
-/datum/language_holder/proc/remove_all_languages()
- languages.Cut()
-
-/datum/language_holder/proc/has_language(datum/language/dt)
- if(is_type_in_typecache(dt, languages))
- return LANGUAGE_KNOWN
- else
- var/atom/movable/AM = get_atom()
- var/datum/language_holder/L = AM.get_language_holder(shadow=FALSE)
- if(L != src)
- if(is_type_in_typecache(dt, L.shadow_languages))
- return LANGUAGE_SHADOWED
- return FALSE
-
-/datum/language_holder/proc/copy_known_languages_from(thing, replace=FALSE)
- var/datum/language_holder/other
- if(istype(thing, /datum/language_holder))
- other = thing
- else if(ismovableatom(thing))
- var/atom/movable/AM = thing
- other = AM.get_language_holder()
- else if(istype(thing, /datum/mind))
- var/datum/mind/M = thing
- other = M.get_language_holder()
-
- if(replace)
- src.remove_all_languages()
-
- for(var/l in other.languages)
- src.grant_language(l)
-
-
-/datum/language_holder/proc/open_language_menu(mob/user)
- if(!language_menu)
- language_menu = new(src)
- language_menu.ui_interact(user)
-
-/datum/language_holder/proc/get_atom()
- if(ismovableatom(owner))
- . = owner
- else if(istype(owner, /datum/mind))
+/// Initializes, and copies in the languages from the current atom if available.
+/datum/language_holder/New(_owner)
+ owner = _owner
+ if(istype(owner, /datum/mind))
var/datum/mind/M = owner
if(M.current)
- . = M.current
+ update_atom_languages(M.current)
+ get_selected_language()
+
+/datum/language_holder/Destroy()
+ QDEL_NULL(language_menu)
+ return ..()
+
+/// Grants the supplied language.
+/datum/language_holder/proc/grant_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_MIND)
+ if(understood)
+ if(!understood_languages[language])
+ understood_languages[language] = list()
+ understood_languages[language] |= source
+ . = TRUE
+ if(spoken)
+ if(!spoken_languages[language])
+ spoken_languages[language] = list()
+ spoken_languages[language] |= source
+ . = TRUE
+
+/// Grants every language to understood and spoken, and gives omnitongue.
+/datum/language_holder/proc/grant_all_languages(understood = TRUE, spoken = TRUE, grant_omnitongue = TRUE, source = LANGUAGE_MIND)
+ for(var/language in GLOB.all_languages)
+ grant_language(language, understood, spoken, source)
+ if(grant_omnitongue) // Overrides tongue limitations.
+ omnitongue = TRUE
+ return TRUE
+
+/// Removes a single language or source, removing all sources returns the pre-removal state of the language.
+/datum/language_holder/proc/remove_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ALL)
+ if(understood && understood_languages[language])
+ if(source == LANGUAGE_ALL)
+ understood_languages -= language
+ else
+ understood_languages[language] -= source
+ if(!length(understood_languages[language]))
+ understood_languages -= language
+ . = TRUE
+
+ if(spoken && spoken_languages[language])
+ if(source == LANGUAGE_ALL)
+ spoken_languages -= language
+ else
+ spoken_languages[language] -= source
+ if(!length(spoken_languages[language]))
+ spoken_languages -= language
+ . = TRUE
+
+/// Removes every language and optionally sets omnitongue false. If a non default source is supplied, only removes that source.
+/datum/language_holder/proc/remove_all_languages(source = LANGUAGE_ALL, remove_omnitongue = FALSE)
+ for(var/language in GLOB.all_languages)
+ remove_language(language, TRUE, TRUE, source)
+ if(remove_omnitongue)
+ omnitongue = FALSE
+ return TRUE
+
+/// Adds a single language or list of languages to the blocked language list.
+/datum/language_holder/proc/add_blocked_language(languages, source = LANGUAGE_MIND)
+ if(!islist(languages))
+ languages = list(languages)
+ for(var/language in languages)
+ if(!blocked_languages[language])
+ blocked_languages[language] = list()
+ blocked_languages[language] |= source
+ return TRUE
+
+/// Removes a single language or list of languages from the blocked language list.
+/datum/language_holder/proc/remove_blocked_language(languages, source = LANGUAGE_MIND)
+ if(!islist(languages))
+ languages = list(languages)
+ for(var/language in languages)
+ if(blocked_languages[language])
+ if(source == LANGUAGE_ALL)
+ blocked_languages -= language
+ else
+ blocked_languages[language] -= source
+ if(!length(blocked_languages[language]))
+ blocked_languages -= language
+ return TRUE
+
+/// Checks if you have the language. If spoken is true, only checks if you can speak the language.
+/datum/language_holder/proc/has_language(language, spoken = FALSE)
+ if(language in blocked_languages)
+ return FALSE
+ if(spoken)
+ return language in spoken_languages
+ return language in understood_languages
+
+/// Checks if you can speak the language. Tongue limitations should be supplied as an argument.
+/datum/language_holder/proc/can_speak_language(language)
+ var/atom/movable/ouratom = get_atom()
+ var/tongue = ouratom.could_speak_language(language)
+ if((omnitongue || tongue) && has_language(language, TRUE))
+ return TRUE
+ return FALSE
+
+/// Returns selected language if it can be spoken, or decides, sets and returns a new selected language if possible.
+/datum/language_holder/proc/get_selected_language()
+ if(selected_language && can_speak_language(selected_language))
+ return selected_language
+ selected_language = null
+ var/highest_priority
+ for(var/lang in spoken_languages)
+ var/datum/language/language = lang
+ var/priority = initial(language.default_priority)
+ if((!highest_priority || (priority > highest_priority)) && !(language in blocked_languages))
+ if(can_speak_language(language))
+ selected_language = language
+ highest_priority = priority
+ return selected_language
+
+/// Gets a random understood language, useful for hallucinations and such.
+/datum/language_holder/proc/get_random_understood_language()
+ return pick(understood_languages)
+
+/// Gets a random spoken language, useful for forced speech and such.
+/datum/language_holder/proc/get_random_spoken_language()
+ return pick(spoken_languages)
+
+/// Opens a language menu reading from the language holder.
+/datum/language_holder/proc/open_language_menu(mob/user)
+ if(!language_menu)
+ language_menu = new (src)
+ language_menu.ui_interact(user)
+
+/// Gets the atom, since we some times need to check if the tongue has limitations.
+/datum/language_holder/proc/get_atom()
+ if(owner)
+ if(istype(owner, /datum/mind))
+ var/datum/mind/M = owner
+ return M.current
+ return owner
+ return FALSE
+
+/// Empties out the atom specific languages and updates them according to the supplied atoms language holder.
+/datum/language_holder/proc/update_atom_languages(atom/movable/thing)
+ var/datum/language_holder/from_atom = thing.get_language_holder(FALSE) //Gets the atoms language holder
+ if(from_atom == src) //This could happen if called on an atom without a mind.
+ return FALSE
+ for(var/language in understood_languages)
+ remove_language(language, TRUE, FALSE, LANGUAGE_ATOM)
+ for(var/language in spoken_languages)
+ remove_language(language, FALSE, TRUE, LANGUAGE_ATOM)
+ for(var/language in blocked_languages)
+ remove_blocked_language(language, LANGUAGE_ATOM)
+
+ copy_languages(from_atom)
+ get_selected_language()
+ return TRUE
+
+/// Copies all languages from the supplied atom/language holder. Source should be overridden when you
+/// do not want the language overwritten by later atom updates or want to avoid blocked languages.
+/datum/language_holder/proc/copy_languages(var/datum/language_holder/from_holder, source_override)
+ if(source_override) //No blocked languages here, for now only used by ling absorb.
+ for(var/language in from_holder.understood_languages)
+ grant_language(language, TRUE, FALSE, source_override)
+ for(var/language in from_holder.spoken_languages)
+ grant_language(language, FALSE, TRUE, source_override)
+ else
+ for(var/language in from_holder.understood_languages)
+ grant_language(language, TRUE, FALSE, from_holder.understood_languages[language])
+ for(var/language in from_holder.spoken_languages)
+ grant_language(language, FALSE, TRUE, from_holder.spoken_languages[language])
+ for(var/language in from_holder.blocked_languages)
+ add_blocked_language(language, from_holder.blocked_languages[language])
+ return TRUE
+
+
+//************************************************
+//* Specific language holders *
+//* Use atom language sources only. *
+//************************************************/
+
/datum/language_holder/alien
- languages = list(/datum/language/xenocommon)
-
-/datum/language_holder/monkey
- languages = list(/datum/language/monkey)
-
-/datum/language_holder/swarmer
- languages = list(/datum/language/swarmer)
+ understood_languages = list(/datum/language/xenocommon = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/xenocommon = list(LANGUAGE_ATOM))
+ blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM))
/datum/language_holder/clockmob
- languages = list(/datum/language/common, /datum/language/ratvar)
- only_speaks_language = /datum/language/ratvar
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/ratvar = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/ratvar = list(LANGUAGE_ATOM))
/datum/language_holder/construct
- languages = list(/datum/language/common, /datum/language/narsie)
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/narsie = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/narsie = list(LANGUAGE_ATOM))
/datum/language_holder/drone
- languages = list(/datum/language/common, /datum/language/drone, /datum/language/machine)
- only_speaks_language = /datum/language/drone
+ understood_languages = list(/datum/language/drone = list(LANGUAGE_ATOM),
+ /datum/language/machine = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/drone = list(LANGUAGE_ATOM))
+ blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM))
/datum/language_holder/drone/syndicate
- only_speaks_language = null
+ blocked_languages = null
/datum/language_holder/dwarf
- languages = list(/datum/language/common, /datum/language/dwarf)
- only_speaks_language = /datum/language/dwarf
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/dwarf = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/dwarf = list(LANGUAGE_ATOM))
-/datum/language_holder/slime
- languages = list(/datum/language/common, /datum/language/slime)
- only_speaks_language = /datum/language/slime
+/datum/language_holder/jelly
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/slime = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/slime = list(LANGUAGE_ATOM))
/datum/language_holder/lightbringer
- // TODO change to a lightbringer specific sign language
- languages = list(/datum/language/slime)
+ understood_languages = list(/datum/language/slime = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/slime = list(LANGUAGE_ATOM))
+ blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM))
+
+/datum/language_holder/lizard
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/draconic = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/draconic = list(LANGUAGE_ATOM))
+
+/datum/language_holder/lizard/ash
+ selected_language = /datum/language/draconic
+
+/datum/language_holder/monkey
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/monkey = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/monkey = list(LANGUAGE_ATOM))
+
+/datum/language_holder/mushroom
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/mushroom = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/mushroom = list(LANGUAGE_ATOM))
+
+/datum/language_holder/slime
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/slime = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/slime = list(LANGUAGE_ATOM))
+
+/datum/language_holder/swarmer
+ understood_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM))
+ blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM))
+
+/datum/language_holder/sylvan
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/sylvan = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/sylvan = list(LANGUAGE_ATOM))
+
/datum/language_holder/synthetic
- languages = list(/datum/language/common)
- shadow_languages = list(/datum/language/common, /datum/language/machine, /datum/language/draconic, /datum/language/slime, /datum/language/dwarf)
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/machine = list(LANGUAGE_ATOM),
+ /datum/language/draconic = list(LANGUAGE_ATOM),
+ /datum/language/slime = list(LANGUAGE_ATOM),
+ /datum/language/dwarf = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/machine = list(LANGUAGE_ATOM),
+ /datum/language/draconic = list(LANGUAGE_ATOM),
+ /datum/language/slime = list(LANGUAGE_ATOM),
+ /datum/language/dwarf = list(LANGUAGE_ATOM))
+
+/datum/language_holder/venus
+ understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
+ /datum/language/sylvan = list(LANGUAGE_ATOM))
+ spoken_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM))
/datum/language_holder/empty
- languages = list()
- shadow_languages = list()
+ understood_languages = list()
+ spoken_languages = list()
/datum/language_holder/universal/New()
..()
- grant_all_languages(omnitongue=TRUE)
+ grant_all_languages()
diff --git a/code/modules/language/language_menu.dm b/code/modules/language/language_menu.dm
index d707c653e5..0df7c01fca 100644
--- a/code/modules/language/language_menu.dm
+++ b/code/modules/language/language_menu.dm
@@ -1,8 +1,8 @@
/datum/language_menu
var/datum/language_holder/language_holder
-/datum/language_menu/New(language_holder)
- src.language_holder = language_holder
+/datum/language_menu/New(_language_holder)
+ language_holder = _language_holder
/datum/language_menu/Destroy()
language_holder = null
@@ -24,21 +24,20 @@
data["is_living"] = FALSE
data["languages"] = list()
- for(var/ld in GLOB.all_languages)
- var/result = language_holder.has_language(ld)
+ for(var/lang in GLOB.all_languages)
+ var/result = language_holder.has_language(lang) || language_holder.has_language(lang, TRUE)
if(!result)
continue
- var/shadow = result == LANGUAGE_SHADOWED
- var/datum/language/LD = ld
+ var/datum/language/language = lang
var/list/L = list()
- L["name"] = initial(LD.name)
- L["desc"] = initial(LD.desc)
- L["key"] = initial(LD.key)
- L["is_default"] = (LD == language_holder.selected_default_language)
- L["shadow"] = shadow
+ L["name"] = initial(language.name)
+ L["desc"] = initial(language.desc)
+ L["key"] = initial(language.key)
+ L["is_default"] = (language == language_holder.selected_language)
if(AM)
- L["can_speak"] = AM.can_speak_in_language(LD)
+ L["can_speak"] = AM.can_speak_language(language)
+ L["can_understand"] = AM.has_language(language)
data["languages"] += list(L)
@@ -47,15 +46,15 @@
data["omnitongue"] = language_holder.omnitongue
data["unknown_languages"] = list()
- for(var/ld in GLOB.all_languages)
- if(language_holder.has_language(ld))
+ for(var/lang in GLOB.all_languages)
+ if(language_holder.has_language(lang) || language_holder.has_language(lang, TRUE))
continue
- var/datum/language/LD = ld
+ var/datum/language/language = lang
var/list/L = list()
- L["name"] = initial(LD.name)
- L["desc"] = initial(LD.desc)
- L["key"] = initial(LD.key)
+ L["name"] = initial(language.name)
+ L["desc"] = initial(language.desc)
+ L["key"] = initial(language.key)
data["unknown_languages"] += list(L)
return data
@@ -68,27 +67,51 @@
var/language_name = params["language_name"]
var/datum/language/language_datum
- for(var/ld in GLOB.all_languages)
- var/datum/language/LD = ld
- if(language_name == initial(LD.name))
- language_datum = LD
+ for(var/lang in GLOB.all_languages)
+ var/datum/language/language = lang
+ if(language_name == initial(language.name))
+ language_datum = language
var/is_admin = check_rights_for(user.client, R_ADMIN)
switch(action)
if("select_default")
- if(language_datum && AM.can_speak_in_language(language_datum))
- language_holder.selected_default_language = language_datum
+ if(language_datum && AM.can_speak_language(language_datum))
+ language_holder.selected_language = language_datum
. = TRUE
if("grant_language")
if((is_admin || isobserver(AM)) && language_datum)
- language_holder.grant_language(language_datum)
+ var/list/choices = list("Only Spoken", "Only Understood", "Both")
+ var/choice = input(user,"How do you want to add this language?","[language_datum]",null) as null|anything in choices
+ var/spoken = FALSE
+ var/understood = FALSE
+ switch(choice)
+ if("Only Spoken")
+ spoken = TRUE
+ if("Only Understood")
+ understood = TRUE
+ if("Both")
+ spoken = TRUE
+ understood = TRUE
+ language_holder.grant_language(language_datum, understood, spoken)
if(is_admin)
message_admins("[key_name_admin(user)] granted the [language_name] language to [key_name_admin(AM)].")
log_admin("[key_name(user)] granted the language [language_name] to [key_name(AM)].")
. = TRUE
if("remove_language")
if((is_admin || isobserver(AM)) && language_datum)
- language_holder.remove_language(language_datum)
+ var/list/choices = list("Only Spoken", "Only Understood", "Both")
+ var/choice = input(user,"Which part do you wish to remove?","[language_datum]",null) as null|anything in choices
+ var/spoken = FALSE
+ var/understood = FALSE
+ switch(choice)
+ if("Only Spoken")
+ spoken = TRUE
+ if("Only Understood")
+ understood = TRUE
+ if("Both")
+ spoken = TRUE
+ understood = TRUE
+ language_holder.remove_language(language_datum, understood, spoken)
if(is_admin)
message_admins("[key_name_admin(user)] removed the [language_name] language to [key_name_admin(AM)].")
log_admin("[key_name(user)] removed the language [language_name] to [key_name(AM)].")
diff --git a/code/modules/language/sylvan.dm b/code/modules/language/sylvan.dm
new file mode 100644
index 0000000000..1eb696259e
--- /dev/null
+++ b/code/modules/language/sylvan.dm
@@ -0,0 +1,19 @@
+// The language of the vinebings. Yes, it's a shameless ripoff of elvish.
+/datum/language/sylvan
+ name = "Sylvan"
+ desc = "A complicated, ancient language spoken by vine like beings."
+ speech_verb = "expresses"
+ ask_verb = "inquires"
+ exclaim_verb = "declares"
+ key = "h"
+ space_chance = 20
+ syllables = list(
+ "fii", "sii", "rii", "rel", "maa", "ala", "san", "tol", "tok", "dia", "eres",
+ "fal", "tis", "bis", "qel", "aras", "losk", "rasa", "eob", "hil", "tanl", "aere",
+ "fer", "bal", "pii", "dala", "ban", "foe", "doa", "cii", "uis", "mel", "wex",
+ "incas", "int", "elc", "ent", "aws", "qip", "nas", "vil", "jens", "dila", "fa",
+ "la", "re", "do", "ji", "ae", "so", "qe", "ce", "na", "mo", "ha", "yu"
+ )
+ icon = 'icons/obj/hydroponics/harvest.dmi'
+ icon_state = "lily"
+ default_priority = 90
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index 008724b10f..144037b3a7 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -267,7 +267,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
dat += "(Order book by SS13 BN) "
dat += ""
dat += "AUTHOR TITLE CATEGORY "
- dat += libcomp_menu[CLAMP(page,1,libcomp_menu.len)]
+ dat += libcomp_menu[clamp(page,1,libcomp_menu.len)]
dat += "<<<< >>>> "
dat += "
"
dat += "(Return to main menu) "
diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm
index 8712a66290..779dd9c3ea 100644
--- a/code/modules/lighting/lighting_atom.dm
+++ b/code/modules/lighting/lighting_atom.dm
@@ -38,7 +38,7 @@
if (!light_power || !light_range) // We won't emit light anyways, destroy the light source.
QDEL_NULL(light)
else
- if (!ismovableatom(loc)) // We choose what atom should be the top atom of the light here.
+ if (!ismovable(loc)) // We choose what atom should be the top atom of the light here.
. = src
else
. = loc
diff --git a/code/modules/mapping/dmm_suite.dm b/code/modules/mapping/dmm_suite.dm
deleted file mode 100644
index c4ceec33ee..0000000000
--- a/code/modules/mapping/dmm_suite.dm
+++ /dev/null
@@ -1,63 +0,0 @@
-dmm_suite{
- /*
-
- dmm_suite version 1.0
- Released January 30th, 2011.
-
- NOTE: Map saving functionality removed
-
- defines the object /dmm_suite
- - Provides the proc load_map()
- - Loads the specified map file onto the specified z-level.
- - provides the proc write_map()
- - Returns a text string of the map in dmm format
- ready for output to a file.
- - provides the proc save_map()
- - Returns a .dmm file if map is saved
- - Returns FALSE if map fails to save
-
- The dmm_suite provides saving and loading of map files in BYOND's native DMM map
- format. It approximates the map saving and loading processes of the Dream Maker
- and Dream Seeker programs so as to allow editing, saving, and loading of maps at
- runtime.
-
- ------------------------
-
- To save a map at runtime, create an instance of /dmm_suite, and then call
- write_map(), which accepts three arguments:
- - A turf representing one corner of a three dimensional grid (Required).
- - Another turf representing the other corner of the same grid (Required).
- - Any, or a combination, of several bit flags (Optional, see documentation).
-
- The order in which the turfs are supplied does not matter, the /dmm_writer will
- determine the grid containing both, in much the same way as DM's block() function.
- write_map() will then return a string representing the saved map in dmm format;
- this string can then be saved to a file, or used for any other purose.
-
- ------------------------
-
- To load a map at runtime, create an instance of /dmm_suite, and then call load_map(),
- which accepts two arguments:
- - A .dmm file to load (Required).
- - A number representing the z-level on which to start loading the map (Optional).
-
- The /dmm_suite will load the map file starting on the specified z-level. If no
- z-level was specified, world.maxz will be increased so as to fit the map. Note
- that if you wish to load a map onto a z-level that already has objects on it,
- you will have to handle the removal of those objects. Otherwise the new map will
- simply load the new objects on top of the old ones.
-
- Also note that all type paths specified in the .dmm file must exist in the world's
- code, and that the /dmm_reader trusts that files to be loaded are in fact valid
- .dmm files. Errors in the .dmm format will cause runtime errors.
-
- */
-
- verb/load_map(var/dmm_file as file, var/x_offset as num, var/y_offset as num, var/z_offset as num, var/cropMap as num, var/measureOnly as num, no_changeturf as num){
- // dmm_file: A .dmm file to load (Required).
- // z_offset: A number representing the z-level on which to start loading the map (Optional).
- // cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional).
- // measureOnly: When true, no changes will be made to the world (Optional).
- // no_changeturf: When true, turf/AfterChange won't be called on loaded turfs
- }
-}
\ No newline at end of file
diff --git a/code/datums/map_config.dm b/code/modules/mapping/map_config.dm
similarity index 79%
rename from code/datums/map_config.dm
rename to code/modules/mapping/map_config.dm
index 5fcd1ae93c..efa2655325 100644
--- a/code/datums/map_config.dm
+++ b/code/modules/mapping/map_config.dm
@@ -22,6 +22,7 @@
var/traits = null
var/space_ruin_levels = 2
var/space_empty_levels = 1
+ var/station_ruin_budget = -1 // can be set to manually override the station ruins budget on maps that don't support station ruins, stopping the error from being unable to place the ruins.
var/minetype = "lavaland"
@@ -38,6 +39,10 @@
var/year_offset = 540 //The offset of ingame year from the actual IRL year. You know you want to make a map that takes place in the 90's. Don't lie.
+ // "fun things"
+ /// Orientation to load in by default.
+ var/orientation = SOUTH //byond defaults to placing everyting SOUTH.
+
/proc/load_map_config(filename = "data/next_map.json", default_to_box, delete_after, error_if_missing = TRUE)
var/datum/map_config/config = new
if (default_to_box)
@@ -130,6 +135,9 @@
log_world("map_config space_empty_levels is not a number!")
return
+ if("station_ruin_budget" in json)
+ station_ruin_budget = json["station_ruin_budget"]
+
temp = json["year_offset"]
if (isnum(temp))
year_offset = temp
@@ -139,13 +147,18 @@
if ("minetype" in json)
minetype = json["minetype"]
-
+
if ("maptype" in json)
maptype = json["maptype"]
if ("announcertype" in json)
announcertype = json["announcertype"]
+ if ("orientation" in json)
+ orientation = json["orientation"]
+ if(!(orientation in GLOB.cardinals))
+ orientation = SOUTH
+
allow_custom_shuttles = json["allow_custom_shuttles"] != FALSE
defaulted = FALSE
@@ -161,3 +174,23 @@
/datum/map_config/proc/MakeNextMap()
return config_filename == "data/next_map.json" || fcopy(config_filename, "data/next_map.json")
+
+/// badmin moments. Keep up to date with LoadConfig()!
+/datum/map_config/proc/WriteNextMap()
+ var/list/jsonlist = list()
+ jsonlist["map_name"] = map_name
+ jsonlist["map_path"] = map_path
+ jsonlist["map_file"] = map_file
+ jsonlist["shuttles"] = shuttles
+ jsonlist["traits"] = traits
+ jsonlist["space_ruin_levels"] = space_ruin_levels
+ jsonlist["year_offset"] = year_offset
+ jsonlist["minetype"] = minetype
+ jsonlist["maptype"] = maptype
+ jsonlist["announcertype"] = announcertype
+ jsonlist["orientation"] = orientation
+ jsonlist["allow_custom_shuttles"] = allow_custom_shuttles
+ if(fexists("data/next_map.json"))
+ fdel("data/next_map.json")
+ var/F = file("data/next_map.json")
+ WRITE_FILE(F, json_encode(jsonlist))
diff --git a/code/modules/mapping/map_orientation_pattern.dm b/code/modules/mapping/map_orientation_pattern.dm
new file mode 100644
index 0000000000..565c25bef1
--- /dev/null
+++ b/code/modules/mapping/map_orientation_pattern.dm
@@ -0,0 +1,46 @@
+GLOBAL_LIST_INIT(map_orientation_patterns, list(
+ TEXT_NORTH = new /datum/map_orientation_pattern/north,
+ TEXT_SOUTH = new /datum/map_orientation_pattern/south,
+ TEXT_EAST = new /datum/map_orientation_pattern/east,
+ TEXT_WEST = new /datum/map_orientation_pattern/west
+ ))
+
+/datum/map_orientation_pattern
+ var/invert_x
+ var/invert_y
+ var/swap_xy
+ var/xi
+ var/yi
+ var/turn_angle
+
+/datum/map_orientation_pattern/north
+ invert_y = TRUE
+ invert_x = TRUE
+ swap_xy = FALSE
+ xi = -1
+ yi = 1
+ turn_angle = 180
+
+/datum/map_orientation_pattern/south
+ invert_y = FALSE
+ invert_x = FALSE
+ swap_xy = FALSE
+ xi = 1
+ yi = -1
+ turn_angle = 0
+
+/datum/map_orientation_pattern/east
+ invert_y = TRUE
+ invert_x = FALSE
+ swap_xy = TRUE
+ xi = 1
+ yi = 1
+ turn_angle = 90
+
+/datum/map_orientation_pattern/west
+ invert_y = FALSE
+ invert_x = TRUE
+ swap_xy = TRUE
+ xi = -1
+ yi = -1
+ turn_angle = 270
diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm
index 3e361179de..087552fada 100644
--- a/code/modules/mapping/map_template.dm
+++ b/code/modules/mapping/map_template.dm
@@ -1,11 +1,14 @@
/datum/map_template
var/name = "Default Template Name"
- var/width = 0
+ var/width = 0 //all these are for SOUTH!
var/height = 0
- var/mappath = null
+ var/zdepth = 1
+ var/mappath
var/loaded = 0 // Times loaded this round
var/datum/parsed_map/cached_map
var/keep_cached_map = FALSE
+ var/default_annihilate = FALSE
+ var/list/ztraits //zlevel traits for load_new_z
/datum/map_template/New(path = null, rename = null, cache = FALSE)
if(path)
@@ -15,16 +18,45 @@
if(rename)
name = rename
-/datum/map_template/proc/preload_size(path, cache = FALSE)
+/datum/map_template/Destroy()
+ QDEL_NULL(cached_map)
+ return ..()
+
+/datum/map_template/proc/preload_size(path = mappath, force_cache = FALSE)
+ if(cached_map)
+ return cached_map.parsed_bounds
var/datum/parsed_map/parsed = new(file(path))
- var/bounds = parsed?.bounds
+ var/bounds = parsed?.parsed_bounds
if(bounds)
- width = bounds[MAP_MAXX] // Assumes all templates are rectangular, have a single Z level, and begin at 1,1,1
- height = bounds[MAP_MAXY]
- if(cache)
+ width = bounds[MAP_MAXX] - bounds[MAP_MINX] + 1
+ height = bounds[MAP_MAXY] - bounds[MAP_MINY] + 1
+ zdepth = bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1
+ if(force_cache || keep_cached_map)
cached_map = parsed
return bounds
+/datum/map_template/proc/get_parsed_bounds()
+ return preload_size(mappath)
+
+/datum/map_template/proc/get_last_loaded_bounds()
+ if(cached_map)
+ return cached_map.bounds
+ return get_parsed_bounds()
+
+/datum/map_template/proc/get_last_loaded_turf_block()
+ if(!cached_map)
+ CRASH("Improper use of get_last_loaded_turf_block, no cached_map.")
+ var/list/B = cached_map.bounds
+ return block(locate(B[MAP_MINX], B[MAP_MINY], B[MAP_MINZ]), locate(B[MAP_MAXX], B[MAP_MAXY], B[MAP_MAXZ]))
+
+/datum/map_template/proc/get_size(orientation = SOUTH)
+ if(!width || !height || !zdepth)
+ preload_size(mappath)
+ var/rotate = (orientation & (NORTH|SOUTH)) != NONE
+ if(rotate)
+ return list(height, width, zdepth)
+ return list(width, height, zdepth)
+
/datum/parsed_map/proc/initTemplateBounds()
var/list/obj/machinery/atmospherics/atmos_machines = list()
var/list/obj/structure/cable/cables = list()
@@ -55,12 +87,12 @@
SSmachines.setup_template_powernets(cables)
SSair.setup_template_machinery(atmos_machines)
-/datum/map_template/proc/load_new_z()
- var/x = round((world.maxx - width)/2)
- var/y = round((world.maxy - height)/2)
+/datum/map_template/proc/load_new_z(orientation = SOUTH, list/ztraits = src.ztraits || list(ZTRAIT_AWAY = TRUE), centered = TRUE)
+ var/x = centered? max(round((world.maxx - width) / 2), 1) : 1
+ var/y = centered? max(round((world.maxy - height) / 2), 1) : 1
- var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(ZTRAIT_AWAY = TRUE))
- var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE)
+ var/datum/space_level/level = SSmapping.add_new_zlevel(name, ztraits)
+ var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop = TRUE, orientation = orientation)
var/list/bounds = parsed.bounds
if(!bounds)
return FALSE
@@ -71,31 +103,67 @@
parsed.initTemplateBounds()
smooth_zlevel(world.maxz)
log_game("Z-level [name] loaded at [x],[y],[world.maxz]")
+ on_map_loaded(world.maxz, parsed.bounds)
return level
-/datum/map_template/proc/load(turf/T, centered = FALSE)
+//Override for custom behavior
+/datum/map_template/proc/on_map_loaded(z, list/bounds)
+ loaded++
+
+/**
+ * Proc to trigger a load at a specific area. Calls on_map_loaded(T.z, loaded_bounds) afterwards.
+ *
+ * @params
+ * * turf/T - Turf to load at
+ * * centered - Center at T or load with the bottomright corner being at T
+ * * orientation - SOUTH is default, anything else rotates the map to face it with the point of reference being the map itself is facing south by default. Cardinals only, don't be a 4head and put in multiple flags. It won't work or be pretty if you try.
+ * * annihilate - Should we destroy stuff in our bounds while loading
+ * * force_cache - Should we force the parsed shuttle to cache instead of being GC'd post loading if it wasn't going to be cached by default
+ * * rotate_placement_to_orientation - Has no effect if centered. Should we rotate where we load it around the turf we're loading at? Used for stuff like engine submaps when the station is rotated.
+ *
+ */
+/datum/map_template/proc/load(turf/T, centered = FALSE, orientation = SOUTH, annihilate = default_annihilate, force_cache = FALSE, rotate_placement_to_orientation = FALSE)
+ var/old_T = T
if(centered)
- T = locate(T.x - round(width/2) , T.y - round(height/2) , T.z)
+ T = locate(T.x - round(((orientation & (NORTH|SOUTH))? width : height) / 2) , T.y - round(((orientation & (NORTH|SOUTH)) ? height : width) / 2) , T.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false
+ else if(rotate_placement_to_orientation && (orientation != SOUTH))
+ var/newx = T.x
+ var/newy = T.y
+ if(orientation == NORTH)
+ newx -= width
+ newy -= height - 1
+ else if(orientation == WEST)
+ newy -= width
+ else if(orientation == EAST)
+ newx -= height - 1
+ // eh let's not silently fail.
+ if(!ISINRANGE(newx, 1, world.maxx) || !ISINRANGE(newy, 1, world.maxy))
+ stack_trace("Warning: Rotation placed a map template load spot ([COORD(T)]) out of bounds of the game world. Clamping to world borders, this might cause issues.")
+ T = locate(clamp(newx, 1, world.maxx), clamp(newy, 1, world.maxy), T.z)
if(!T)
return
- if(T.x+width > world.maxx)
+ if(T.x+width-1 > world.maxx)
return
- if(T.y+height > world.maxy)
+ if(T.y+height-1 > world.maxy)
return
- var/list/border = block(locate(max(T.x-1, 1), max(T.y-1, 1), T.z),
- locate(min(T.x+width+1, world.maxx), min(T.y+height+1, world.maxy), T.z))
- for(var/L in border)
- var/turf/turf_to_disable = L
+ var/list/border = block(locate(max(T.x - 1, 1), max(T.y - 1, 1), T.z),
+ locate(min(T.x + width + 1, world.maxx), min(T.y + height + 1, world.maxy), T.z))
+ for(var/i in border)
+ var/turf/turf_to_disable = i
SSair.remove_from_active(turf_to_disable) //stop processing turfs along the border to prevent runtimes, we return it in initTemplateBounds()
turf_to_disable.atmos_adjacent_turfs?.Cut()
+ if(annihilate == MAP_TEMPLATE_ANNIHILATE_PRELOAD)
+ annihilate_bounds(old_T, centered, orientation)
+
// Accept cached maps, but don't save them automatically - we don't want
// ruins clogging up memory for the whole round.
- var/datum/parsed_map/parsed = cached_map || new(file(mappath))
- cached_map = keep_cached_map ? parsed : null
- if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE))
+ var/is_cached = cached_map
+ var/datum/parsed_map/parsed = is_cached || new(file(mappath))
+ cached_map = (force_cache || keep_cached_map) ? parsed : is_cached
+ if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE, orientation = orientation, annihilate_tiles = (annihilate == MAP_TEMPLATE_ANNIHILATE_LOADING)))
return
var/list/bounds = parsed.bounds
if(!bounds)
@@ -108,19 +176,36 @@
parsed.initTemplateBounds()
log_game("[name] loaded at [T.x],[T.y],[T.z]")
+ on_map_loaded(T.z, parsed.bounds)
+
return bounds
-/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE)
- var/turf/placement = T
- if(centered)
- var/turf/corner = locate(placement.x - round(width/2), placement.y - round(height/2), placement.z)
- if(corner)
- placement = corner
- return block(placement, locate(placement.x+width-1, placement.y+height-1, placement.z))
-
+//This, get_affected_turfs, and load() calculations for bounds/center can probably be optimized. Later.
+/datum/map_template/proc/annihilate_bounds(turf/origin, centered = FALSE, orientation = SOUTH)
+ var/deleted_atoms = 0
+ log_world("Annihilating objects in map loading location.")
+ var/list/turfs_to_clean = get_affected_turfs(origin, centered, orientation)
+ if(turfs_to_clean.len)
+ var/list/kill_these = list()
+ for(var/i in turfs_to_clean)
+ var/turf/T = i
+ kill_these += T.contents
+ for(var/i in kill_these)
+ qdel(i)
+ CHECK_TICK
+ deleted_atoms++
+ log_world("Annihilated [deleted_atoms] objects.")
//for your ever biggening badminnery kevinz000
//⤠- Cyberboss
-/proc/load_new_z_level(var/file, var/name)
+/proc/load_new_z_level(file, name, orientation, list/ztraits)
var/datum/map_template/template = new(file, name)
- template.load_new_z()
+ return template.load_new_z(orientation, ztraits)
+
+/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE, orientation = SOUTH)
+ var/turf/placement = T
+ if(centered)
+ var/turf/corner = locate(placement.x - round(((orientation & (NORTH|SOUTH))? width : height) / 2), placement.y - round(((orientation & (NORTH|SOUTH))? height : width) / 2), placement.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false
+ if(corner)
+ placement = corner
+ return block(placement, locate(placement.x + ((orientation & (NORTH|SOUTH)) ? width : height) - 1, placement.y + ((orientation & (NORTH|SOUTH))? height : width) - 1, placement.z))
diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm
index 4b61663f66..16adb43113 100644
--- a/code/modules/mapping/preloader.dm
+++ b/code/modules/mapping/preloader.dm
@@ -7,13 +7,21 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new)
parent_type = /datum
var/list/attributes
var/target_path
+ var/turn_angle
+ var/swap_x
+ var/swap_y
+ var/swap_xy
-/world/proc/preloader_setup(list/the_attributes, path)
- if(the_attributes.len)
+/world/proc/preloader_setup(list/the_attributes, path, turn_angle, swap_x, swap_y, swap_xy)
+ if(length(the_attributes) || turn_angle)
GLOB.use_preloader = TRUE
var/datum/map_preloader/preloader_local = GLOB._preloader
preloader_local.attributes = the_attributes
preloader_local.target_path = path
+ preloader_local.turn_angle = turn_angle
+ preloader_local.swap_x = swap_x
+ preloader_local.swap_y = swap_y
+ preloader_local.swap_xy = swap_xy
/world/proc/preloader_load(atom/what)
GLOB.use_preloader = FALSE
@@ -29,6 +37,21 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new)
GLOB.dirty_vars += message
#endif
what.vars[attribute] = value
+ // handle post processing, so things like directions on subtypes don't break.
+ if(preloader_local.turn_angle) //safe way to check for if this is necessary
+ what.dir = turn(what.dir, preloader_local.turn_angle)
+ var/px = what.pixel_x
+ var/py = what.pixel_y
+ if(preloader_local.swap_y) //same order of operations as the load rotation, mirror and then x/y swapping.
+ py = -py
+ if(preloader_local.swap_x)
+ px = -px
+ if(preloader_local.swap_xy)
+ var/opx = px
+ px = py
+ py = opx
+ what.pixel_x = px
+ what.pixel_y = py
/area/template_noop
name = "Area Passthrough"
diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm
index 86b501c455..a792ee280f 100644
--- a/code/modules/mapping/reader.dm
+++ b/code/modules/mapping/reader.dm
@@ -1,6 +1,12 @@
///////////////////////////////////////////////////////////////
//SS13 Optimized Map loader
//////////////////////////////////////////////////////////////
+/*
+ * Notes:
+ * This does NOT support map files where more than one Z is in each grid set, as defined in the file.
+ * MultiZ map files ARE supported (however very much discouraged), as long as each gridset only contains one z.
+ * This assumes that for the most part, map files are properly formed, either DMM or TGM standard formats. If you feed it bad data, expect to crash.
+ */
#define SPACE_KEY "space"
/datum/grid_set
@@ -9,6 +15,12 @@
var/zcrd
var/gridLines
+/datum/grid_set/proc/height(key_len)
+ return length(gridLines)
+
+/datum/grid_set/proc/width(key_len)
+ return gridLines[1] / key_len
+
/datum/parsed_map
var/original_path
var/key_len = 0
@@ -19,9 +31,13 @@
/// Unoffset bounds. Null on parse failure.
var/list/parsed_bounds
+ var/width
+ var/height
/// Offset bounds. Same as parsed_bounds until load().
var/list/bounds
+ var/datum/map_template/template_host
+
// raw strings used to represent regexes more accurately
// '' used to avoid confusing syntax highlighting
var/static/regex/dmmRegex = new(@'"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g")
@@ -39,24 +55,58 @@
/// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional).
/// - `measureOnly`: When true, no changes will be made to the world (Optional).
/// - `no_changeturf`: When true, [turf/AfterChange] won't be called on loaded turfs
-/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional).
+/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the game world) to crop to (Optional).
/// - `placeOnTop`: Whether to use [turf/PlaceOnTop] rather than [turf/ChangeTurf] (Optional).
-/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num)
- var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly)
+/proc/load_map(
+ dmm_file as file,
+ x_offset as num,
+ y_offset as num,
+ z_offset as num,
+ cropMap as num,
+ measureOnly as num,
+ no_changeturf as num,
+ x_lower = -INFINITY as num,
+ x_upper = INFINITY as num,
+ y_lower = -INFINITY as num,
+ y_upper = INFINITY as num,
+ placeOnTop = FALSE as num,
+ orientation = SOUTH as num,
+ annihilate_tiles = FALSE,
+ crop_relative_to_game_world = TRUE
+ )
+ var/datum/parsed_map/parsed = new(dmm_file, measureOnly = measureOnly)
if(parsed.bounds && !measureOnly)
- parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop)
+ parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, orientation, annihilate_tiles)
return parsed
-/// Parse a map, possibly cropping it.
-/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE)
+/**
+ * Parse a map, possibly cropping it.
+ * Do not use the crop function unless strictly necessary.
+ * WARNING: Crop function crops based on the tiles you'd see in the map editor. If you're planning to load it in in a different orientation later, you better have done the math.
+ * It's recommended that you do not crop using this at all.
+ */
+/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, z_lower = -INFINITY, z_upper = INFINITY, measureOnly = FALSE)
+ _parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly)
+
+/datum/parsed_map/proc/_parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly)
+ var/static/parsing = FALSE
+ UNTIL(!parsing)
+ // do not multithread this or bad things happen
+ parsing = TRUE
+ _do_parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly)
+ parsing = FALSE
+
+/datum/parsed_map/proc/_do_parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly)
if(isfile(tfile))
original_path = "[tfile]"
tfile = file2text(tfile)
else if(isnull(tfile))
// create a new datum without loading a map
return
-
bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF)
+ ASSERT(x_upper >= x_lower)
+ ASSERT(y_upper >= y_lower)
+ ASSERT(z_upper >= z_lower)
var/stored_index = 1
//multiz lool
@@ -81,21 +131,19 @@
if(!key_len)
CRASH("Coords before model definition in DMM")
- var/curr_x = text2num(dmmRegex.group[3])
-
- if(curr_x < x_lower || curr_x > x_upper)
+ // NOTE: We are assuming each coordset only contains one z.
+ var/curr_z = text2num(dmmRegex.group[5])
+ if(curr_z < z_lower || curr_z > z_upper)
continue
+
+ var/curr_x = text2num(dmmRegex.group[3])
+ var/curr_y = text2num(dmmRegex.group[4])
var/datum/grid_set/gridSet = new
gridSet.xcrd = curr_x
- //position of the currently processed square
- gridSet.ycrd = text2num(dmmRegex.group[4])
- gridSet.zcrd = text2num(dmmRegex.group[5])
-
- bounds[MAP_MINX] = min(bounds[MAP_MINX], CLAMP(gridSet.xcrd, x_lower, x_upper))
- bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd)
- bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd)
+ gridSet.ycrd = curr_y
+ gridSet.zcrd = curr_z
var/list/gridLines = splittext(dmmRegex.group[6], "\n")
gridSet.gridLines = gridLines
@@ -105,102 +153,142 @@
if(leadingBlanks > 1)
gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines.
- if(!gridLines.len) // Skip it if only blank lines exist.
+ var/lines = length(gridLines)
+ if(lines && gridLines[lines] == "")
+ // remove one trailing blank line
+ gridLines.len--
+ lines--
+ // y crop
+ var/right_length = y_upper - curr_y + 1
+ if(lines > right_length)
+ lines = gridLines.len = right_length
+ if(!lines) // blank
continue
+ var/width = length(gridLines[1]) / key_len
+ // x crop
+ var/right_width = x_upper - curr_x + 1
+ if(width > right_width)
+ for(var/i in 1 to lines)
+ gridLines[i] = copytext(gridLines[i], 1, key_len * right_width)
+
+ // during the actual load we're starting at the top and working our way down
+ gridSet.ycrd += lines - 1
+
+ // Safe to proceed, commit gridset to list and record coords.
gridSets += gridSet
-
- if(gridLines.len && gridLines[gridLines.len] == "")
- gridLines.Cut(gridLines.len) // Remove only one blank line at the end.
-
- bounds[MAP_MINY] = min(bounds[MAP_MINY], CLAMP(gridSet.ycrd, y_lower, y_upper))
- gridSet.ycrd += gridLines.len - 1 // Start at the top and work down
- bounds[MAP_MAXY] = max(bounds[MAP_MAXY], CLAMP(gridSet.ycrd, y_lower, y_upper))
-
- var/maxx = gridSet.xcrd
- if(gridLines.len) //Not an empty map
- maxx = max(maxx, gridSet.xcrd + length(gridLines[1]) / key_len - 1)
-
- bounds[MAP_MAXX] = CLAMP(max(bounds[MAP_MAXX], maxx), x_lower, x_upper)
+ bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x)
+ bounds[MAP_MAXX] = max(bounds[MAP_MAXX], curr_x + width - 1)
+ bounds[MAP_MINY] = min(bounds[MAP_MINY], curr_y)
+ bounds[MAP_MAXY] = max(bounds[MAP_MAXY], curr_y + lines - 1)
+ bounds[MAP_MINZ] = min(bounds[MAP_MINZ], curr_z)
+ bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], curr_z)
CHECK_TICK
// Indicate failure to parse any coordinates by nulling bounds
if(bounds[1] == 1.#INF)
bounds = null
+ else
+ width = bounds[MAP_MAXX] - bounds[MAP_MINX] + 1
+ height = bounds[MAP_MAXY] - bounds[MAP_MINY] + 1
parsed_bounds = bounds
+/datum/parsed_map/Destroy()
+ if(template_host && template_host.cached_map == src)
+ template_host.cached_map = null
+ . = ..()
+ return QDEL_HINT_HARDDEL_NOW
+
/// Load the parsed map into the world. See [/proc/load_map] for arguments.
-/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop)
+/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, orientation, annihilate_tiles, datum/map_orientation_pattern/forced_pattern)
//How I wish for RAII
Master.StartLoadingMap()
- . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop)
+ . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, orientation, annihilate_tiles, forced_pattern)
Master.StopLoadingMap()
// Do not call except via load() above.
-/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE)
+// Lower/upper here refers to the actual map template's parsed coordinates, NOT ACTUAL COORDINATES! Figure it out yourself my head hurts too much to implement that too.
+/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE, orientation = SOUTH, annihilate_tiles = FALSE, datum/map_orientation_pattern/forced_pattern)
var/list/areaCache = list()
var/list/modelCache = build_cache(no_changeturf)
var/space_key = modelCache[SPACE_KEY]
var/list/bounds
src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF)
+ var/datum/map_orientation_pattern/mode = forced_pattern || GLOB.map_orientation_patterns["[orientation]"] || GLOB.map_orientation_patterns["[SOUTH]"]
+ var/invert_y = mode.invert_y
+ var/invert_x = mode.invert_x
+ var/swap_xy = mode.swap_xy
+ var/xi = mode.xi
+ var/yi = mode.yi
+ var/turn_angle = round(SIMPLIFY_DEGREES(mode.turn_angle), 90)
+ var/delta_swap = x_offset - y_offset
+ // less checks later
+ var/do_crop = x_lower > -INFINITY || x_upper < INFINITY || y_lower > -INFINITY || y_upper < INFINITY
- for(var/I in gridSets)
- var/datum/grid_set/gset = I
- var/ycrd = gset.ycrd + y_offset - 1
- var/zcrd = gset.zcrd + z_offset - 1
- if(!cropMap && ycrd > world.maxy)
- world.maxy = ycrd // Expand Y here. X is expanded in the loop below
- var/zexpansion = zcrd > world.maxz
+ for(var/__I in gridSets)
+ var/datum/grid_set/gridset = __I
+ var/parsed_z = gridset.zcrd + z_offset - 1
+ var/zexpansion = parsed_z > world.maxz
if(zexpansion)
if(cropMap)
continue
else
- while (zcrd > world.maxz) //create a new z_level if needed
+ while(parsed_z > world.maxz)
world.incrementMaxZ()
if(!no_changeturf)
WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called")
+ //these values are the same until a new gridset is reached.
+ var/edge_dist_x = gridset.xcrd - 1 //from left side, 0 is right on the x_offset
+ var/edge_dist_y = gridset.ycrd - length(gridset.gridLines) //from bottom, 0 is right on the y_offset
+ var/actual_x_starting = invert_x? (x_offset + width - edge_dist_x - 1) : (x_offset + edge_dist_x) //this value is not changed, cache.
+ //this value is changed
+ var/actual_y = invert_y? (y_offset + edge_dist_y) : (y_offset + gridset.ycrd - 1)
+ for(var/line in gridset.gridLines)
+ var/actual_x = actual_x_starting
+ for(var/pos = 1 to (length(line) - key_len + 1) step key_len)
+ var/placement_x = swap_xy? (actual_y + delta_swap) : actual_x
+ var/placement_y = swap_xy? (actual_x - delta_swap) : actual_y
+ if(do_crop && ((placement_x < x_lower) || (placement_x > x_upper) || (placement_y < y_lower) || (placement_y > y_upper)))
+ continue
+ if(placement_x > world.maxx)
+ if(cropMap)
+ actual_x += xi
+ continue
+ else
+ world.maxx = placement_x
+ if(placement_y > world.maxy)
+ if(cropMap)
+ break
+ else
+ world.maxy = placement_y
+ if(placement_x < 1)
+ actual_x += xi
+ continue
+ if(placement_y < 1)
+ break
+ var/model_key = copytext(line, pos, pos + key_len)
+ var/no_afterchange = no_changeturf || zexpansion
+ if(!no_afterchange || (model_key != space_key))
+ var/list/cache = modelCache[model_key]
+ if(!cache)
+ CRASH("Undefined model key in DMM: [model_key]")
+ build_coordinate(areaCache, cache, locate(placement_x, placement_y, parsed_z), no_afterchange, placeOnTop, turn_angle, annihilate_tiles, swap_xy, invert_y, invert_x)
- for(var/line in gset.gridLines)
- if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping.
- --ycrd
- continue
- if(ycrd <= world.maxy && ycrd >= 1)
- var/xcrd = gset.xcrd + x_offset - 1
- for(var/tpos = 1 to length(line) - key_len + 1 step key_len)
- if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above.
- ++xcrd
- continue //X cropping.
- if(xcrd > world.maxx)
- if(cropMap)
- break
- else
- world.maxx = xcrd
-
- if(xcrd >= 1)
- var/model_key = copytext(line, tpos, tpos + key_len)
- var/no_afterchange = no_changeturf || zexpansion
- if(!no_afterchange || (model_key != space_key))
- var/list/cache = modelCache[model_key]
- if(!cache)
- CRASH("Undefined model key in DMM: [model_key]")
- build_coordinate(areaCache, cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop)
-
- // only bother with bounds that actually exist
- bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrd)
- bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd)
- bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd)
- bounds[MAP_MAXX] = max(bounds[MAP_MAXX], xcrd)
- bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd)
- bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd)
- #ifdef TESTING
- else
- ++turfsSkipped
- #endif
- CHECK_TICK
- ++xcrd
- --ycrd
-
- CHECK_TICK
+ // only bother with bounds that actually exist
+ bounds[MAP_MINX] = min(bounds[MAP_MINX], placement_x)
+ bounds[MAP_MINY] = min(bounds[MAP_MINY], placement_y)
+ bounds[MAP_MINZ] = min(bounds[MAP_MINZ], parsed_z)
+ bounds[MAP_MAXX] = max(bounds[MAP_MAXX], placement_x)
+ bounds[MAP_MAXY] = max(bounds[MAP_MAXY], placement_y)
+ bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], parsed_z)
+ #ifdef TESTING
+ else
+ ++turfsSkipped
+ #endif
+ actual_x += xi
+ CHECK_TICK
+ actual_y += yi
+ CHECK_TICK
if(!no_changeturf)
for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])))
@@ -294,7 +382,7 @@
.[model_key] = list(members, members_attributes)
-/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num)
+/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num, turn_angle as num, annihilate_tiles = FALSE, swap_xy, invert_y, invert_x)
var/index
var/list/members = model[1]
var/list/members_attributes = model[2]
@@ -306,6 +394,8 @@
//The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile
//first instance the /area and remove it from the members list
index = members.len
+ if(annihilate_tiles && crds)
+ crds.empty(null)
if(members[index] != /area/template_noop)
var/atype = members[index]
world.preloader_setup(members_attributes[index], atype)//preloader for assigning set variables on atom creation
@@ -332,20 +422,20 @@
//instanciate the first /turf
var/turf/T
if(members[first_turf_index] != /turf/template_noop)
- T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],crds,no_changeturf,placeOnTop)
+ T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],crds,no_changeturf,placeOnTop,turn_angle, swap_xy, invert_y, invert_x)
if(T)
//if others /turf are presents, simulates the underlays piling effect
index = first_turf_index + 1
while(index <= members.len - 1) // Last item is an /area
var/underlay = T.appearance
- T = instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop)//instance new turf
+ T = instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop,turn_angle, swap_xy, invert_y, invert_x)//instance new turf
T.underlays += underlay
index++
//finally instance all remainings objects/mobs
for(index in 1 to first_turf_index-1)
- instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop)
+ instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop,turn_angle, swap_xy, invert_y, invert_x)
//Restore initialization to the previous value
SSatoms.map_loader_stop()
@@ -354,8 +444,8 @@
////////////////
//Instance an atom at (x,y,z) and gives it the variables in attributes
-/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop)
- world.preloader_setup(attributes, path)
+/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop, turn_angle = 0, swap_xy, invert_y, invert_x)
+ world.preloader_setup(attributes, path, turn_angle, invert_x, invert_y, swap_xy)
if(crds)
if(ispath(path, /turf))
@@ -471,6 +561,7 @@
// fallback: string
return text
-/datum/parsed_map/Destroy()
- ..()
- return QDEL_HINT_HARDDEL_NOW
+/datum/parsed_map/vv_edit_var(var_name, var_value)
+ if(var_name == NAMEOF(src, dmmRegex) || var_name == NAMEOF(src, trimQuotesRegex) || var_name == NAMEOF(src, trimRegex))
+ return FALSE
+ return ..()
diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm
index 34ce6ef35c..193106c294 100644
--- a/code/modules/mapping/ruins.dm
+++ b/code/modules/mapping/ruins.dm
@@ -11,9 +11,17 @@
for(var/turf/check in get_affected_turfs(central_turf,1))
var/area/new_area = get_area(check)
- if(!(istype(new_area, allowed_areas)) || check.flags_1 & NO_RUINS_1)
- valid = FALSE
+ valid = FALSE // set to false before we check
+ if(check.flags_1 & NO_RUINS_1)
break
+ for(var/type in allowed_areas)
+ if(istype(new_area, type)) // it's at least one of our types so it's whitelisted
+ valid = TRUE
+ break
+
+ if(!valid)
+ break
+
if(!valid)
continue
@@ -51,7 +59,7 @@
new /obj/effect/landmark/ruin(center, src)
return center
-/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = /area/space, list/potentialRuins)
+/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = list(/area/space), list/potentialRuins)
if(!z_levels || !z_levels.len)
WARNING("No Z levels provided - Not generating ruins")
return
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 30eed6c8f0..a45275e0c8 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -24,7 +24,9 @@
body_parts_covered = HEAD
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
+ cold_protection = HEAD
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
+ heat_protection = HEAD
armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
resistance_flags = FIRE_PROOF
diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm
index c14aa097bb..439929b9c1 100644
--- a/code/modules/mining/equipment/regenerative_core.dm
+++ b/code/modules/mining/equipment/regenerative_core.dm
@@ -65,7 +65,7 @@
qdel(src)
/obj/item/organ/regenerative_core/on_life()
- ..()
+ . = ..()
if(owner.health < owner.crit_threshold)
ui_action_click()
@@ -75,31 +75,28 @@
apply_healing_core(target, user)
/obj/item/organ/regenerative_core/proc/apply_healing_core(atom/target, mob/user)
- if(ishuman(target))
- var/mob/living/carbon/human/H = target
- if(inert)
- to_chat(user, "[src] has decayed and can no longer be used to heal. ")
- return
- else
- if(H.stat == DEAD)
- to_chat(user, "[src] are useless on the dead. ")
- return
- if(H != user)
- H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!")
- SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
- else
- to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments. ")
- SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
- if(AmBloodsucker(H))
- H.revive(full_heal = FALSE)
- else
- H.revive(full_heal = TRUE)
- qdel(src)
- user.log_message("[user] used [src] to heal [H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another.
+ if(!user || !ishuman(target))
+ return
+ var/mob/living/carbon/human/H = target
+ if(inert)
+ to_chat(user, "[src] has decayed and can no longer be used to heal. ")
+ return
+ if(H.stat == DEAD)
+ to_chat(user, "[src] are useless on the dead. ")
+ return
+ if(H != user)
+ H.visible_message("[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!")
+ SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
+ else
+ to_chat(user, "You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long? ")
+ SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
+ H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE)
+ qdel(src)
+ user.log_message("[user] used [src] to heal [H == user ? "[H.p_them()]self" : H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another.
/obj/item/organ/regenerative_core/attack_self(mob/user) //Knouli's first hack! Allows for the use of the core in hand rather than needing to click on the target, yourself, to selfheal. Its a rip of the proc just above - but skips on distance check and only uses 'user' rather than 'target'
. = ..()
- apply_healing_core(user)
+ apply_healing_core(user, user)
/obj/item/organ/regenerative_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 56e1a04b95..9767ff3866 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -428,7 +428,7 @@
/obj/item/projectile/hook/on_hit(atom/target)
. = ..()
- if(ismovableatom(target))
+ if(ismovable(target))
var/atom/movable/A = target
if(A.anchored)
return
@@ -564,7 +564,7 @@
/obj/item/book_of_babel/attack_self(mob/user)
to_chat(user, "You flip through the pages of the book, quickly and conveniently learning every language in existence. Somewhat less conveniently, the aging book crumbles to dust in the process. Whoops.")
- user.grant_all_languages(omnitongue=TRUE)
+ user.grant_all_languages()
new /obj/effect/decal/cleanable/ash(get_turf(user))
qdel(src)
@@ -659,6 +659,7 @@
nemesis_factions = list("mining", "boss")
var/transform_cooldown
var/swiping = FALSE
+ var/bleed_stacks_per_hit = 3
total_mass = 2.75
total_mass_on = 5
@@ -701,12 +702,11 @@
user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly
/obj/item/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target)
- var/datum/status_effect/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED)
+ var/datum/status_effect/stacking/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED)
if(!B)
- if(!active) //This isn't in the above if-check so that the else doesn't care about active
- target.apply_status_effect(STATUS_EFFECT_SAWBLEED)
+ target.apply_status_effect(STATUS_EFFECT_SAWBLEED,bleed_stacks_per_hit)
else
- B.add_bleed(B.bleed_buildup)
+ B.add_stacks(bleed_stacks_per_hit)
/obj/item/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user)
if(!active || swiping || !target.density || get_turf(target) == get_turf(user))
@@ -833,13 +833,13 @@
force = 0
var/ghost_counter = ghost_check()
- force = CLAMP((ghost_counter * 4), 0, 75)
+ force = clamp((ghost_counter * 4), 0, 75)
user.visible_message("[user] strikes with the force of [ghost_counter] vengeful spirits! ")
return ..()
/obj/item/melee/ghost_sword/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
var/ghost_counter = ghost_check()
- final_block_chance += CLAMP((ghost_counter * 5), 0, 75)
+ final_block_chance += clamp((ghost_counter * 5), 0, 75)
owner.visible_message("[owner] is protected by a ring of [ghost_counter] ghosts! ")
return ..()
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index d4703b8d94..c2ef59cc2b 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -37,16 +37,19 @@
/obj/machinery/mineral/ore_redemption/RefreshParts()
var/ore_pickup_rate_temp = 15
var/point_upgrade_temp = 1
- var/ore_multiplier_temp = 1
+ var/avg_bin_level = 0
+ var/bins = 0
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
- ore_multiplier_temp = 0.65 + (0.35 * B.rating)
+ avg_bin_level = B.rating
+ bins++
for(var/obj/item/stock_parts/manipulator/M in component_parts)
ore_pickup_rate_temp = 15 * M.rating
for(var/obj/item/stock_parts/micro_laser/L in component_parts)
point_upgrade_temp = 0.65 + (0.35 * L.rating)
+ avg_bin_level /= bins? bins : 1
+ ore_multiplier = STANDARD_PART_LEVEL_ORE_COEFFICIENT(avg_bin_level)
ore_pickup_rate = ore_pickup_rate_temp
point_upgrade = point_upgrade_temp
- ore_multiplier = round(ore_multiplier_temp, 0.01)
/obj/machinery/mineral/ore_redemption/examine(mob/user)
. = ..()
diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm
index c0356dd1ab..09246abc46 100644
--- a/code/modules/mining/machine_silo.dm
+++ b/code/modules/mining/machine_silo.dm
@@ -116,7 +116,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
var/list/logs = GLOB.silo_access_logs[REF(src)]
var/len = LAZYLEN(logs)
var/num_pages = 1 + round((len - 1) / 30)
- var/page = CLAMP(log_page, 1, num_pages)
+ var/page = clamp(log_page, 1, num_pages)
if(num_pages > 1)
for(var/i in 1 to num_pages)
if(i == page)
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 56ca94eedd..988197f04f 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -55,6 +55,7 @@
new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 2000),
new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500),
new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500),
+ new /datum/data/mining_equipment("Ice hiking boots", /obj/item/clothing/shoes/winterboots/ice_boots, 2500),
new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000),
new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxuryelite, 10000),
new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800),
@@ -239,7 +240,7 @@
prize_list += list(
new /datum/data/mining_equipment("Extra Id", /obj/item/card/id/mining, 250),
new /datum/data/mining_equipment("Science Goggles", /obj/item/clothing/glasses/science, 250),
- new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/monkeycube, 300),
+ new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/cube/monkey, 300),
new /datum/data/mining_equipment("Toolbelt", /obj/item/storage/belt/utility, 350),
new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500),
new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000),
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index c7c34b0389..e85d4a2e75 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -70,7 +70,6 @@
singular_name = "uranium ore chunk"
points = 30
custom_materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT)
- material_flags = MATERIAL_NO_EFFECTS
refined_type = /obj/item/stack/sheet/mineral/uranium
/obj/item/stack/ore/iron
@@ -319,7 +318,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
throwforce = 2
w_class = WEIGHT_CLASS_TINY
custom_materials = list(/datum/material/iron = 400)
- material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
+ material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS
var/string_attached
var/list/sideslist = list("heads","tails")
var/cooldown = 0
@@ -364,12 +363,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/coin/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/CC = W
if(string_attached)
to_chat(user, "There already is a string attached to this coin! ")
return
- if (CC.use(1))
+ if (W.use_tool(src, user, 0, 1, max_level = JOB_SKILL_BASIC))
add_overlay("coin_string_overlay")
string_attached = 1
to_chat(user, "You attach a string to the coin. ")
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 35b1a69761..f7e1f24b63 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -392,6 +392,8 @@
character.update_parallax_teleport()
+ job.standard_assign_skills(character.mind)
+
SSticker.minds += character.mind
var/mob/living/carbon/human/humanc
diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm
index b669e30a06..9a0d9f9242 100644
--- a/code/modules/mob/dead/new_player/preferences_setup.dm
+++ b/code/modules/mob/dead/new_player/preferences_setup.dm
@@ -18,16 +18,10 @@
hair_color = random_short_color()
facial_hair_color = hair_color
eye_color = random_eye_color()
- horn_color = "85615a"
- wing_color = "fff"
if(!pref_species)
var/rando_race = pick(GLOB.roundstart_races)
pref_species = new rando_race()
- features = random_features(pref_species?.id)
- if(gender == MALE || gender != FEMALE)
- features["body_model"] = gender
- else if(gender == PLURAL)
- features["body_model"] = pick(MALE,FEMALE)
+ features = random_features(pref_species?.id, gender)
age = rand(AGE_MIN,AGE_MAX)
/datum/preferences/proc/update_preview_icon(equip_job = TRUE)
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
index ab278b2e82..6514cb4f80 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
@@ -16,6 +16,7 @@
from doing this unless you absolutely know what you are doing, and have defined a
conversion in savefile.dm
*/
+
/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female, roundstart = FALSE, skip_prototype = TRUE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked
if(!istype(L))
L = list()
@@ -55,19 +56,19 @@
var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations
var/gender_specific //Something that can be worn by either gender, but looks different on each
var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none.
- var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears.
var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects
var/dimension_x = 32
var/dimension_y = 32
var/center = FALSE //Should we center the sprite?
+ var/list/relevant_layers //list of layers that this accessory uses. As of now only used in species.handle_mutant_bodyparts(), but that's where most sprite accessories are anyway.
+ var/mutant_part_string //Also used in species.handle_mutant_bodyparts() to generate the overlay icon state.
+ var/alpha_mask_state
//Special / holdover traits for Citadel specific sprites.
var/extra = FALSE
var/extra_color_src = MUTCOLORS2 //The color source for the extra overlay.
- var/extra_icon = 'modular_citadel/icons/mob/mam_tails.dmi'
var/extra2 = FALSE
var/extra2_color_src = MUTCOLORS3
- var/extra2_icon = 'modular_citadel/icons/mob/mam_tails.dmi'
//for snowflake/donor specific sprites
var/list/ckeys_allowed
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm
index 6c0659f851..c8e7aca26d 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm
@@ -4,6 +4,8 @@
*******************************************/
/datum/sprite_accessory/xeno_dorsal
icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi'
+ mutant_part_string = "xenodorsal"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/xeno_dorsal/standard
name = "Standard"
@@ -22,9 +24,12 @@
*******************************************/
/datum/sprite_accessory/xeno_tail
icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi'
+ mutant_part_string = "tail"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/xeno_tail/none
name = "None"
+ relevant_layers = null
/datum/sprite_accessory/xeno_tail/standard
name = "Xenomorph Tail"
@@ -35,6 +40,8 @@
*******************************************/
/datum/sprite_accessory/xeno_head
icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi'
+ mutant_part_string = "xhead"
+ relevant_layers = list(BODY_ADJ_LAYER)
/datum/sprite_accessory/xeno_head/standard
name = "Standard"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
index 8f043125b2..9950f0d76a 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
@@ -4,10 +4,12 @@
/datum/sprite_accessory/body_markings
icon = 'icons/mob/mutant_bodyparts.dmi'
+ relevant_layers = list(BODY_ADJ_LAYER)
/datum/sprite_accessory/body_markings/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/body_markings/dtiger
name = "Dark Tiger Body"
@@ -45,6 +47,7 @@
icon_state = "none"
ckeys_allowed = list("yousshouldnteverbeseeingthisyoumeme")
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
+ relevant_layers = null
/datum/sprite_accessory/mam_body_markings/plain
name = "Plain"
@@ -219,10 +222,12 @@
/datum/sprite_accessory/insect_fluff
icon = 'icons/mob/wings.dmi'
color_src = 0
+ relevant_layers = list(BODY_FRONT_LAYER)
/datum/sprite_accessory/insect_fluff/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/insect_fluff/plain
name = "Plain"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm
index debb4865ba..822fcf960d 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm
@@ -1,7 +1,8 @@
datum/sprite_accessory/caps
icon = 'icons/mob/mutant_bodyparts.dmi'
color_src = HAIR
+ relevant_layers = list(BODY_ADJ_LAYER)
/datum/sprite_accessory/caps/round
name = "Round"
- icon_state = "round"
\ No newline at end of file
+ icon_state = "round"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
index c91bd633a5..bc269ccf62 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
@@ -1,9 +1,12 @@
/datum/sprite_accessory/ears
icon = 'icons/mob/mutant_bodyparts.dmi'
+ mutant_part_string = "ears"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/ears/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/******************************************
*************** Human Ears ****************
@@ -29,9 +32,10 @@
/datum/sprite_accessory/ears/human/bigwolfinner
name = "Big Wolf (ALT)"
icon_state = "bigwolfinner"
- hasinner = 1
icon = 'modular_citadel/icons/mob/mam_ears.dmi'
color_src = MATRIXED
+ extra = TRUE
+ extra_color_src = NONE
/datum/sprite_accessory/ears/human/bigwolfdark
name = "Dark Big Wolf"
@@ -42,15 +46,17 @@
/datum/sprite_accessory/ears/human/bigwolfinnerdark
name = "Dark Big Wolf (ALT)"
icon_state = "bigwolfinnerdark"
- hasinner = 1
icon = 'modular_citadel/icons/mob/mam_ears.dmi'
color_src = MATRIXED
+ extra = TRUE
+ extra_color_src = NONE
/datum/sprite_accessory/ears/cat
name = "Cat"
icon_state = "cat"
- hasinner = 1
color_src = HAIR
+ extra = TRUE
+ extra_color_src = NONE
/datum/sprite_accessory/ears/human/cow
name = "Cow"
@@ -172,10 +178,13 @@
/datum/sprite_accessory/mam_ears
icon = 'modular_citadel/icons/mob/mam_ears.dmi'
color_src = MATRIXED
+ mutant_part_string = "ears"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/mam_ears/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/mam_ears/axolotl
name = "Axolotl"
@@ -196,7 +205,8 @@
/datum/sprite_accessory/mam_ears/bigwolfinner
name = "Big Wolf (ALT)"
icon_state = "bigwolfinner"
- hasinner = 1
+ extra = TRUE
+ extra_color_src = NONE
/datum/sprite_accessory/mam_ears/bigwolfdark
name = "Dark Big Wolf"
@@ -205,13 +215,16 @@
/datum/sprite_accessory/mam_ears/bigwolfinnerdark
name = "Dark Big Wolf (ALT)"
icon_state = "bigwolfinnerdark"
- hasinner = 1
+ extra = TRUE
+ extra_color_src = NONE
/datum/sprite_accessory/mam_ears/cat
name = "Cat"
icon_state = "cat"
- hasinner = 1
+ icon = 'icons/mob/mutant_bodyparts.dmi'
color_src = HAIR
+ extra = TRUE
+ extra_color_src = NONE
/datum/sprite_accessory/mam_ears/catbig
name = "Cat, Big"
@@ -309,4 +322,4 @@
/datum/sprite_accessory/mam_ears/bunny
name = "Bunny"
- icon_state = "bunny"
\ No newline at end of file
+ icon_state = "bunny"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm
index 93c4af6df0..0aaec309a4 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm
@@ -1,9 +1,11 @@
/datum/sprite_accessory/frills
icon = 'icons/mob/mutant_bodyparts.dmi'
+ relevant_layers = list(BODY_ADJ_LAYER)
/datum/sprite_accessory/frills/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/frills/simple
name = "Simple"
@@ -15,4 +17,4 @@
/datum/sprite_accessory/frills/aquatic
name = "Aquatic"
- icon_state = "aqua"
\ No newline at end of file
+ icon_state = "aqua"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm
index a630ead7b3..6126b6c04b 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm
@@ -1,10 +1,12 @@
/datum/sprite_accessory/horns
icon = 'icons/mob/mutant_bodyparts.dmi'
color_src = HORNCOLOR
+ relevant_layers = list(BODY_ADJ_LAYER)
/datum/sprite_accessory/horns/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/horns/simple
name = "Simple"
@@ -33,4 +35,4 @@
/datum/sprite_accessory/horns/guilmon
name = "Guilmon"
- icon_state = "guilmon"
\ No newline at end of file
+ icon_state = "guilmon"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm
index d47607f6fd..110ac69201 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm
@@ -5,6 +5,7 @@
/datum/sprite_accessory/screen
icon = 'modular_citadel/icons/mob/ipc_screens.dmi'
color_src = null
+ relevant_layers = list(BODY_ADJ_LAYER)
/datum/sprite_accessory/screen/blank
name = "Blank"
@@ -132,6 +133,7 @@
/datum/sprite_accessory/antenna
icon = 'modular_citadel/icons/mob/ipc_antennas.dmi'
color_src = MUTCOLORS2
+ relevant_layers = list(BODY_ADJ_LAYER)
recommended_species = list("ipc")
/datum/sprite_accessory/antenna/none
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm
index fe154ffeec..cbb38a3a6a 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm
@@ -21,29 +21,42 @@
/datum/sprite_accessory/taur
icon = 'modular_citadel/icons/mob/mam_taur.dmi'
- extra_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
- extra = TRUE
- extra2_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
- extra2 = TRUE
center = TRUE
dimension_x = 64
- var/taur_mode = NONE //Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2
- var/alt_taur_mode = NONE //Same as above.
color_src = MATRIXED
recommended_species = list("human", "lizard", "insect", "mammal", "xeno", "jelly", "slimeperson", "podweak")
+ relevant_layers = list(BODY_ADJ_UPPER_LAYER, BODY_FRONT_LAYER)
+ var/taur_mode = NONE //Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2
+ var/alt_taur_mode = NONE //Same as above.
+ var/hide_legs = USE_QUADRUPED_CLIP_MASK
+
+/datum/sprite_accessory/taur/New()
+ switch(hide_legs)
+ if(USE_QUADRUPED_CLIP_MASK)
+ alpha_mask_state = "taur_mask_def"
+ if(USE_SNEK_CLIP_MASK)
+ alpha_mask_state = "taur_mask_naga"
/datum/sprite_accessory/taur/none
- dimension_x = 32
- center = FALSE
name = "None"
icon_state = "None"
+ dimension_x = 32
+ center = FALSE
recommended_species = null
+ relevant_layers = null
+ hide_legs = FALSE
/datum/sprite_accessory/taur/cow
name = "Cow"
icon_state = "cow"
taur_mode = STYLE_HOOF_TAURIC
alt_taur_mode = STYLE_PAW_TAURIC
+ color_src = MUTCOLORS
+
+/datum/sprite_accessory/taur/cow/spotted
+ name = "Cow (Spotted)"
+ icon_state = "cow_spotted"
+ color_src = MATRIXED
/datum/sprite_accessory/taur/deer
name = "Deer"
@@ -56,27 +69,21 @@
name = "Drake"
icon_state = "drake"
taur_mode = STYLE_PAW_TAURIC
+ color_src = MUTCOLORS
+ extra = TRUE
/datum/sprite_accessory/taur/drider
name = "Drider"
icon_state = "drider"
color_src = MUTCOLORS
+ extra = TRUE
/datum/sprite_accessory/taur/eevee
name = "Eevee"
icon_state = "eevee"
taur_mode = STYLE_PAW_TAURIC
color_src = MUTCOLORS
-
-/datum/sprite_accessory/taur/fox
- name = "Fox"
- icon_state = "fox"
- taur_mode = STYLE_PAW_TAURIC
-
-/datum/sprite_accessory/taur/husky
- name = "Husky"
- icon_state = "husky"
- taur_mode = STYLE_PAW_TAURIC
+ extra = TRUE
/datum/sprite_accessory/taur/horse
name = "Horse"
@@ -84,15 +91,11 @@
taur_mode = STYLE_HOOF_TAURIC
alt_taur_mode = STYLE_PAW_TAURIC
-/datum/sprite_accessory/taur/lab
- name = "Lab"
- icon_state = "lab"
- taur_mode = STYLE_PAW_TAURIC
-
/datum/sprite_accessory/taur/naga
name = "Naga"
icon_state = "naga"
taur_mode = STYLE_SNEK_TAURIC
+ hide_legs = USE_SNEK_CLIP_MASK
/datum/sprite_accessory/taur/otie
name = "Otie"
@@ -104,29 +107,26 @@
icon_state = "pede"
taur_mode = STYLE_PAW_TAURIC
color_src = MUTCOLORS
-
-/datum/sprite_accessory/taur/panther
- name = "Panther"
- icon_state = "panther"
- taur_mode = STYLE_PAW_TAURIC
-
-/datum/sprite_accessory/taur/shepherd
- name = "Shepherd"
- icon_state = "shepherd"
- taur_mode = STYLE_PAW_TAURIC
+ extra = TRUE
+ extra2 = TRUE
/datum/sprite_accessory/taur/tentacle
name = "Tentacle"
icon_state = "tentacle"
taur_mode = STYLE_SNEK_TAURIC
color_src = MUTCOLORS
+ hide_legs = USE_SNEK_CLIP_MASK
-/datum/sprite_accessory/taur/tiger
- name = "Tiger"
- icon_state = "tiger"
+/datum/sprite_accessory/taur/canine
+ name = "Canine"
+ icon_state = "canine"
taur_mode = STYLE_PAW_TAURIC
+ color_src = MUTCOLORS
+ extra = TRUE
-/datum/sprite_accessory/taur/wolf
- name = "Wolf"
- icon_state = "wolf"
+/datum/sprite_accessory/taur/feline
+ name = "Feline"
+ icon_state = "feline"
taur_mode = STYLE_PAW_TAURIC
+ color_src = MUTCOLORS
+ extra = TRUE
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm
index c016e9b119..60e8ed1007 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm
@@ -1,5 +1,7 @@
/datum/sprite_accessory/snouts
icon = 'icons/mob/mutant_bodyparts.dmi'
+ mutant_part_string = "snout"
+ relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/snouts/sharp
name = "Sharp"
@@ -152,11 +154,14 @@
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_snouts.dmi'
recommended_species = list("mammal", "slimeperson", "insect", "podweak")
+ mutant_part_string = "snout"
+ relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/mam_snouts/none
name = "None"
icon_state = "none"
recommended_species = null
+ relevant_layers = null
/datum/sprite_accessory/mam_snouts/bird
name = "Beak"
@@ -383,4 +388,4 @@
/datum/sprite_accessory/mam_snouts/froundlight
name = "Round + Light (Top)"
icon_state = "froundlight"
- color_src = MUTCOLORS
\ No newline at end of file
+ color_src = MUTCOLORS
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/pines.dm b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm
similarity index 87%
rename from code/modules/mob/dead/new_player/sprite_accessories/pines.dm
rename to code/modules/mob/dead/new_player/sprite_accessories/spines.dm
index 4ccbc3d9ea..54749d5ea9 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/pines.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm
@@ -1,12 +1,15 @@
/datum/sprite_accessory/spines
icon = 'icons/mob/mutant_bodyparts.dmi'
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER)
/datum/sprite_accessory/spines_animated
icon = 'icons/mob/mutant_bodyparts.dmi'
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER)
/datum/sprite_accessory/spines/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/spines_animated/none
name = "None"
@@ -50,4 +53,4 @@
/datum/sprite_accessory/spines_animated/aqautic
name = "Aquatic"
- icon_state = "aqua"
\ No newline at end of file
+ icon_state = "aqua"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
index 90980743e1..2bb0d6ba77 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
@@ -1,8 +1,12 @@
/datum/sprite_accessory/tails
icon = 'icons/mob/mutant_bodyparts.dmi'
+ mutant_part_string = "tail"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/tails_animated
icon = 'icons/mob/mutant_bodyparts.dmi'
+ mutant_part_string = "tailwag"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/******************************************
************* Lizard Tails ****************
@@ -43,10 +47,12 @@
/datum/sprite_accessory/tails/lizard/none
name = "None"
icon_state = "None"
+ relevant_layers = null
/datum/sprite_accessory/tails_animated/lizard/none
name = "None"
icon_state = "None"
+ relevant_layers = null
/datum/sprite_accessory/tails/lizard/axolotl
name = "Axolotl"
@@ -85,10 +91,12 @@
/datum/sprite_accessory/tails/human/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/tails_animated/human/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/tails/human/ailurus
name = "Red Panda"
@@ -502,20 +510,25 @@
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
recommended_species = list("mammal", "slimeperson", "podweak", "felinid", "insect")
+ mutant_part_string = "tail"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/mam_tails/none
name = "None"
icon_state = "none"
recommended_species = null
+ relevant_layers = null
/datum/sprite_accessory/mam_tails_animated
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ mutant_part_string = "tailwag"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/mam_tails_animated/none
name = "None"
icon_state = "none"
- color_src = MATRIXED
+ relevant_layers = null
/datum/sprite_accessory/mam_tails/ailurus
name = "Red Panda"
@@ -576,7 +589,7 @@
/datum/sprite_accessory/mam_tails_animated/catbig
name = "Cat, Big"
icon_state = "catbig"
-
+
/datum/sprite_accessory/mam_tails/twocat
name = "Cat, Double"
icon_state = "twocat"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
index 9c1eb6a3fa..34767a10f1 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
@@ -3,9 +3,11 @@
/datum/sprite_accessory/wings/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/wings_open
icon = 'icons/mob/wings.dmi'
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/wings_open/angel
name = "Angel"
@@ -17,6 +19,7 @@
/datum/sprite_accessory/wings
icon = 'icons/mob/wings.dmi'
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/wings/angel
name = "Angel"
@@ -32,10 +35,13 @@
/datum/sprite_accessory/deco_wings
icon = 'icons/mob/wings.dmi'
color_src = WINGCOLOR
+ mutant_part_string = "insect_wings"
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/deco_wings/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/deco_wings/angel
name = "Angel"
@@ -44,6 +50,7 @@
dimension_x = 46
center = TRUE
dimension_y = 34
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/deco_wings/bat
name = "Bat"
@@ -130,10 +137,12 @@
/datum/sprite_accessory/insect_wings
icon = 'icons/mob/wings.dmi'
color_src = WINGCOLOR
+ relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
/datum/sprite_accessory/insect_wings/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/insect_wings/bat
name = "Bat"
@@ -231,10 +240,12 @@
/datum/sprite_accessory/insect_markings // Extra markings for insects ported from tg.
icon = 'icons/mob/insect_markings.dmi'
color_src = null
+ relevant_layers = list(BODY_ADJ_LAYER)
/datum/sprite_accessory/insect_markings/none
name = "None"
icon_state = "none"
+ relevant_layers = null
/datum/sprite_accessory/insect_markings/reddish
name = "Reddish"
@@ -290,4 +301,4 @@
/datum/sprite_accessory/insect_markings/witchwing
name = "Witch Wing"
- icon_state = "witchwing"
\ No newline at end of file
+ icon_state = "witchwing"
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index b2d02d8fa2..b8e56f3d7c 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -570,7 +570,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
views |= i
var/new_view = input("Choose your new view", "Modify view range", 7) as null|anything in views
if(new_view)
- client.change_view(CLAMP(new_view, 7, max_view))
+ client.change_view(clamp(new_view, 7, max_view))
else
client.change_view(CONFIG_GET(string/default_view))
@@ -937,3 +937,20 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
spawners_menu = new(src)
spawners_menu.ui_interact(src)
+
+/mob/dead/observer/verb/game_info()
+ set name = "Game info"
+ set desc = "Shows various info relating to the game mode, antagonists etc."
+ set category = "Ghost"
+ if(!started_as_observer && can_reenter_corpse)
+ to_chat(src, "You cannot see this info unless you are an observer or you've chosen Do Not Resuscitate!")
+ return
+ var/list/stuff = list("[SSticker.mode.name]")
+ stuff += "Antagonists:\n"
+ for(var/datum/antagonist/A in GLOB.antagonists)
+ if(A.owner)
+ stuff += "[A.owner] the [A.name]"
+ var/ghost_info = SSticker.mode.ghost_info()
+ if(ghost_info)
+ stuff += ghost_info
+ to_chat(src,stuff.Join("\n"))
diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm
index 8712f39531..c5c7350b47 100644
--- a/code/modules/mob/dead/observer/say.dm
+++ b/code/modules/mob/dead/observer/say.dm
@@ -33,6 +33,9 @@
else
to_follow = V.source
var/link = FOLLOW_LINK(src, to_follow)
+ // Create map text prior to modifying message for goonchat
+ if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker)))
+ create_chat_message(speaker, message_language, raw_message, spans, message_mode)
// Recompose the message, because it's scrambled by default
message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source)
to_chat(src, "[link] [message]")
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 9f7d2067de..fad3a7e534 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -333,7 +333,8 @@
I.moveToNullspace()
else
I.forceMove(newloc)
- I.dropped(src)
+ if(I.dropped(src) == ITEM_RELOCATED_BY_DROPPED)
+ return FALSE
return TRUE
//Outdated but still in use apparently. This should at least be a human proc.
diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm
index f32d84ae73..90621ecd3f 100644
--- a/code/modules/mob/living/brain/brain_item.dm
+++ b/code/modules/mob/living/brain/brain_item.dm
@@ -229,7 +229,7 @@
var/adjusted_amount
if(amount >= 0 && maximum)
var/brainloss = get_brain_damage()
- var/new_brainloss = CLAMP(brainloss + amount, 0, maximum)
+ var/new_brainloss = clamp(brainloss + amount, 0, maximum)
if(brainloss > new_brainloss) //brainloss is over the cap already
return 0
adjusted_amount = new_brainloss - brainloss
@@ -245,23 +245,17 @@
. = adjusted_amount
*/
-/obj/item/organ/brain/on_life()
- if(damage >= BRAIN_DAMAGE_DEATH) //rip
- to_chat(owner, "The last spark of life in your brain fizzles out... ")
- owner.death()
- brain_death = TRUE
- return
- ..()
-
-/obj/item/organ/brain/on_death()
- if(damage <= BRAIN_DAMAGE_DEATH) //rip
- brain_death = FALSE
- ..()
-
-
/obj/item/organ/brain/applyOrganDamage(var/d, var/maximum = maxHealth)
- ..()
-
+ . = ..()
+ if(!. || !owner)
+ return
+ if(damage >= BRAIN_DAMAGE_DEATH) //rip
+ if(owner.stat != DEAD)
+ to_chat(owner, "The last spark of life in your brain fizzles out... ")
+ owner.death()
+ brain_death = TRUE
+ else
+ brain_death = FALSE
/obj/item/organ/brain/check_damage_thresholds(mob/M)
. = ..()
diff --git a/code/modules/mob/living/brain/say.dm b/code/modules/mob/living/brain/say.dm
index b7d7e1d7fc..7f6d5215a0 100644
--- a/code/modules/mob/living/brain/say.dm
+++ b/code/modules/mob/living/brain/say.dm
@@ -25,10 +25,3 @@
/mob/living/brain/treat_message(message)
message = capitalize(message)
return message
-
-/mob/living/brain/could_speak_in_language(datum/language/dt)
- if(istype(container, /obj/item/mmi/posibrain/soul_vessel))
- // soul vessels can only speak ratvarian.
- . = ispath(dt, /datum/language/ratvar)
- else
- . = ..()
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index bbe9a89a37..a3600e6827 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -12,6 +12,13 @@
bubble_icon = "alien"
type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab/xeno
+ /// How much brute damage without armor piercing they do against mobs in melee
+ var/meleeSlashHumanPower = 20
+ /// How much power they have for DefaultCombatKnockdown when attacking humans
+ var/meleeKnockdownPower = 100
+ /// How much brute damage they do to simple animals
+ var/meleeSlashSAPower = 35
+
var/obj/item/card/id/wear_id = null // Fix for station bounced radios -- Skie
var/has_fine_manipulation = 0
var/move_delay_add = 0 // movement delay to add
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
index 183bf07e8c..072c4e0231 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
@@ -4,6 +4,7 @@
maxHealth = 125
health = 125
icon_state = "aliend"
+ meleeKnockdownPower = 80
/mob/living/carbon/alien/humanoid/drone/Initialize()
AddAbility(new/obj/effect/proc_holder/alien/evolve(null))
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
index faea8e9bbc..0ce8482ca1 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
@@ -1,9 +1,12 @@
/mob/living/carbon/alien/humanoid/hunter
name = "alien hunter"
caste = "h"
- maxHealth = 125
- health = 125
+ maxHealth = 170
+ health = 170
icon_state = "alienh"
+ meleeKnockdownPower = 75
+ meleeSlashHumanPower = 20
+ meleeSlashSAPower = 45
var/obj/screen/leap_icon = null
/mob/living/carbon/alien/humanoid/hunter/create_internal_organs()
@@ -63,11 +66,12 @@
if(hit_atom)
if(isliving(hit_atom))
var/mob/living/L = hit_atom
- if(L.run_block(src, 0, "the [name]", ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS)
+ if(L.mob_run_block(src, 0, "the [name]", ATTACK_TYPE_TACKLE, 0, src, null, null) & BLOCK_SUCCESS)
DefaultCombatKnockdown(40, 1, 1)
else
L.visible_message("[src] pounces on [L]! ", "[src] pounces on you! ")
L.DefaultCombatKnockdown(100)
+ L.Stagger(4 SECONDS)
sleep(2)//Runtime prevention (infinite bump() calls on hulks)
step_towards(src,L)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
index 7c6443cfae..67cf6f7d25 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
@@ -1,9 +1,10 @@
/mob/living/carbon/alien/humanoid/sentinel
name = "alien sentinel"
caste = "s"
- maxHealth = 150
- health = 150
+ maxHealth = 140
+ health = 140
icon_state = "aliens"
+ meleeSlashHumanPower = 15
/mob/living/carbon/alien/humanoid/sentinel/Initialize()
AddAbility(new /obj/effect/proc_holder/alien/sneak)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 048b5062ec..c813ce40f0 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -112,7 +112,6 @@
return A
return FALSE
-
/mob/living/carbon/alien/humanoid/check_breath(datum/gas_mixture/breath)
if(breath && breath.total_moles() > 0 && !sneaking)
playsound(get_turf(src), pick('sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg'), 50, 0, -5)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
index 1d613db07a..5ebf6210d0 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
@@ -1,4 +1,3 @@
-
/mob/living/carbon/alien/humanoid/grabbedby(mob/living/carbon/user, supress_message = 0)
if(user == src && pulling && grab_state >= GRAB_AGGRESSIVE && !pulling.anchored && iscarbon(pulling))
devour_mob(pulling, devour_time = 60)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index fd6a73ae7b..67c9285377 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -1,5 +1,3 @@
-
-
/mob/living/carbon/alien/humanoid/proc/adjust_body_temperature(current, loc_temp, boost)
var/temperature = current
var/difference = abs(current-loc_temp) //get difference
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index 6141a97c12..1200220ce4 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -11,6 +11,10 @@
pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper.
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3)
+ meleeKnockdownPower = 125
+ meleeSlashHumanPower = 30
+ meleeSlashSAPower = 60
+
var/alt_inhands_file = 'icons/mob/alienqueen.dmi'
/mob/living/carbon/alien/humanoid/royal/can_inject(mob/user, error_msg, target_zone, penetrate_thick = FALSE, bypass_immunity = FALSE)
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index fb26a40350..93050a4f9d 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -6,6 +6,7 @@
mob_size = MOB_SIZE_SMALL
density = FALSE
hud_type = /datum/hud/larva
+ mouse_opacity = MOUSE_OPACITY_OPAQUE
maxHealth = 25
health = 25
diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm
index b57f9653a9..8485fece85 100644
--- a/code/modules/mob/living/carbon/alien/organs.dm
+++ b/code/modules/mob/living/carbon/alien/organs.dm
@@ -77,6 +77,9 @@
alien_powers = list(/obj/effect/proc_holder/alien/transfer)
/obj/item/organ/alien/plasmavessel/on_life()
+ . = ..()
+ if(!.)
+ return
//If there are alien weeds on the ground then heal if needed or give some plasma
if(locate(/obj/structure/alien/weeds) in owner.loc)
if(owner.health >= owner.maxHealth)
diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
index 5352329f99..0e8764a372 100644
--- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
+++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
@@ -23,6 +23,8 @@
/obj/item/organ/body_egg/alien_embryo/on_life()
. = ..()
+ if(!owner)
+ return
switch(stage)
if(2, 3)
if(prob(2))
diff --git a/code/modules/mob/living/carbon/alien/status_procs.dm b/code/modules/mob/living/carbon/alien/status_procs.dm
index 4a63a72686..71d61cab25 100644
--- a/code/modules/mob/living/carbon/alien/status_procs.dm
+++ b/code/modules/mob/living/carbon/alien/status_procs.dm
@@ -20,5 +20,5 @@
/mob/living/carbon/alien/AdjustStun(amount, updating = 1, ignore_canstun = 0)
. = ..()
if(!.)
- move_delay_add = CLAMP(move_delay_add + round(amount/2), 0, 10)
+ move_delay_add = clamp(move_delay_add + round(amount/2), 0, 10)
*/
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 25f0cb5b89..821b432ea5 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -7,6 +7,7 @@
update_body_parts() //to update the carbon's new bodyparts appearance
GLOB.carbon_list += src
blood_volume = (BLOOD_VOLUME_NORMAL * blood_ratio)
+ add_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling)
/mob/living/carbon/Destroy()
//This must be done first, so the mob ghosts correctly before DNA etc is nulled
@@ -98,6 +99,8 @@
/mob/living/carbon/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
. = ..()
var/hurt = TRUE
+ if(GetComponent(/datum/component/tackler))
+ return
if(throwingdatum?.thrower && iscyborg(throwingdatum.thrower))
var/mob/living/silicon/robot/R = throwingdatum.thrower
if(!R.emagged)
@@ -196,7 +199,7 @@
to_chat(src, "You set [I] down gently on the ground. ")
return
- adjustStaminaLossBuffered(I.getweight()*2)//CIT CHANGE - throwing items shall be more tiring than swinging em. Doubly so.
+ adjustStaminaLossBuffered(I.getweight(src, STAM_COST_THROW_MULT, SKILL_THROW_STAM_COST))
if(thrown_thing)
visible_message("[src] has thrown [thrown_thing]. ")
@@ -537,10 +540,16 @@
return 1
/mob/living/carbon/proc/spew_organ(power = 5, amt = 1)
+ var/list/spillable_organs = list()
+ for(var/A in internal_organs)
+ var/obj/item/organ/O = A
+ if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT))
+ spillable_organs += O
for(var/i in 1 to amt)
- if(!internal_organs.len)
+ if(!spillable_organs.len)
break //Guess we're out of organs!
- var/obj/item/organ/guts = pick(internal_organs)
+ var/obj/item/organ/guts = pick(spillable_organs)
+ spillable_organs -= guts
var/turf/T = get_turf(src)
guts.Remove()
guts.forceMove(T)
@@ -548,6 +557,7 @@
guts.throw_at(throw_target, power, 4, src)
+
/mob/living/carbon/fully_replace_character_name(oldname,newname)
..()
if(dna)
@@ -572,9 +582,9 @@
become_husk("burn")
med_hud_set_health()
if(stat == SOFT_CRIT)
- add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN)
+ add_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit)
else
- remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit)
/mob/living/carbon/update_stamina()
var/stam = getStaminaLoss()
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 9c4f0316b7..9a4f905dd1 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -9,7 +9,7 @@
if(istype(src.glasses, /obj/item/clothing/glasses)) //glasses
var/obj/item/clothing/glasses/GFP = src.glasses
number += GFP.flash_protect
-
+
if(istype(src.wear_mask, /obj/item/clothing/mask)) //mask
var/obj/item/clothing/mask/MFP = src.wear_mask
number += MFP.flash_protect
@@ -77,24 +77,22 @@
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded)
/mob/living/carbon/attacked_by(obj/item/I, mob/living/user)
- //CIT CHANGES START HERE - combatmode and resting checks
- var/totitemdamage = I.force
+ var/totitemdamage = pre_attacked_by(I, user)
if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
totitemdamage *= 0.5
if(!CHECK_MOBILITY(user, MOBILITY_STAND))
totitemdamage *= 0.5
if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
totitemdamage *= 1.5
- //CIT CHANGES END HERE
var/impacting_zone = (user == src)? check_zone(user.zone_selected) : ran_zone(user.zone_selected)
- if((user != src) && (run_block(I, totitemdamage, "the [I]", ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone) & BLOCK_SUCCESS))
+ if((user != src) && (mob_run_block(I, totitemdamage, "the [I]", ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone, null) & BLOCK_SUCCESS))
return FALSE
var/obj/item/bodypart/affecting = get_bodypart(impacting_zone)
if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest)
affecting = bodyparts[1]
SEND_SIGNAL(I, COMSIG_ITEM_ATTACK_ZONE, src, user, affecting)
send_item_attack_message(I, user, affecting.name)
- I.do_stagger_action(src, user)
+ I.do_stagger_action(src, user, totitemdamage)
if(I.force)
apply_damage(totitemdamage, I.damtype, affecting) //CIT CHANGE - replaces I.force with totitemdamage
if(I.damtype == BRUTE && affecting.status == BODYPART_ORGANIC)
@@ -275,7 +273,7 @@
if(health >= 0 && !(HAS_TRAIT(src, TRAIT_FAKEDEATH)))
var/friendly_check = FALSE
- if(run_block(M, 0, M.name, ATTACK_TYPE_UNARMED))
+ if(mob_run_block(M, 0, M.name, ATTACK_TYPE_UNARMED, 0, null, null, null))
return
if(lying)
if(buckled)
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index cf81d5f64f..a1c9239e09 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -63,6 +63,7 @@
var/damageoverlaytemp = 0
var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects
+ var/tackling = FALSE //Whether or not we are tackling, this will prevent the knock into effects for carbons
/// Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection
var/heat_protection = 0 // No heat protection
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index 414f339b28..adca193ce0 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -38,7 +38,7 @@
adjustCloneLoss(damage_amount, forced = forced)
if(STAMINA)
if(BP)
- if(damage > 0 ? BP.receive_damage(0, 0, damage_amount) : BP.heal_damage(0, 0, abs(damage_amount)))
+ if(damage > 0 ? BP.receive_damage(0, 0, damage_amount) : BP.heal_damage(0, 0, abs(damage_amount), FALSE, FALSE))
update_damage_overlays()
else
adjustStaminaLoss(damage_amount, forced = forced)
diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm
index 28e0f2028d..60fa395319 100644
--- a/code/modules/mob/living/carbon/death.dm
+++ b/code/modules/mob/living/carbon/death.dm
@@ -41,18 +41,14 @@
if(no_brain && istype(O, /obj/item/organ/brain))
qdel(O) //so the brain isn't transfered to the head when the head drops.
continue
- var/org_zone = check_zone(O.zone) //both groin and chest organs.
- if(org_zone == BODY_ZONE_CHEST)
+ if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT) && check_zone(O.zone) == BODY_ZONE_CHEST)
O.Remove()
O.forceMove(Tsec)
O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
else
for(var/X in internal_organs)
var/obj/item/organ/I = X
- if(no_brain && istype(I, /obj/item/organ/brain))
- qdel(I)
- continue
- if(no_organs && !istype(I, /obj/item/organ/brain))
+ if(I.organ_flags & ORGAN_NO_DISMEMBERMENT || (no_brain && istype(I, /obj/item/organ/brain)) || (no_organs && !istype(I, /obj/item/organ/brain)))
qdel(I)
continue
I.Remove()
diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm
index 7918e303e8..24eb5d7234 100644
--- a/code/modules/mob/living/carbon/human/dummy.dm
+++ b/code/modules/mob/living/carbon/human/dummy.dm
@@ -43,5 +43,6 @@ GLOBAL_LIST_EMPTY(dummy_mob_list)
return
var/mob/living/carbon/human/dummy/D = GLOB.human_dummy_list[slotnumber]
if(istype(D))
+ D.set_species(/datum/species/human,icon_update = TRUE, pref_load = TRUE) //for some fucking reason, if you don't change the species every time, some species will dafault certain things when it's their own species on the mannequin two times in a row, like lizards losing spines and tails setting to smooth. If you can find a fix for this that isn't this, good on you
D.wipe_state()
D.in_use = FALSE
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 94aba6851a..ea91a90ee9 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -38,8 +38,9 @@
. = ..()
if(!CONFIG_GET(flag/disable_human_mood))
AddComponent(/datum/component/mood)
- AddElement(/datum/element/flavor_text/carbon)
+ AddElement(/datum/element/flavor_text/carbon, _name = "Flavor Text", _save_key = "flavor_text")
AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!")
+ AddElement(/datum/element/flavor_text, _name = "OOC Notes", _addendum = "Put information on ERP/vore/lewd-related preferences here. THIS SHOULD NOT CONTAIN REGULAR FLAVORTEXT!!", _always_show = TRUE, _save_key = "ooc_notes", _examine_no_preview = TRUE)
/mob/living/carbon/human/Destroy()
QDEL_NULL(physiology)
@@ -768,7 +769,7 @@
return
else
if(hud_used.healths)
- var/health_amount = min(health, maxHealth - CLAMP(getStaminaLoss()-50, 0, 80))//CIT CHANGE - makes staminaloss have less of an impact on the health hud
+ var/health_amount = min(health, maxHealth - clamp(getStaminaLoss()-50, 0, 80))//CIT CHANGE - makes staminaloss have less of an impact on the health hud
if(..(health_amount)) //not dead
switch(hal_screwyhud)
if(SCREWYHUD_CRIT)
@@ -1041,7 +1042,7 @@
return FALSE
/mob/living/carbon/human/proc/clear_shove_slowdown()
- remove_movespeed_modifier(MOVESPEED_ID_SHOVE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/shove)
var/active_item = get_active_held_item()
if(is_type_in_typecache(active_item, GLOB.shove_disarming_types))
visible_message("[src.name] regains their grip on \the [active_item]! ", "You regain your grip on \the [active_item] ", null, COMBAT_MESSAGE_RANGE)
@@ -1049,18 +1050,22 @@
/mob/living/carbon/human/updatehealth()
. = ..()
- if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN))
- remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN)
- remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING)
+ if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN)) //if we want to ignore slowdown from damage and equipment
+ remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown)
+ remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying)
return
var/stambufferinfluence = (bufferedstam*(100/stambuffer))*0.2 //CIT CHANGE - makes stamina buffer influence movedelay
- var/health_deficiency = ((100 + stambufferinfluence) - health + (getStaminaLoss()*0.75))//CIT CHANGE - reduces the impact of staminaloss and makes stamina buffer influence it
- if(health_deficiency >= 40)
- add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN, override = TRUE, multiplicative_slowdown = ((health_deficiency-39) / 75), blacklisted_movetypes = FLOATING|FLYING)
- add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING, override = TRUE, multiplicative_slowdown = ((health_deficiency-39) / 25), movetypes = FLYING, blacklisted_movetypes = FLOATING)
+ if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) //if we want to ignore slowdown from damage, but not from equipment
+ var/health_deficiency = ((maxHealth + stambufferinfluence) - health + (getStaminaLoss()*0.75))//CIT CHANGE - reduces the impact of staminaloss and makes stamina buffer influence it
+ if(health_deficiency >= 40)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, (health_deficiency-39) / 75)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, (health_deficiency-39) / 25)
+ else
+ remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown)
+ remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying)
else
- remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN)
- remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING)
+ remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown)
+ remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying)
/mob/living/carbon/human/do_after_coefficent()
. = ..()
diff --git a/code/modules/mob/living/carbon/human/human_block.dm b/code/modules/mob/living/carbon/human/human_block.dm
index b1a5153ce5..8fe0376a08 100644
--- a/code/modules/mob/living/carbon/human/human_block.dm
+++ b/code/modules/mob/living/carbon/human/human_block.dm
@@ -1,8 +1,8 @@
/mob/living/carbon/human/get_blocking_items()
. = ..()
if(wear_suit)
- . += wear_suit
+ . |= wear_suit
if(w_uniform)
- . += w_uniform
+ . |= w_uniform
if(wear_neck)
- . += wear_neck
+ . |= wear_neck
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 324420a7dd..856c57687f 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -155,7 +155,7 @@
if(M.a_intent == INTENT_HARM)
if (w_uniform)
w_uniform.add_fingerprint(M)
- var/damage = prob(90) ? 20 : 0
+ var/damage = prob(90) ? M.meleeSlashHumanPower : 0
if(!damage)
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1)
visible_message("[M] has lunged at [src]! ", \
@@ -182,10 +182,7 @@
"[M] disarmed [src]! ")
else
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
- if(!lying) //CITADEL EDIT
- DefaultCombatKnockdown(100, TRUE, FALSE, 30, 25)
- else
- DefaultCombatKnockdown(100)
+ DefaultCombatKnockdown(M.meleeKnockdownPower)
log_combat(M, src, "tackled")
visible_message("[M] has tackled down [src]! ", \
"[M] has tackled down [src]! ")
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 68c312b19c..59766b03a4 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -11,7 +11,7 @@
status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH|CANSTAGGER
blocks_emissive = EMISSIVE_BLOCK_UNIQUE
-
+
//Hair colour and style
var/hair_color = "000"
var/hair_style = "Bald"
@@ -23,10 +23,6 @@
//Eye colour
var/eye_color = "000"
- var/horn_color = "85615a" //specific horn colors, because why not?
-
- var/wing_color = "fff" //wings too
-
var/skin_tone = "caucasian1" //Skin tone
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index a26bdd99cd..733f792109 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -1,11 +1,13 @@
/mob/living/carbon/human/get_movespeed_modifiers()
var/list/considering = ..()
- . = considering
if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN))
- for(var/id in .)
- var/list/data = .[id]
- if(data[MOVESPEED_DATA_INDEX_FLAGS] & IGNORE_NOSLOW)
- .[id] = data
+ . = list()
+ for(var/id in considering)
+ var/datum/movespeed_modifier/M = considering[id]
+ if(M.flags & IGNORE_NOSLOW || M.multiplicative_slowdown < 0)
+ .[id] = M
+ return
+ return considering
/mob/living/carbon/human/movement_delay()
. = ..()
@@ -22,13 +24,18 @@
/mob/living/carbon/human/slip(knockdown_amount, obj/O, lube)
if(HAS_TRAIT(src, TRAIT_NOSLIPALL))
return 0
- if (!(lube&GALOSHES_DONT_HELP))
+ if (!(lube & GALOSHES_DONT_HELP))
if(HAS_TRAIT(src, TRAIT_NOSLIPWATER))
return 0
if(shoes && istype(shoes, /obj/item/clothing))
var/obj/item/clothing/CS = shoes
if (CS.clothing_flags & NOSLIP)
return 0
+ if (lube & SLIDE_ICE)
+ if(shoes && istype(shoes, /obj/item/clothing))
+ var/obj/item/clothing/CS = shoes
+ if (CS.clothing_flags & NOSLIP_ICE)
+ return FALSE
return ..()
/mob/living/carbon/human/experience_pressure_difference()
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 5e6aef75ca..962d3a649d 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -35,10 +35,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/hair_color // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color
var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent.
-
- var/horn_color //specific horn colors, because why not?
- var/wing_color
-
var/use_skintones = NO_SKINTONES // does it use skintones or not? (spoiler alert this is only used by humans)
var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id.
var/exotic_bloodtype = "" //If your race uses a non standard bloodtype (A+, O-, AB-, etc)
@@ -53,6 +49,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/blacklisted = 0 //Flag to exclude from green slime core species.
var/dangerous_existence //A flag for transformation spells that tells them "hey if you turn a person into one of these without preperation, they'll probably die!"
var/say_mod = "says" // affects the speech message
+ var/species_language_holder = /datum/language_holder
var/list/mutant_bodyparts = list() // Visible CURRENT bodyparts that are unique to a species. Changes to this list for non-species specific bodyparts (ie cat ears and tails) should be assigned at organ level if possible. Layer hiding is handled by handle_mutant_bodyparts() below.
var/list/mutant_organs = list() //Internal organs that are unique to this race.
var/speedmod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster
@@ -331,7 +328,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(mutant_bodyparts["meat_type"]) //I can't believe it's come to the meat
H.type_of_meat = GLOB.meat_types[H.dna.features["meat_type"]]
- C.add_movespeed_modifier(MOVESPEED_ID_SPECIES, TRUE, 100, override=TRUE, multiplicative_slowdown=speedmod, movetypes=(~FLYING))
+ C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod)
SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species)
@@ -349,7 +346,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
for(var/X in inherent_traits)
REMOVE_TRAIT(C, X, SPECIES_TRAIT)
- C.remove_movespeed_modifier(MOVESPEED_ID_SPECIES)
+ C.remove_movespeed_modifier(/datum/movespeed_modifier/species)
if(mutant_bodyparts["meat_type"])
C.type_of_meat = GLOB.meat_types[C.dna.features["meat_type"]]
@@ -550,8 +547,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
//Underwear, Undershirts & Socks
if(!(NO_UNDERWEAR in species_traits))
-
- if(H.socks && !H.hidden_socks && H.get_num_legs(FALSE) >= 2)
+ var/datum/sprite_accessory/taur/TA
+ if(mutant_bodyparts["taur"] && H.dna.features["taur"])
+ TA = GLOB.taur_list[H.dna.features["taur"]]
+ if(!(TA?.hide_legs) && H.socks && !H.hidden_socks && H.get_num_legs(FALSE) >= 2)
if(H.saved_socks)
H.socks = H.saved_socks
H.saved_socks = ""
@@ -584,7 +583,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/state = "[T.icon_state][((DIGITIGRADE in species_traits) && T.has_digitigrade) ? "_d" : ""]"
var/mutable_appearance/MA
if(H.dna.species.sexes && H.dna.features["body_model"] == FEMALE)
- MA = wear_female_version(state, T.icon, BODY_LAYER)
+ MA = wear_alpha_masked_version(state, T.icon, BODY_LAYER, FEMALE_UNIFORM_TOP)
else
MA = mutable_appearance(T.icon, state, -BODY_LAYER)
if(T.has_color)
@@ -599,21 +598,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
/datum/species/proc/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour)
var/list/bodyparts_to_add = mutant_bodyparts.Copy()
- var/list/relevent_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER, BODY_TAUR_LAYER)
- var/list/standing = list()
H.remove_overlay(BODY_BEHIND_LAYER)
H.remove_overlay(BODY_ADJ_LAYER)
+ H.remove_overlay(BODY_ADJ_UPPER_LAYER)
H.remove_overlay(BODY_FRONT_LAYER)
- //CITADEL EDIT - Do not forget to add this to relevent_layers list just above too!
- H.remove_overlay(BODY_TAUR_LAYER)
- //END EDIT
if(!mutant_bodyparts)
return
var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- var/tauric = H.dna.features["taur"] && H.dna.features["taur"] != "None"
+ var/tauric = mutant_bodyparts["taur"] && H.dna.features["taur"] && H.dna.features["taur"] != "None"
if(mutant_bodyparts["tail_lizard"])
if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
@@ -744,95 +739,105 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(!bodyparts_to_add)
return
+ var/list/relevant_layers = list()
+ var/list/dna_feature_as_text_string = list()
+
+ for(var/bodypart in bodyparts_to_add)
+ var/datum/sprite_accessory/S
+ switch(bodypart)
+ if("tail_lizard")
+ S = GLOB.tails_list_lizard[H.dna.features["tail_lizard"]]
+ if("waggingtail_lizard")
+ S = GLOB.animated_tails_list_lizard[H.dna.features["tail_lizard"]]
+ if("tail_human")
+ S = GLOB.tails_list_human[H.dna.features["tail_human"]]
+ if("waggingtail_human")
+ S = GLOB.animated_tails_list_human[H.dna.features["tail_human"]]
+ if("spines")
+ S = GLOB.spines_list[H.dna.features["spines"]]
+ if("waggingspines")
+ S = GLOB.animated_spines_list[H.dna.features["spines"]]
+ if("snout")
+ S = GLOB.snouts_list[H.dna.features["snout"]]
+ if("frills")
+ S = GLOB.frills_list[H.dna.features["frills"]]
+ if("horns")
+ S = GLOB.horns_list[H.dna.features["horns"]]
+ if("ears")
+ S = GLOB.ears_list[H.dna.features["ears"]]
+ if("body_markings")
+ S = GLOB.body_markings_list[H.dna.features["body_markings"]]
+ if("wings")
+ S = GLOB.wings_list[H.dna.features["wings"]]
+ if("wingsopen")
+ S = GLOB.wings_open_list[H.dna.features["wings"]]
+ if("deco_wings")
+ S = GLOB.deco_wings_list[H.dna.features["deco_wings"]]
+ if("legs")
+ S = GLOB.legs_list[H.dna.features["legs"]]
+ if("insect_wings")
+ S = GLOB.insect_wings_list[H.dna.features["insect_wings"]]
+ if("insect_fluff")
+ S = GLOB.insect_fluffs_list[H.dna.features["insect_fluff"]]
+ if("insect_markings")
+ S = GLOB.insect_markings_list[H.dna.features["insect_markings"]]
+ if("caps")
+ S = GLOB.caps_list[H.dna.features["caps"]]
+ if("ipc_screen")
+ S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]]
+ if("ipc_antenna")
+ S = GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]]
+ if("mam_tail")
+ S = GLOB.mam_tails_list[H.dna.features["mam_tail"]]
+ if("mam_waggingtail")
+ S = GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]]
+ if("mam_body_markings")
+ S = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
+ if("mam_ears")
+ S = GLOB.mam_ears_list[H.dna.features["mam_ears"]]
+ if("mam_snouts")
+ S = GLOB.mam_snouts_list[H.dna.features["mam_snouts"]]
+ if("taur")
+ S = GLOB.taur_list[H.dna.features["taur"]]
+ if("xenodorsal")
+ S = GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]]
+ if("xenohead")
+ S = GLOB.xeno_head_list[H.dna.features["xenohead"]]
+ if("xenotail")
+ S = GLOB.xeno_tail_list[H.dna.features["xenotail"]]
+
+ if(!S || S.icon_state == "none")
+ continue
+
+ for(var/L in S.relevant_layers)
+ LAZYADD(relevant_layers["[L]"], S)
+ if(!S.mutant_part_string)
+ dna_feature_as_text_string[S] = bodypart
+
+ var/static/list/layer_text = list("[BODY_BEHIND_LAYER]" = "BEHIND", "[BODY_ADJ_LAYER]" = "ADJ", \
+ "[BODY_ADJ_UPPER_LAYER]" = "ADJUP", "[BODY_FRONT_LAYER]" = "FRONT")
+
var/g = (H.dna.features["body_model"] == FEMALE) ? "f" : "m"
+ var/list/colorlist = list()
+ var/husk = HAS_TRAIT(H, TRAIT_HUSK)
+ colorlist += husk ? ReadRGB("#a3a3a3") :ReadRGB("[H.dna.features["mcolor"]]0")
+ colorlist += husk ? ReadRGB("#a3a3a3") :ReadRGB("[H.dna.features["mcolor2"]]0")
+ colorlist += husk ? ReadRGB("#a3a3a3") : ReadRGB("[H.dna.features["mcolor3"]]0")
+ colorlist += list(0,0,0, hair_alpha)
+ for(var/index in 1 to colorlist.len)
+ colorlist[index] /= 255
- for(var/layer in relevent_layers)
- var/layertext = mutant_bodyparts_layertext(layer)
-
- for(var/bodypart in bodyparts_to_add)
- var/datum/sprite_accessory/S
- switch(bodypart)
- if("tail_lizard")
- S = GLOB.tails_list_lizard[H.dna.features["tail_lizard"]]
- if("waggingtail_lizard")
- S = GLOB.animated_tails_list_lizard[H.dna.features["tail_lizard"]]
- if("tail_human")
- S = GLOB.tails_list_human[H.dna.features["tail_human"]]
- if("waggingtail_human")
- S = GLOB.animated_tails_list_human[H.dna.features["tail_human"]]
- if("spines")
- S = GLOB.spines_list[H.dna.features["spines"]]
- if("waggingspines")
- S = GLOB.animated_spines_list[H.dna.features["spines"]]
- if("snout")
- S = GLOB.snouts_list[H.dna.features["snout"]]
- if("frills")
- S = GLOB.frills_list[H.dna.features["frills"]]
- if("horns")
- S = GLOB.horns_list[H.dna.features["horns"]]
- if("ears")
- S = GLOB.ears_list[H.dna.features["ears"]]
- if("body_markings")
- S = GLOB.body_markings_list[H.dna.features["body_markings"]]
- if("wings")
- S = GLOB.wings_list[H.dna.features["wings"]]
- if("wingsopen")
- S = GLOB.wings_open_list[H.dna.features["wings"]]
- if("deco_wings")
- S = GLOB.deco_wings_list[H.dna.features["deco_wings"]]
- if("legs")
- S = GLOB.legs_list[H.dna.features["legs"]]
- if("insect_wings")
- S = GLOB.insect_wings_list[H.dna.features["insect_wings"]]
- if("insect_fluff")
- S = GLOB.insect_fluffs_list[H.dna.features["insect_fluff"]]
- if("insect_markings")
- S = GLOB.insect_markings_list[H.dna.features["insect_markings"]]
- if("caps")
- S = GLOB.caps_list[H.dna.features["caps"]]
- if("ipc_screen")
- S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]]
- if("ipc_antenna")
- S = GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]]
- if("mam_tail")
- S = GLOB.mam_tails_list[H.dna.features["mam_tail"]]
- if("mam_waggingtail")
- S = GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]]
- if("mam_body_markings")
- S = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
- if("mam_ears")
- S = GLOB.mam_ears_list[H.dna.features["mam_ears"]]
- if("mam_snouts")
- S = GLOB.mam_snouts_list[H.dna.features["mam_snouts"]]
- if("taur")
- S = GLOB.taur_list[H.dna.features["taur"]]
- if("xenodorsal")
- S = GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]]
- if("xenohead")
- S = GLOB.xeno_head_list[H.dna.features["xenohead"]]
- if("xenotail")
- S = GLOB.xeno_tail_list[H.dna.features["xenotail"]]
-
- if(!S || S.icon_state == "none")
- continue
-
- var/mutable_appearance/accessory_overlay = mutable_appearance(S.icon, layer = -layer)
-
- accessory_overlay.color = null //just because. reee.
-
- //A little rename so we don't have to use tail_lizard or tail_human when naming the sprites.
- if(bodypart == "tail_lizard" || bodypart == "tail_human" || bodypart == "mam_tail" || bodypart == "xenotail")
- bodypart = "tail"
- if(bodypart == "mam_waggingtail" || bodypart == "waggingtail_human" || bodypart == "waggingtail_lizard")
- bodypart = "tailwag"
- if(bodypart == "mam_ears" || bodypart == "ears")
- bodypart = "ears"
- if(bodypart == "mam_snouts" || bodypart == "snout")
- bodypart = "snout"
- if(bodypart == "xenohead")
- bodypart = "xhead"
- if(bodypart == "insect_wings" || bodypart == "deco_wings")
- bodypart = "insect_wings"
+ for(var/layer in relevant_layers)
+ var/list/standing = list()
+ var/layertext = layer_text[layer]
+ if(!layertext) //shouldn't happen
+ stack_trace("invalid layer '[layer]' found in the list of relevant layers on species.handle_mutant_bodyparts().")
+ continue
+ var/layernum = text2num(layer)
+ for(var/bodypart in relevant_layers[layer])
+ var/datum/sprite_accessory/S = bodypart
+ var/mutable_appearance/accessory_overlay = mutable_appearance(S.icon, layer = -layernum)
+ bodypart = S.mutant_part_string || dna_feature_as_text_string[S]
if(S.gender_specific)
accessory_overlay.icon_state = "[g]_[bodypart]_[S.icon_state]_[layertext]"
@@ -842,16 +847,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(S.center)
accessory_overlay = center_image(accessory_overlay, S.dimension_x, S.dimension_y)
- var/list/colorlist = list()
- colorlist.Cut()
- colorlist += ReadRGB("[H.dna.features["mcolor"]]0")
- colorlist += ReadRGB("[H.dna.features["mcolor2"]]0")
- colorlist += ReadRGB("[H.dna.features["mcolor3"]]0")
- colorlist += list(0,0,0, hair_alpha)
- for(var/index=1, index<=colorlist.len, index++)
- colorlist[index] = colorlist[index]/255
-
- if(!HAS_TRAIT(H, TRAIT_HUSK))
+ if(!husk)
if(!forced_colour)
switch(S.color_src)
if(SKINTONE)
@@ -885,9 +881,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(EYECOLOR)
accessory_overlay.color = "#[H.eye_color]"
if(HORNCOLOR)
- accessory_overlay.color = "#[H.horn_color]"
+ accessory_overlay.color = "#[H.dna.features["horns_color"]]"
if(WINGCOLOR)
- accessory_overlay.color = "#[H.wing_color]"
+ accessory_overlay.color = "#[H.dna.features["wings_color"]]"
else
accessory_overlay.color = forced_colour
else
@@ -896,14 +892,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(bodypart == "tail")
accessory_overlay.icon_state = "m_tail_husk_[layertext]"
if(S.color_src == MATRIXED)
- var/list/husklist = list()
- husklist += ReadRGB("#a3a3a3")
- husklist += ReadRGB("#a3a3a3")
- husklist += ReadRGB("#a3a3a3")
- husklist += list(0,0,0, hair_alpha)
- for(var/index=1, index<=husklist.len, index++)
- husklist[index] = husklist[index]/255
- accessory_overlay.color = husklist
+ accessory_overlay.color = colorlist
if(OFFSET_MUTPARTS in H.dna.species.offset_features)
accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]
@@ -911,24 +900,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
standing += accessory_overlay
- if(S.hasinner)
- var/mutable_appearance/inner_accessory_overlay = mutable_appearance(S.icon, layer = -layer)
- if(S.gender_specific)
- inner_accessory_overlay.icon_state = "[g]_[bodypart]inner_[S.icon_state]_[layertext]"
- else
- inner_accessory_overlay.icon_state = "m_[bodypart]inner_[S.icon_state]_[layertext]"
-
- if(S.center)
- inner_accessory_overlay = center_image(inner_accessory_overlay, S.dimension_x, S.dimension_y)
-
- if(OFFSET_MUTPARTS in H.dna.species.offset_features)
- inner_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]
- inner_accessory_overlay.pixel_y += H.dna.species.offset_features[OFFSET_MUTPARTS][2]
-
- standing += inner_accessory_overlay
-
if(S.extra) //apply the extra overlay, if there is one
- var/mutable_appearance/extra_accessory_overlay = mutable_appearance(S.icon, layer = -layer)
+ var/mutable_appearance/extra_accessory_overlay = mutable_appearance(S.icon, layer = -layernum)
if(S.gender_specific)
extra_accessory_overlay.icon_state = "[g]_[bodypart]_extra_[S.icon_state]_[layertext]"
else
@@ -964,9 +937,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
extra_accessory_overlay.color = "#[H.eye_color]"
if(HORNCOLOR)
- extra_accessory_overlay.color = "#[H.horn_color]"
+ extra_accessory_overlay.color = "#[H.dna.features["horns_color"]]"
if(WINGCOLOR)
- extra_accessory_overlay.color = "#[H.wing_color]"
+ extra_accessory_overlay.color = "#[H.dna.features["wings_color"]]"
if(OFFSET_MUTPARTS in H.dna.species.offset_features)
extra_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]
@@ -975,7 +948,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
standing += extra_accessory_overlay
if(S.extra2) //apply the extra overlay, if there is one
- var/mutable_appearance/extra2_accessory_overlay = mutable_appearance(S.icon, layer = -layer)
+ var/mutable_appearance/extra2_accessory_overlay = mutable_appearance(S.icon, layer = -layernum)
if(S.gender_specific)
extra2_accessory_overlay.icon_state = "[g]_[bodypart]_extra2_[S.icon_state]_[layertext]"
else
@@ -1005,9 +978,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
else
extra2_accessory_overlay.color = "#[H.hair_color]"
if(HORNCOLOR)
- extra2_accessory_overlay.color = "#[H.horn_color]"
+ extra2_accessory_overlay.color = "#[H.dna.features["horns_color"]]"
if(WINGCOLOR)
- extra2_accessory_overlay.color = "#[H.wing_color]"
+ extra2_accessory_overlay.color = "#[H.dna.features["wings_color"]]"
if(OFFSET_MUTPARTS in H.dna.species.offset_features)
extra2_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]
@@ -1016,13 +989,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
standing += extra2_accessory_overlay
- H.overlays_standing[layer] = standing.Copy()
- standing = list()
+ H.overlays_standing[layernum] = standing
H.apply_overlay(BODY_BEHIND_LAYER)
H.apply_overlay(BODY_ADJ_LAYER)
+ H.apply_overlay(BODY_ADJ_UPPER_LAYER)
H.apply_overlay(BODY_FRONT_LAYER)
- H.apply_overlay(BODY_TAUR_LAYER) // CITADEL EDIT
/*
@@ -1034,21 +1006,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
outfit_important_for_life= new()
outfit_important_for_life.equip(human_to_equip)
-//This exists so sprite accessories can still be per-layer without having to include that layer's
-//number in their sprite name, which causes issues when those numbers change.
-/datum/species/proc/mutant_bodyparts_layertext(layer)
- switch(layer)
- if(BODY_BEHIND_LAYER)
- return "BEHIND"
- if(BODY_ADJ_LAYER)
- return "ADJ"
- if(BODY_FRONT_LAYER)
- return "FRONT"
- //CITADEL EDIT
- if(BODY_TAUR_LAYER)
- return "TAUR"
- //END EDIT
-
/* TODO: Snowflake trail marks
// Impliments different trails for species depending on if they're wearing shoes.
/datum/species/proc/get_move_trail(var/mob/living/carbon/human/H)
@@ -1301,14 +1258,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(H.overeatduration < 100)
to_chat(H, "You feel fit again! ")
REMOVE_TRAIT(H, TRAIT_FAT, OBESITY)
- H.remove_movespeed_modifier(MOVESPEED_ID_FAT)
+ H.remove_movespeed_modifier(/datum/movespeed_modifier/obesity)
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else
if(H.overeatduration >= 100)
to_chat(H, "You suddenly feel blubbery! ")
ADD_TRAIT(H, TRAIT_FAT, OBESITY)
- H.add_movespeed_modifier(MOVESPEED_ID_FAT, multiplicative_slowdown = 1.5)
+ H.add_movespeed_modifier(/datum/movespeed_modifier/obesity)
H.update_inv_w_uniform()
H.update_inv_wear_suit()
@@ -1364,9 +1321,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(!HAS_TRAIT(H, TRAIT_NOHUNGER))
var/hungry = (500 - H.nutrition) / 5 //So overeat would be 100 and default level would be 80
if(hungry >= 70)
- H.add_movespeed_modifier(MOVESPEED_ID_HUNGRY, override = TRUE, multiplicative_slowdown = (hungry / 50))
+ H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/hunger, multiplicative_slowdown = (hungry / 50))
else
- H.remove_movespeed_modifier(MOVESPEED_ID_HUNGRY)
+ H.remove_movespeed_modifier(/datum/movespeed_modifier/hunger)
switch(H.nutrition)
if(NUTRITION_LEVEL_FULL to INFINITY)
@@ -1582,9 +1539,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(IS_STAMCRIT(user))
to_chat(user, "You're too exhausted! ")
return FALSE
- else if(target.check_block())
- target.visible_message("[target] blocks [user]'s disarm attempt! ")
- return FALSE
else if(aim_for_mouth && ( target_on_help || target_restrained || target_aiming_for_mouth))
playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1)
@@ -1617,7 +1571,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
"You hear a slap."
)
return FALSE
-
+
else
user.do_attack_animation(target, ATTACK_EFFECT_DISARM)
@@ -1625,10 +1579,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
user.adjustStaminaLossBuffered(1)
else
user.adjustStaminaLossBuffered(3)
-
+
if(attacker_style && attacker_style.disarm_act(user,target))
return TRUE
-
+
if(target.w_uniform)
target.w_uniform.add_fingerprint(user)
//var/randomized_zone = ran_zone(user.zone_selected) CIT CHANGE - comments out to prevent compiling errors
@@ -1661,7 +1615,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
randn -= 25 //if you are a pugilist, you're slapping that item from them pretty reliably
if(HAS_TRAIT(target, TRAIT_PUGILIST))
randn += 25 //meanwhile, pugilists are less likely to get disarmed
-
+
if(randn <= 35)//CIT CHANGE - changes this back to a 35% chance to accomodate for the above being commented out in favor of right-click pushing
var/obj/item/I = null
if(target.pulling)
@@ -1714,9 +1668,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
disarm(M, H, attacker_style)
/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H)
+ var/totitemdamage = H.pre_attacked_by(I, user)
// Allows you to put in item-specific reactions based on species
if(user != H)
- if(H.run_block(I, I.force, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone) & BLOCK_SUCCESS)
+ if(H.mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, null) & BLOCK_SUCCESS)
return 0
if(H.check_martial_melee_block())
H.visible_message("[H] blocks [I]! ")
@@ -1732,24 +1687,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/armor_block = H.run_armor_check(affecting, "melee", "Your armor has protected your [hit_area]. ", "Your armor has softened a hit to your [hit_area]. ",I.armour_penetration)
armor_block = min(90,armor_block) //cap damage reduction at 90%
var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords)
- //CIT CHANGES START HERE - combatmode and resting checks
- var/totitemdamage = I.force
- if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
- totitemdamage *= 0.5
- if(!CHECK_MOBILITY(user, MOBILITY_STAND))
- totitemdamage *= 0.5
- if(istype(H))
- if(!(H.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
- totitemdamage *= 1.5
- //CIT CHANGES END HERE
var/weakness = H.check_weakness(I, user)
apply_damage(totitemdamage * weakness, I.damtype, def_zone, armor_block, H) //CIT CHANGE - replaces I.force with totitemdamage
H.send_item_attack_message(I, user, hit_area)
- I.do_stagger_action(H, user)
+ I.do_stagger_action(H, user, totitemdamage)
- if(!I.force)
+ if(!totitemdamage)
return 0 //item force is zero
//dismemberment
@@ -1834,7 +1779,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
return TRUE
if(M.mind)
attacker_style = M.mind.martial_art
- if((M != H) && M.a_intent != INTENT_HELP && (H.run_block(M, 0, "[M]", ATTACK_TYPE_UNARMED, 0, M, M.zone_selected) & BLOCK_SUCCESS))
+ if((M != H) && M.a_intent != INTENT_HELP && (H.mob_run_block(M, 0, "[M]", ATTACK_TYPE_UNARMED, 0, M, M.zone_selected, null) & BLOCK_SUCCESS))
log_combat(M, H, "attempted to touch")
H.visible_message("[M] attempted to touch [H]! ")
return TRUE
@@ -1934,8 +1879,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/obj/item/target_held_item = target.get_active_held_item()
if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types))
target_held_item = null
- if(!target.has_movespeed_modifier(MOVESPEED_ID_SHOVE))
- target.add_movespeed_modifier(MOVESPEED_ID_SHOVE, multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH)
+ if(!target.has_movespeed_modifier(/datum/movespeed_modifier/shove))
+ target.add_movespeed_modifier(/datum/movespeed_modifier/shove)
if(target_held_item)
if(!HAS_TRAIT(target_held_item, TRAIT_NODROP))
target.visible_message("[target.name]'s grip on \the [target_held_item] loosens! ",
@@ -2086,7 +2031,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold")
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot)
- H.remove_movespeed_modifier(MOVESPEED_ID_COLD)
+ H.remove_movespeed_modifier(/datum/movespeed_modifier/cold)
var/burn_damage
var/firemodifier = H.fire_stacks / 50
@@ -2103,8 +2048,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
else if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTCOLD))
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot")
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold)
- //Sorry for the nasty oneline but I don't want to assign a variable on something run pretty frequently
- H.add_movespeed_modifier(MOVESPEED_ID_COLD, override = TRUE, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR), blacklisted_movetypes = FLOATING)
+ //Apply cold slowdown
+ H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR))
switch(H.bodytemperature)
if(200 to BODYTEMP_COLD_DAMAGE_LIMIT)
H.apply_damage(COLD_DAMAGE_LEVEL_1*coldmod*H.physiology.cold_mod, BURN)
@@ -2114,7 +2059,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.apply_damage(COLD_DAMAGE_LEVEL_3*coldmod*H.physiology.cold_mod, BURN)
else
- H.remove_movespeed_modifier(MOVESPEED_ID_COLD)
+ H.remove_movespeed_modifier(/datum/movespeed_modifier/cold)
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold")
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot")
diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm
index 559abd8d0b..94f64ceacb 100644
--- a/code/modules/mob/living/carbon/human/species_types/android.dm
+++ b/code/modules/mob/living/carbon/human/species_types/android.dm
@@ -9,6 +9,7 @@
gib_types = /obj/effect/gibspawner/robot
damage_overlay_type = "synth"
mutanttongue = /obj/item/organ/tongue/robot
+ species_language_holder = /datum/language_holder/synthetic
limbs_id = "synth"
/datum/species/android/on_species_gain(mob/living/carbon/C)
diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm
index 235dacc70a..5d9269b2f0 100644
--- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm
+++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm
@@ -6,7 +6,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //
name = "Dwarf"
id = "dwarf" //Also called Homo sapiens pumilionis
default_color = "FFFFFF"
- species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR)
+ species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR,TRAIT_DWARF)
inherent_traits = list()
limbs_id = "human"
use_skintones = USE_SKINTONES_GRAYSCALE_CUSTOM
@@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //
disliked_food = JUNKFOOD | FRIED //Dwarves hate foods that have no nutrition other than alcohol.
mutant_organs = list(/obj/item/organ/dwarfgland) //Dwarven alcohol gland, literal gland warrior
mutantliver = /obj/item/organ/liver/dwarf //Dwarven super liver (Otherwise they r doomed)
+ species_language_holder = /datum/language_holder/dwarf
/mob/living/carbon/human/species/dwarf //species admin spawn path
race = /datum/species/dwarf //and the race the path is set to.
@@ -30,18 +31,15 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //
. = ..()
var/dwarf_hair = pick("Beard (Dwarf)", "Beard (Very Long)", "Beard (Long)") //beard roullette
var/mob/living/carbon/human/H = C
- H.grant_language(/datum/language/dwarf)
H.facial_hair_style = dwarf_hair
H.update_hair()
H.transform = H.transform.Scale(1, 0.8) //We use scale, and yeah. Dwarves can become gnomes with DWARFISM.
RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) //We register handle_speech is being used.
-
/datum/species/dwarf/on_species_loss(mob/living/carbon/H, datum/species/new_species)
. = ..()
H.transform = H.transform.Scale(1, 1.25) //And we undo it.
UnregisterSignal(H, COMSIG_MOB_SAY) //We register handle_speech is not being used.
- H.remove_language(/datum/language/dwarf)
//Dwarf Name stuff
/proc/dwarf_name() //hello caller: my name is urist mcuristurister
@@ -102,12 +100,11 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //
/obj/item/organ/dwarfgland/on_life() //Primary loop to hook into to start delayed loops for other loops..
. = ..()
- dwarf_cycle_ticker()
+ if(owner && owner.stat != DEAD)
+ dwarf_cycle_ticker()
//Handles the delayed tick cycle by just adding on increments per each on_life() tick
/obj/item/organ/dwarfgland/proc/dwarf_cycle_ticker()
- if(owner.stat == DEAD)
- return //We make sure they are not dead, so they don't increment any tickers.
dwarf_eth_ticker++
dwarf_filth_ticker++
@@ -170,7 +167,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //
for(var/datum/reagent/R in owner.reagents.reagent_list)
if(istype(R, /datum/reagent/consumable/ethanol))
var/datum/reagent/consumable/ethanol/E = R
- stored_alcohol = CLAMP(stored_alcohol + E.boozepwr / 50, 0, max_alcohol)
+ stored_alcohol = clamp(stored_alcohol + E.boozepwr / 50, 0, max_alcohol)
var/heal_amt = heal_rate
stored_alcohol -= alcohol_rate //Subtracts alcohol_Rate from stored alcohol so EX: 250 - 0.25 per each loop that occurs.
if(stored_alcohol > 400) //If they are over 400 they start regenerating
diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm
index abc2288e9b..7a5e347060 100644
--- a/code/modules/mob/living/carbon/human/species_types/golems.dm
+++ b/code/modules/mob/living/carbon/human/species_types/golems.dm
@@ -397,7 +397,7 @@
var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2)
var/turf/target = get_turf(P.starting)
// redirect the projectile
- P.preparePixelProjectile(locate(CLAMP(target.x + new_x, 1, world.maxx), CLAMP(target.y + new_y, 1, world.maxy), H.z), H)
+ P.preparePixelProjectile(locate(clamp(target.x + new_x, 1, world.maxx), clamp(target.y + new_y, 1, world.maxy), H.z), H)
return BULLET_ACT_FORCE_PIERCE
return ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 854182bd99..c2cce04053 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -21,20 +21,19 @@
coldmod = 6 // = 3x cold damage
heatmod = 0.5 // = 1/4x heat damage
burnmod = 0.5 // = 1/2x generic burn damage
+ species_language_holder = /datum/language_holder/jelly
/datum/species/jelly/on_species_loss(mob/living/carbon/C)
if(regenerate_limbs)
regenerate_limbs.Remove(C)
if(slime_change) //CIT CHANGE
slime_change.Remove(C) //CIT CHANGE
- C.remove_language(/datum/language/slime)
C.faction -= "slime"
..()
C.faction -= "slime"
/datum/species/jelly/on_species_gain(mob/living/carbon/C, datum/species/old_species)
..()
- C.grant_language(/datum/language/slime)
if(ishuman(C))
regenerate_limbs = new
regenerate_limbs.Grant(C)
@@ -606,7 +605,7 @@
var/max_D = CONFIG_GET(number/penis_max_inches_prefs)
var/new_length = input(owner, "Penis length in inches:\n([min_D]-[max_D])", "Genital Alteration") as num|null
if(new_length)
- H.dna.features["cock_length"] = CLAMP(round(new_length), min_D, max_D)
+ H.dna.features["cock_length"] = clamp(round(new_length), min_D, max_D)
H.update_genitals()
H.apply_overlay()
H.give_genital(/obj/item/organ/genital/testicles)
diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
index 9a6bc2659d..196073773b 100644
--- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
@@ -24,9 +24,7 @@
disliked_food = GRAIN | DAIRY
liked_food = GROSS | MEAT
inert_mutation = FIREBREATH
-
-/datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H)
- H.grant_language(/datum/language/draconic)
+ species_language_holder = /datum/language_holder/lizard
/datum/species/lizard/random_name(gender,unique,lastname)
if(unique)
@@ -86,9 +84,15 @@
mutantlungs = /obj/item/organ/lungs/ashwalker
burnmod = 0.9
brutemod = 0.9
+ species_language_holder = /datum/language_holder/lizard/ash
/datum/species/lizard/ashwalker/on_species_gain(mob/living/carbon/human/C, datum/species/old_species)
if((C.dna.features["spines"] != "None" ) && (C.dna.features["tail_lizard"] == "None")) //tbh, it's kinda ugly for them not to have a tail yet have floating spines
C.dna.features["tail_lizard"] = "Smooth"
C.update_body()
+ if(C.dna.features["legs"] != "digitigrade")
+ C.dna.features["legs"] = "digitigrade"
+ for(var/obj/item/bodypart/leggie in C.bodyparts)
+ if(leggie.body_zone == BODY_ZONE_L_LEG || leggie.body_zone == BODY_ZONE_R_LEG)
+ leggie.update_limb(FALSE, C)
return ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
index 5390d9e7f4..dcb6d868fc 100644
--- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
@@ -23,9 +23,7 @@
mutanteyes = /obj/item/organ/eyes/night_vision/mushroom
var/datum/martial_art/mushpunch/mush
-
-/datum/species/mush/after_equip_job(datum/job/J, mob/living/carbon/human/H)
- H.grant_language(/datum/language/mushroom) //pomf pomf
+ species_language_holder = /datum/language_holder/mushroom
/datum/species/mush/on_species_gain(mob/living/carbon/C, datum/species/old_species)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
index 44a794c2ab..a8b9bbfc8f 100644
--- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
@@ -12,6 +12,7 @@
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant
disliked_food = MEAT | DAIRY
liked_food = VEGETABLES | FRUIT | GRAIN
+ species_language_holder = /datum/language_holder/sylvan
var/light_nutrition_gain_factor = 10
var/light_toxheal = 1
var/light_oxyheal = 1
diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm
index deab31dec3..85f1fbf386 100644
--- a/code/modules/mob/living/carbon/human/species_types/synths.dm
+++ b/code/modules/mob/living/carbon/human/species_types/synths.dm
@@ -16,6 +16,7 @@
var/list/initial_inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER,TRAIT_NOBREATH)
var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off
var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged
+ species_language_holder = /datum/language_holder/synthetic
/datum/species/synth/military
name = "Military Synth"
diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm
index f37e718462..f720aa7f8a 100644
--- a/code/modules/mob/living/carbon/human/species_types/vampire.dm
+++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm
@@ -106,8 +106,8 @@
to_chat(victim, "[H] is draining your blood! ")
to_chat(H, "You drain some blood! ")
playsound(H, 'sound/items/drink.ogg', 30, 1, -2)
- victim.blood_volume = CLAMP(victim.blood_volume - drained_blood, 0, BLOOD_VOLUME_MAXIMUM)
- H.blood_volume = CLAMP(H.blood_volume + drained_blood, 0, BLOOD_VOLUME_MAXIMUM)
+ victim.blood_volume = clamp(victim.blood_volume - drained_blood, 0, BLOOD_VOLUME_MAXIMUM)
+ H.blood_volume = clamp(H.blood_volume + drained_blood, 0, BLOOD_VOLUME_MAXIMUM)
if(!victim.blood_volume)
to_chat(H, "You finish off [victim]'s blood supply! ")
diff --git a/code/modules/mob/living/carbon/human/status_procs.dm b/code/modules/mob/living/carbon/human/status_procs.dm
index 37bafdab67..7892380d8b 100644
--- a/code/modules/mob/living/carbon/human/status_procs.dm
+++ b/code/modules/mob/living/carbon/human/status_procs.dm
@@ -34,12 +34,11 @@
/mob/living/carbon/human/set_drugginess(amount)
..()
if(!amount)
- remove_language(/datum/language/beachbum)
+ remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH)
/mob/living/carbon/human/adjust_drugginess(amount)
..()
- if(!dna.check_mutation(STONER))
- if(druggy)
- grant_language(/datum/language/beachbum)
- else
- remove_language(/datum/language/beachbum)
+ if(druggy)
+ grant_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH)
+ else
+ remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH)
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 10a630e034..e399ddf872 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -129,16 +129,18 @@ There are several things that need to be remembered:
alt_worn = U.anthro_mob_worn_overlay || 'icons/mob/clothing/uniform_digi.dmi'
variant_flag |= STYLE_DIGITIGRADE
+ var/mask
+ if(dna.species.mutant_bodyparts["taur"])
+ var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]]
+ var/clip_flag = U.mutantrace_variation & T?.hide_legs
+ if(clip_flag)
+ variant_flag |= clip_flag
+ mask = T.alpha_mask_state
+
var/mutable_appearance/uniform_overlay
- if(dna && dna.species.sexes)
- var/G = (dna.features["body_model"] == FEMALE) ? "f" : "m"
- if(G == "f" && U.fitted != NO_FEMALE_UNIFORM)
- uniform_overlay = U.build_worn_icon(UNIFORM_LAYER, alt_worn, FALSE, U.fitted, target_overlay, variant_flag, FALSE)
-
- if(!uniform_overlay)
- uniform_overlay = U.build_worn_icon( UNIFORM_LAYER, alt_worn, FALSE, NO_FEMALE_UNIFORM, target_overlay, variant_flag, FALSE)
-
+ var/gendered = (dna?.species.sexes && dna.features["body_model"] == FEMALE) ? U.fitted : NO_FEMALE_UNIFORM
+ uniform_overlay = U.build_worn_icon( UNIFORM_LAYER, alt_worn, FALSE, gendered, target_overlay, variant_flag, FALSE, mask)
if(OFFSET_UNIFORM in dna.species.offset_features)
uniform_overlay.pixel_x += dna.species.offset_features[OFFSET_UNIFORM][1]
@@ -269,6 +271,11 @@ There are several things that need to be remembered:
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_SHOES]
inv.update_icon()
+ if(dna.species.mutant_bodyparts["taur"])
+ var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]]
+ if(T?.hide_legs) //If only they actually made shoes unwearable. Please don't making cosmetics, guys.
+ return
+
if(shoes)
var/obj/item/clothing/shoes/S = shoes
shoes.screen_loc = ui_shoes //move the item to the appropriate screen loc
@@ -514,12 +521,17 @@ There are several things that need to be remembered:
overlays_standing[BACK_LAYER] = back_overlay
apply_overlay(BACK_LAYER)
-/proc/wear_female_version(t_color, icon, layer, type)
- var/index = "[t_color]-[icon]"
- var/icon/female_clothing_icon = GLOB.female_clothing_icons[index]
- if(!female_clothing_icon) //Create standing/laying icons if they don't exist
- generate_female_clothing(index,t_color,icon,type)
- return mutable_appearance(GLOB.female_clothing_icons[index], layer = -layer)
+/proc/wear_alpha_masked_version(state, icon, layer, female, alpha_mask)
+ var/mask = "-[alpha_mask]"
+ if(islist(alpha_mask))
+ mask = "-"
+ for(var/t in alpha_mask)
+ mask += t
+ var/index = "[state]-[icon]-[female][mask]"
+ . = GLOB.alpha_masked_worn_icons[index]
+ if(!.) //Create standing/laying icons if they don't exist
+ . = generate_alpha_masked_clothing(index,state,icon,female,alpha_mask)
+ return mutable_appearance(., layer = -layer)
/mob/living/carbon/human/proc/get_overlays_copy(list/unwantedLayers)
var/list/out = new
@@ -574,10 +586,12 @@ generate/load female uniform sprites matching all previously decided variables
style_flags: mutant race appearance flags, mostly used for worn_overlays()
+alpha_mask: a text string or list of text, the actual icons are stored in a global list and associated with said text string(s).
+
use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if mob_overlay_icon is present.
*/
-/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE)
+/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE, alpha_mask)
var/t_state
t_state = override_state || item_state || icon_state
@@ -597,8 +611,8 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if
layer2use = default_layer
var/mutable_appearance/standing
- if(femaleuniform)
- standing = wear_female_version(t_state,file2use,layer2use,femaleuniform)
+ if(femaleuniform || alpha_mask)
+ standing = wear_alpha_masked_version(t_state, file2use, layer2use, femaleuniform, alpha_mask)
if(!standing)
standing = mutable_appearance(file2use, t_state, -layer2use)
@@ -661,19 +675,17 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if
. += "-[dna.features["body_model"]]"
-
var/is_taur = FALSE
- if(dna.species.mutant_bodyparts["taur"] && dna.features["taur"] != "None")
- is_taur = TRUE
-
+ if(dna.species.mutant_bodyparts["taur"])
+ var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]]
+ if(T?.hide_legs)
+ is_taur = TRUE
+ var/static/list/leg_day = typecacheof(list(/obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg))
for(var/X in bodyparts)
var/obj/item/bodypart/BP = X
-
- if(istype(BP, /obj/item/bodypart/r_leg) || istype(BP, /obj/item/bodypart/l_leg))
- if(is_taur)
- continue
-
+ if(is_taur && leg_day[BP.type])
+ continue
. += "-[BP.body_zone]"
if(BP.status == BODYPART_ORGANIC)
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index 8097859aac..00a0991e19 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -235,7 +235,7 @@
//TOXINS/PLASMA
if(Toxins_partialpressure > safe_tox_max)
var/ratio = (breath_gases[/datum/gas/plasma]/safe_tox_max) * 10
- adjustToxLoss(CLAMP(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE))
+ adjustToxLoss(clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE))
throw_alert("too_much_tox", /obj/screen/alert/too_much_tox)
else
clear_alert("too_much_tox")
diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm
index a06d65ad4b..1b0856bfcd 100644
--- a/code/modules/mob/living/carbon/monkey/combat.dm
+++ b/code/modules/mob/living/carbon/monkey/combat.dm
@@ -111,7 +111,7 @@
if(pickupTarget)
if(restrained() || blacklistItems[pickupTarget] || HAS_TRAIT(pickupTarget, TRAIT_NODROP))
pickupTarget = null
- else
+ else if(!isobj(loc) || istype(loc, /obj/item/clothing/head/mob_holder))
pickupTimer++
if(pickupTimer >= 4)
blacklistItems[pickupTarget] ++
@@ -126,10 +126,8 @@
pickupTarget = null
pickupTimer = 0
else if(ismob(pickupTarget.loc)) // in someones hand
- if(istype(pickupTarget, /obj/item/clothing/head/mob_holder/))
- var/obj/item/clothing/head/mob_holder/h = pickupTarget
- if(h && h.held_mob==src)
- return//dont let them pickpocket themselves
+ if(istype(pickupTarget, /obj/item/clothing/head/mob_holder))
+ return//dont let them pickpocket themselves or hold other monkys.
var/mob/M = pickupTarget.loc
if(!pickpocketing)
pickpocketing = TRUE
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index d3e5941e4e..18c3fde188 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -65,20 +65,20 @@
/mob/living/carbon/monkey/on_reagent_change()
. = ..()
- remove_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE)
var/amount
if(reagents.has_reagent(/datum/reagent/medicine/morphine))
amount = -1
if(amount)
- add_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_reagent_speedmod, TRUE, amount)
/mob/living/carbon/monkey/updatehealth()
. = ..()
var/slow = 0
- var/health_deficiency = (100 - health)
- if(health_deficiency >= 45)
- slow += (health_deficiency / 25)
- add_movespeed_modifier(MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = slow)
+ if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN))
+ var/health_deficiency = (maxHealth - health)
+ if(health_deficiency >= 45)
+ slow += (health_deficiency / 25)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_health_speedmod, TRUE, slow)
/mob/living/carbon/monkey/adjust_bodytemperature(amount)
. = ..()
@@ -87,7 +87,7 @@
slow += (283.222 - bodytemperature) / 10 * 1.75
if(slow <= 0)
return
- add_movespeed_modifier(MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_temperature_speedmod, TRUE, slow)
/mob/living/carbon/monkey/Stat()
..()
@@ -99,7 +99,6 @@
if(changeling)
stat("Chemical Storage", "[changeling.chem_charges]/[changeling.chem_storage]")
stat("Absorbed DNA", changeling.absorbedcount)
- return
/mob/living/carbon/monkey/verb/removeinternal()
diff --git a/code/modules/mob/living/carbon/say.dm b/code/modules/mob/living/carbon/say.dm
index 30c962f9a5..865a1ac83f 100644
--- a/code/modules/mob/living/carbon/say.dm
+++ b/code/modules/mob/living/carbon/say.dm
@@ -12,9 +12,9 @@
return 0
return ..()
-/mob/living/carbon/could_speak_in_language(datum/language/dt)
+/mob/living/carbon/could_speak_language(datum/language/language)
var/obj/item/organ/tongue/T = getorganslot(ORGAN_SLOT_TONGUE)
if(T)
- . = T.could_speak_in_language(dt)
+ return T.could_speak_language(language)
else
- . = initial(dt.flags) & TONGUELESS_SPEECH
\ No newline at end of file
+ return initial(language.flags) & TONGUELESS_SPEECH
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm
index 6c497bb8d4..a47bb7fb4a 100644
--- a/code/modules/mob/living/carbon/status_procs.dm
+++ b/code/modules/mob/living/carbon/status_procs.dm
@@ -23,10 +23,10 @@
clear_alert("high")
/mob/living/carbon/adjust_disgust(amount)
- disgust = CLAMP(disgust+amount, 0, DISGUST_LEVEL_MAXEDOUT)
+ disgust = clamp(disgust+amount, 0, DISGUST_LEVEL_MAXEDOUT)
/mob/living/carbon/set_disgust(amount)
- disgust = CLAMP(amount, 0, DISGUST_LEVEL_MAXEDOUT)
+ disgust = clamp(amount, 0, DISGUST_LEVEL_MAXEDOUT)
////////////////////////////////////////TRAUMAS/////////////////////////////////////////
diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm
index a431059a89..9a1c6c54b6 100644
--- a/code/modules/mob/living/carbon/update_icons.dm
+++ b/code/modules/mob/living/carbon/update_icons.dm
@@ -203,6 +203,12 @@
remove_overlay(BODYPARTS_LAYER)
+ var/is_taur = FALSE
+ if(dna?.species.mutant_bodyparts["taur"])
+ var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]]
+ if(T?.hide_legs)
+ is_taur = TRUE
+
for(var/X in bodyparts)
var/obj/item/bodypart/BP = X
BP.update_limb()
@@ -213,9 +219,12 @@
return
//GENERATE NEW LIMBS
+ var/static/list/leg_day = typecacheof(list(/obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg))
var/list/new_limbs = list()
for(var/X in bodyparts)
var/obj/item/bodypart/BP = X
+ if(is_taur && leg_day[BP.type])
+ continue
new_limbs += BP.get_limb_icon()
if(new_limbs.len)
overlays_standing[BODYPARTS_LAYER] = new_limbs
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index d5e1fa6fc4..3257b0e3bf 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -88,7 +88,7 @@
if(EFFECT_STUN)
Stun(effect * hit_percent)
if(EFFECT_KNOCKDOWN)
- DefaultCombatKnockdown(effect * hit_percent, override_stamdmg = knockdown_stammax ? CLAMP(knockdown_stamoverride, 0, knockdown_stammax-getStaminaLoss()) : knockdown_stamoverride)
+ DefaultCombatKnockdown(effect * hit_percent, override_stamdmg = knockdown_stammax ? clamp(knockdown_stamoverride, 0, knockdown_stammax-getStaminaLoss()) : knockdown_stamoverride)
if(EFFECT_UNCONSCIOUS)
Unconscious(effect * hit_percent)
if(EFFECT_IRRADIATE)
@@ -140,7 +140,7 @@
/mob/living/proc/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE)
if(!forced && (status_flags & GODMODE))
return FALSE
- bruteloss = CLAMP((bruteloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
+ bruteloss = clamp((bruteloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
if(updating_health)
updatehealth()
return amount
@@ -151,7 +151,7 @@
/mob/living/proc/adjustOxyLoss(amount, updating_health = TRUE, forced = FALSE)
if(!forced && (status_flags & GODMODE))
return FALSE
- oxyloss = CLAMP((oxyloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
+ oxyloss = clamp((oxyloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
if(updating_health)
updatehealth()
return amount
@@ -170,7 +170,7 @@
/mob/living/proc/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE)
if(!forced && (status_flags & GODMODE))
return FALSE
- toxloss = CLAMP((toxloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
+ toxloss = clamp((toxloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
if(updating_health)
updatehealth()
return amount
@@ -189,7 +189,7 @@
/mob/living/proc/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE)
if(!forced && (status_flags & GODMODE))
return FALSE
- fireloss = CLAMP((fireloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
+ fireloss = clamp((fireloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
if(updating_health)
updatehealth()
return amount
@@ -200,7 +200,7 @@
/mob/living/proc/adjustCloneLoss(amount, updating_health = TRUE, forced = FALSE)
if(!forced && (status_flags & GODMODE))
return FALSE
- cloneloss = CLAMP((cloneloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
+ cloneloss = clamp((cloneloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2)
if(updating_health)
updatehealth()
return amount
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 22a0da2cf6..db5771f75e 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -68,7 +68,7 @@
var/obj/O = A
if(ObjBump(O))
return
- if(ismovableatom(A))
+ if(ismovable(A))
var/atom/movable/AM = A
if(PushAM(AM, move_force))
return
@@ -316,6 +316,45 @@
update_pull_movespeed()
+ set_pull_offsets(M, state)
+
+/mob/living/proc/set_pull_offsets(mob/living/M, grab_state = GRAB_PASSIVE)
+ if(M.buckled || M.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)
+ return //don't make them change direction or offset them if they're buckled into something or in combat mode.
+ var/offset = 0
+ switch(grab_state)
+ if(GRAB_PASSIVE)
+ offset = GRAB_PIXEL_SHIFT_PASSIVE
+ if(GRAB_AGGRESSIVE)
+ offset = GRAB_PIXEL_SHIFT_AGGRESSIVE
+ if(GRAB_NECK)
+ offset = GRAB_PIXEL_SHIFT_NECK
+ if(GRAB_KILL)
+ offset = GRAB_PIXEL_SHIFT_NECK
+ M.setDir(get_dir(M, src))
+ switch(M.dir)
+ if(NORTH)
+ animate(M, pixel_x = 0, pixel_y = offset, 3)
+ if(SOUTH)
+ animate(M, pixel_x = 0, pixel_y = -offset, 3)
+ if(EAST)
+ if(M.lying == 270) //update the dragged dude's direction if we've turned
+ M.lying = 90
+ M.update_transform() //force a transformation update, otherwise it'll take a few ticks for update_mobility() to do so
+ M.lying_prev = M.lying
+ animate(M, pixel_x = offset, pixel_y = 0, 3)
+ if(WEST)
+ if(M.lying == 90)
+ M.lying = 270
+ M.update_transform()
+ M.lying_prev = M.lying
+ animate(M, pixel_x = -offset, pixel_y = 0, 3)
+
+/mob/living/proc/reset_pull_offsets(mob/living/M, override)
+ if(!override && M.buckled)
+ return
+ animate(M, pixel_x = 0, pixel_y = 0, 1)
+
//mob verbs are a lot faster than object verbs
//for more info on why this is not atom/pull, see examinate() in mob.dm
/mob/living/verb/pulled(atom/movable/AM as mob|obj in oview(1))
@@ -328,6 +367,8 @@
stop_pulling()
/mob/living/stop_pulling()
+ if(ismob(pulling))
+ reset_pull_offsets(pulling)
..()
update_pull_movespeed()
update_pull_hud_icon()
@@ -502,8 +543,16 @@
var/obj/effect/proc_holder/spell/spell = S
spell.updateButtonIcon()
+//proc used to remove all immobilisation effects + reset stamina
+/mob/living/proc/remove_CC(should_update_mobility = TRUE)
+ SetAllImmobility(0, FALSE)
+ setStaminaLoss(0)
+ SetUnconscious(0, FALSE)
+ if(should_update_mobility)
+ update_mobility()
+
//proc used to completely heal a mob.
-/mob/living/proc/fully_heal(admin_revive = 0)
+/mob/living/proc/fully_heal(admin_revive = FALSE)
restore_blood()
setToxLoss(0, 0) //zero as second argument not automatically call updatehealth().
setOxyLoss(0, 0)
@@ -645,7 +694,7 @@
attempt_resist_grab(FALSE)
// Return as we should only resist one thing at a time. Give clickdelay if the grab wasn't passive.
return old_gs? TRUE : FALSE
-
+
// unbuckling yourself. stops the chain if you try it.
if(buckled && last_special <= world.time)
log_combat(src, buckled, "resisted buckle")
@@ -1030,7 +1079,7 @@
update_fire()
/mob/living/proc/adjust_fire_stacks(add_fire_stacks) //Adjusting the amount of fire_stacks we have on person
- fire_stacks = CLAMP(fire_stacks + add_fire_stacks, -20, 20)
+ fire_stacks = clamp(fire_stacks + add_fire_stacks, -20, 20)
if(on_fire && fire_stacks <= 0)
ExtinguishMob()
diff --git a/code/modules/mob/living/living_block.dm b/code/modules/mob/living/living_block.dm
index d9e3309e47..8156f83dbd 100644
--- a/code/modules/mob/living/living_block.dm
+++ b/code/modules/mob/living/living_block.dm
@@ -1,7 +1,10 @@
-// This file has a weird name, but it's for anything related to the checks for shields, blocking, dodging, and similar "stop this attack before it actually impacts the target" as opposed to "defend once it has hit".
+// This file has a weird name, but it's for anything related to the checks for shields, blocking, dodging,
+// and similar "stop this attack before it actually impacts the target" as opposed to "defend once it has hit".
/*
-/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
+/// You can find the mob_check_block() and mob_run_block() macros in __DEFINES/combat.dm
+
+/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
/// Attack was not blocked
#define BLOCK_NONE NONE
/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION!
@@ -23,14 +26,6 @@
#define BLOCK_TARGET_DODGED (1<<7)
*/
-///Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields. Wrapper for do_run_block(). The arguments on that means the same as for this.
-/mob/living/proc/check_block(atom/object, damage, attack_text = "the attack", attack_type, armour_penetration, mob/attacker, def_zone, list/return_list)
- return do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
-
-/// Runs a block "sequence", effectively checking and then doing effects if necessary. Wrapper for do_run_block(). The arguments on that means the same as for this.
-/mob/living/proc/run_block(atom/object, damage, attack_text = "the attack", attack_type, armour_penetration, mob/attacker, def_zone, list/return_list)
- return do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
-
/** The actual proc for block checks. DO NOT USE THIS DIRECTLY UNLESS YOU HAVE VERY GOOD REASON TO. To reduce copypaste for differences between handling for real attacks and virtual checks.
* Automatically checks all held items for /obj/item/proc/run_block() with the same parameters.
* @params
@@ -57,7 +52,7 @@
if(real_attack)
for(var/obj/item/I in tocheck)
// i don't like this too
- var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
+ var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
var/results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list)
. |= results
if((results & BLOCK_SUCCESS) && !(results & BLOCK_CONTINUE_CHAIN))
@@ -65,12 +60,13 @@
else
for(var/obj/item/I in tocheck)
// i don't like this too
- var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
+ var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
I.check_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list)
/// Gets an unsortedlist of objects to run block checks on.
/mob/living/proc/get_blocking_items()
. = list()
+ SEND_SIGNAL(src, COMSIG_LIVING_GET_BLOCKING_ITEMS, .)
for(var/obj/item/I in held_items)
// this is a bad check but i am not removing it until a better catchall is made
if(istype(I, /obj/item/clothing))
@@ -85,11 +81,13 @@
/// Runs block and returns flag for do_run_block to process.
/obj/item/proc/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
- SEND_SIGNAL(src, COMSIG_ITEM_RUN_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ . = SEND_SIGNAL(src, COMSIG_ITEM_RUN_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ if(. & BLOCK_SUCCESS)
+ return
if(prob(final_block_chance))
owner.visible_message("[owner] blocks [attack_text] with [src]! ")
- return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL
- return BLOCK_NONE
+ return . | BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL
+ return . | BLOCK_NONE
/// Returns block information using list/block_return. Used for check_block() on mobs.
/obj/item/proc/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
diff --git a/code/modules/mob/living/living_combat.dm b/code/modules/mob/living/living_combat.dm
index 493f2ffdff..dbdcd1ea5b 100644
--- a/code/modules/mob/living/living_combat.dm
+++ b/code/modules/mob/living/living_combat.dm
@@ -17,7 +17,7 @@
update_combat_mode_icon()
/mob/living/proc/disable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE)
- if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
+ if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) || (combat_flags & COMBAT_FLAG_COMBAT_FORCED))
return
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE)
SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_DISABLED, was_forced)
@@ -60,6 +60,8 @@
/mob/living/proc/disable_intentional_combat_mode(silent = TRUE, visible = FALSE)
if(!(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
return
+ if(combat_flags & COMBAT_FLAG_COMBAT_FORCED)
+ return
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED)
if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)
disable_combat_mode(silent, FALSE, visible, FALSE)
@@ -71,6 +73,9 @@
/mob/living/proc/user_toggle_intentional_combat_mode(visible = TRUE)
var/old = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED)
if(old)
+ if(combat_flags & COMBAT_FLAG_COMBAT_FORCED)
+ to_chat(src, "You are unable to relax your muscles. ")
+ return
disable_intentional_combat_mode()
playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above!
else if(CAN_TOGGLE_COMBAT_MODE(src))
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 7d220739d5..4cf6fc3694 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -68,7 +68,7 @@
/mob/living/bullet_act(obj/item/projectile/P, def_zone)
if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself
var/list/returnlist = list()
- var/returned = run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist)
+ var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist)
if(returned & BLOCK_SHOULD_REDIRECT)
handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD])
if(returned & BLOCK_REDIRECTED)
@@ -88,9 +88,9 @@
/obj/item/proc/get_volume_by_throwforce_and_or_w_class()
if(throwforce && w_class)
- return CLAMP((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100
+ return clamp((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100
else if(w_class)
- return CLAMP(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100
+ return clamp(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100
else
return 0
@@ -111,7 +111,7 @@
I = AM
throwpower = I.throwforce
var/impacting_zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
- if(run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone) & BLOCK_SUCCESS)
+ if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, null) & BLOCK_SUCCESS)
hitpush = FALSE
skipcatch = TRUE
blocked = TRUE
@@ -264,12 +264,13 @@
update_mobility() //we fall down
if(!buckled && !density)
Move(user.loc)
+ user.set_pull_offsets(src, grab_state)
return 1
/mob/living/attack_hand(mob/user)
..() //Ignoring parent return value here.
SEND_SIGNAL(src, COMSIG_MOB_ATTACK_HAND, user)
- if((user != src) && user.a_intent != INTENT_HELP && (run_block(user, 0, user.name, ATTACK_TYPE_UNARMED | ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS))
+ if((user != src) && user.a_intent != INTENT_HELP && (mob_run_block(user, 0, user.name, ATTACK_TYPE_UNARMED | ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected), null) & BLOCK_SUCCESS))
log_combat(user, src, "attempted to touch")
visible_message("[user] attempted to touch [src]! ")
return TRUE
@@ -280,7 +281,7 @@
to_chat(user, "You don't want to hurt [src]! ")
return TRUE
var/hulk_verb = pick("smash","pummel")
- if(user != src && (run_block(user, 15, "the [hulk_verb]ing", ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS))
+ if(user != src && (mob_run_block(user, 15, "the [hulk_verb]ing", ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected), null) & BLOCK_SUCCESS))
return TRUE
..()
return FALSE
@@ -302,7 +303,7 @@
var/damage = rand(5, 35)
if(M.is_adult)
damage = rand(20, 40)
- if(run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS)
+ if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS)
return FALSE
if (stat != DEAD)
@@ -321,7 +322,7 @@
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "You don't want to hurt anyone! ")
return FALSE
- if(run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS)
+ if(mob_run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS)
return FALSE
if(M.attack_sound)
playsound(loc, M.attack_sound, 50, 1, 1)
@@ -339,7 +340,7 @@
if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSMOUTH))
to_chat(M, "You can't bite with your mouth covered! ")
return FALSE
- if(run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS)
+ if(mob_run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, 0, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS)
return FALSE
M.do_attack_animation(src, ATTACK_EFFECT_BITE)
if (prob(75))
@@ -363,7 +364,7 @@
if(HAS_TRAIT(L, TRAIT_PACIFISM))
to_chat(L, "You don't want to hurt anyone! ")
return FALSE
- if(L != src && (run_block(L, rand(1, 3), "the [L.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, L, check_zone(L.zone_selected)) & BLOCK_SUCCESS))
+ if(L != src && (mob_run_block(L, rand(1, 3), "the [L.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, 0, L, check_zone(L.zone_selected), null) & BLOCK_SUCCESS))
return FALSE
L.do_attack_animation(src)
if(prob(90))
@@ -377,7 +378,7 @@
"[L.name] has attempted to bite [src]! ", null, COMBAT_MESSAGE_RANGE)
/mob/living/attack_alien(mob/living/carbon/alien/humanoid/M)
- if((M != src) && M.a_intent != INTENT_HELP && (run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS))
+ if((M != src) && M.a_intent != INTENT_HELP && (mob_run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, 0, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS))
visible_message("[M] attempted to touch [src]! ")
return FALSE
switch(M.a_intent)
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index 0b4be7d463..228028eb9b 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -98,8 +98,6 @@
var/datum/riding/riding_datum
- var/datum/language/selected_default_language
-
var/last_words //used for database logging
var/list/obj/effect/proc_holder/abilities = list()
diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm
index 49d4a20887..32038a6102 100644
--- a/code/modules/mob/living/living_mobility.dm
+++ b/code/modules/mob/living/living_mobility.dm
@@ -94,11 +94,13 @@
if(should_be_lying)
mobility_flags &= ~MOBILITY_STAND
+ setMovetype(movement_type | CRAWLING)
if(!lying) //force them on the ground
lying = pick(90, 270)
if(has_gravity() && !buckled)
playsound(src, "bodyfall", 20, 1)
else
+ setMovetype(movement_type & ~CRAWLING)
mobility_flags |= MOBILITY_STAND
lying = 0
@@ -161,8 +163,8 @@
if(!has_legs && has_arms < 2)
limbless_slowdown += 6 - (has_arms * 3)
if(limbless_slowdown)
- add_movespeed_modifier(MOVESPEED_ID_LIVING_LIMBLESS, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=limbless_slowdown, blacklisted_movetypes = FLYING|FLOATING)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/limbless, multiplicative_slowdown = limbless_slowdown)
else
- remove_movespeed_modifier(MOVESPEED_ID_LIVING_LIMBLESS, update=TRUE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/limbless)
return mobility_flags
diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm
index ec291094fe..6a84162ea8 100644
--- a/code/modules/mob/living/living_movement.dm
+++ b/code/modules/mob/living/living_movement.dm
@@ -36,38 +36,26 @@
sprint_stamina_cost = CONFIG_GET(number/movedelay/sprint_stamina_cost)
return ..()
-/mob/living/movement_delay(ignorewalk = 0)
- . = ..()
- if(!CHECK_MOBILITY(src, MOBILITY_STAND))
- . += 6
-
/// whether or not we can slide under another living mob. defaults to if we're not dense. CanPass should check "overriding circumstances" like buckled mobs/having PASSMOB flag, etc.
/mob/living/proc/can_move_under_living(mob/living/other)
return !density
/mob/living/proc/update_move_intent_slowdown()
- var/mod = 0
- if(m_intent == MOVE_INTENT_WALK)
- mod = CONFIG_GET(number/movedelay/walk_delay)
- else
- mod = CONFIG_GET(number/movedelay/run_delay)
- if(!isnum(mod))
- mod = 1
- add_movespeed_modifier(MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED, TRUE, 100, override = TRUE, multiplicative_slowdown = mod)
+ add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run)
/mob/living/proc/update_turf_movespeed(turf/open/T)
- if(isopenturf(T) && !is_flying())
- add_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = T.slowdown)
+ if(isopenturf(T))
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = T.slowdown)
else
- remove_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD)
+ remove_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown)
/mob/living/proc/update_pull_movespeed()
if(pulling && isliving(pulling))
var/mob/living/L = pulling
if(drag_slowdown && L.lying && !L.buckled && grab_state < GRAB_AGGRESSIVE)
- add_movespeed_modifier(MOVESPEED_ID_PRONE_DRAGGING, multiplicative_slowdown = PULL_PRONE_SLOWDOWN)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_PRONE_SLOWDOWN)
return
- remove_movespeed_modifier(MOVESPEED_ID_PRONE_DRAGGING)
+ remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag)
/mob/living/canZMove(dir, turf/target)
return can_zTravel(target, dir) && (movement_type & FLYING)
@@ -87,8 +75,12 @@
. = ..()
- if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move.
+ if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1 && (pulledby != moving_from_pull))//separated from our puller and not in the middle of a diagonal move.
pulledby.stop_pulling()
+ else
+ if(isliving(pulledby))
+ var/mob/living/L = pulledby
+ L.set_pull_offsets(src, pulledby.grab_state)
if(active_storage && !(CanReach(active_storage.parent,view_only = TRUE)))
active_storage.close(src)
@@ -96,6 +88,14 @@
if(lying && !buckled && prob(getBruteLoss()*200/maxHealth))
makeTrail(newloc, T, old_direction)
+
+/mob/living/Move_Pulled(atom/A)
+ . = ..()
+ if(!. || !isliving(A))
+ return
+ var/mob/living/L = A
+ set_pull_offsets(L, grab_state)
+
/mob/living/forceMove(atom/destination)
stop_pulling()
if(buckled)
diff --git a/code/modules/mob/living/living_sprint.dm b/code/modules/mob/living/living_sprint.dm
index 55d5f3320c..dc0f6d2767 100644
--- a/code/modules/mob/living/living_sprint.dm
+++ b/code/modules/mob/living/living_sprint.dm
@@ -33,7 +33,7 @@
update_sprint_icon()
/mob/living/proc/disable_sprint_mode(update_icon = TRUE)
- if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE))
+ if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) || (combat_flags & COMBAT_FLAG_SPRINT_FORCED))
return
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE)
if(update_icon)
@@ -51,6 +51,8 @@
/mob/living/proc/disable_intentional_sprint_mode()
if(!(combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE))
return
+ if(combat_flags & COMBAT_FLAG_SPRINT_FORCED)
+ return
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED)
if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
disable_sprint_mode(FALSE)
@@ -59,6 +61,9 @@
/mob/living/proc/user_toggle_intentional_sprint_mode()
var/old = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED)
if(old)
+ if(combat_flags & COMBAT_FLAG_SPRINT_FORCED)
+ to_chat(src, "You are unable to stop sprinting! ")
+ return
disable_intentional_sprint_mode()
if((m_intent == MOVE_INTENT_RUN) && CHECK_ALL_MOBILITY(src, MOBILITY_STAND|MOBILITY_MOVE))
playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index f90b285d2d..6caf96fedc 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
var/datum/language/message_language = get_message_language(message)
if(message_language)
// No, you cannot speak in xenocommon just because you know the key
- if(can_speak_in_language(message_language))
+ if(can_speak_language(message_language))
language = message_language
message = copytext_char(message, 3)
@@ -141,7 +141,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
message = trim_left(message)
if(!language)
- language = get_default_language()
+ language = get_selected_language()
// Detection of language needs to be before inherent channels, because
// AIs use inherent channels for the holopad. Most inherent channels
@@ -237,6 +237,10 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
deaf_message = "You can't hear yourself! "
deaf_type = 2 // Since you should be able to hear yourself without looking
+ // Create map text prior to modifying message for goonchat
+ if (client?.prefs.chat_on_map && stat != UNCONSCIOUS && (client.prefs.see_chat_non_mob || ismob(speaker)) && can_hear())
+ create_chat_message(speaker, message_language, raw_message, spans, message_mode)
+
// Recompose message for AI hrefs, language incomprehension.
message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source)
@@ -289,7 +293,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
//speech bubble
var/list/speech_bubble_recipients = list()
for(var/mob/M in listening)
- if(M.client)
+ if(M.client && !M.client.prefs.chat_on_map)
speech_bubble_recipients.Add(M.client)
var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER)
I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA
@@ -411,11 +415,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
/mob/living/whisper(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
say("#[message]", bubble_type, spans, sanitize, language, ignore_spam, forced)
-/mob/living/get_language_holder(shadow=TRUE)
- if(mind && shadow)
- // Mind language holders shadow mob holders.
- . = mind.get_language_holder()
- if(.)
- return .
-
+/mob/living/get_language_holder(get_minds = TRUE)
+ if(get_minds && mind)
+ return mind.get_language_holder()
. = ..()
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index d178af9fb0..dff5584617 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -822,21 +822,21 @@
return get_dist(src, A) <= max(viewscale[1]*0.5,viewscale[2]*0.5)
/mob/living/silicon/ai/proc/relay_speech(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode)
- raw_message = lang_treat(speaker, message_language, raw_message, spans, message_mode)
+ var/treated_message = lang_treat(speaker, message_language, raw_message, spans, message_mode)
var/start = "Relayed Speech: "
var/namepart = "[speaker.GetVoice()][speaker.get_alt_name()]"
var/hrefpart = ""
- var/jobpart
+ var/jobpart = "Unknown"
if (iscarbon(speaker))
var/mob/living/carbon/S = speaker
if(S.job)
jobpart = "[S.job]"
- else
- jobpart = "Unknown"
- var/rendered = "[start][hrefpart][namepart] ([jobpart]) [raw_message] "
+ var/rendered = "[start][hrefpart][namepart] ([jobpart]) [treated_message] "
+ if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker)))
+ create_chat_message(speaker, message_language, raw_message, spans, message_mode)
show_message(rendered, MSG_AUDIBLE)
/mob/living/silicon/ai/fully_replace_character_name(oldname,newname)
@@ -869,7 +869,7 @@
if(istype(A, /obj/machinery/camera))
current = A
if(client)
- if(ismovableatom(A))
+ if(ismovable(A))
if(A != GLOB.ai_camera_room_landmark)
end_multicam()
client.perspective = EYE_PERSPECTIVE
@@ -1016,7 +1016,7 @@
if("Yes.")
src.ghostize(FALSE, penalize = TRUE)
var/announce_rank = "Artificial Intelligence,"
- if(GLOB.announcement_systems.len)
+ if(GLOB.announcement_systems.len)
// Sends an announcement the AI has cryoed.
var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems)
announcer.announce("CRYOSTORAGE", src.real_name, announce_rank, list())
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index 4a76eafc53..2b5d3d98f2 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -171,10 +171,3 @@
#undef VOX_DELAY
#endif
-
-/mob/living/silicon/ai/could_speak_in_language(datum/language/dt)
- if(is_servant_of_ratvar(src))
- // Ratvarian AIs can only speak Ratvarian
- . = ispath(dt, /datum/language/ratvar)
- else
- . = ..()
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index 26fa3b505d..4b1b108b0e 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -154,7 +154,7 @@
/mob/living/silicon/pai/proc/process_hack()
if(cable && cable.machine && istype(cable.machine, /obj/machinery/door) && cable.machine == hackdoor && get_dist(src, hackdoor) <= 1)
- hackprogress = CLAMP(hackprogress + 4, 0, 100)
+ hackprogress = clamp(hackprogress + 4, 0, 100)
else
temp = "Door Jack: Connection to airlock has been lost. Hack aborted."
hackprogress = 0
@@ -273,9 +273,9 @@
/mob/living/silicon/pai/Process_Spacemove(movement_dir = 0)
. = ..()
if(!.)
- add_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE, 100, multiplicative_slowdown = 2)
+ add_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk)
return TRUE
- remove_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk)
return TRUE
/mob/living/silicon/pai/examine(mob/user)
@@ -301,7 +301,7 @@
update_stat()
/mob/living/silicon/pai/process()
- emitterhealth = CLAMP((emitterhealth + emitterregen), -50, emittermaxhealth)
+ emitterhealth = clamp((emitterhealth + emitterregen), -50, emittermaxhealth)
/obj/item/paicard/attackby(obj/item/W, mob/user, params)
..()
diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm
index 0477492c0a..ba162ecf2c 100644
--- a/code/modules/mob/living/silicon/pai/pai_defense.dm
+++ b/code/modules/mob/living/silicon/pai/pai_defense.dm
@@ -69,7 +69,7 @@
return FALSE //No we're not flammable
/mob/living/silicon/pai/proc/take_holo_damage(amount)
- emitterhealth = CLAMP((emitterhealth - amount), -50, emittermaxhealth)
+ emitterhealth = clamp((emitterhealth - amount), -50, emittermaxhealth)
if(emitterhealth < 0)
fold_in(force = TRUE)
if(amount > 0)
diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm
index 892cc3f13b..76ced767e8 100644
--- a/code/modules/mob/living/silicon/pai/software.dm
+++ b/code/modules/mob/living/silicon/pai/software.dm
@@ -267,9 +267,8 @@
if(href_list["toggle"])
encryptmod = TRUE
if("translator")
- if(href_list["toggle"])
- grant_all_languages(TRUE)
- // this is PERMAMENT.
+ if(href_list["toggle"]) //This is permanent.
+ grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_SOFTWARE)
if("doorjack")
if(href_list["jack"])
if(cable && cable.machine)
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index cf67517c52..e04943a8c5 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -21,7 +21,7 @@
if(cell && cell.charge)
if(cell.charge <= 100)
uneq_all()
- var/amt = CLAMP((lamp_intensity - 2) * 2,1,cell.charge) //Always try to use at least one charge per tick, but allow it to completely drain the cell.
+ var/amt = clamp((lamp_intensity - 2) * 2,1,cell.charge) //Always try to use at least one charge per tick, but allow it to completely drain the cell.
cell.use(amt) //Usage table: 1/tick if off/lowest setting, 4 = 4/tick, 6 = 8/tick, 8 = 12/tick, 10 = 16/tick
else
uneq_all()
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 4ef5993d2d..508dc67dd7 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -237,7 +237,7 @@
return
if(!CONFIG_GET(flag/disable_secborg) && GLOB.security_level < CONFIG_GET(number/minimum_secborg_alert))
- to_chat(src, "NOTICE: Due to local station regulations, the security cyborg module and its variants are only available during [num2seclevel(CONFIG_GET(number/minimum_secborg_alert))] alert and greater. ")
+ to_chat(src, "NOTICE: Due to local station regulations, the security cyborg module and its variants are only available during [NUM2SECLEVEL(CONFIG_GET(number/minimum_secborg_alert))] alert and greater. ")
var/list/modulelist = list("Standard" = /obj/item/robot_module/standard, \
"Engineering" = /obj/item/robot_module/engineering, \
@@ -427,24 +427,23 @@
else if(istype(W, /obj/item/stack/cable_coil) && wiresexposed)
user.changeNext_move(CLICK_CD_MELEE)
- var/obj/item/stack/cable_coil/coil = W
if (getFireLoss() > 0 || getToxLoss() > 0)
- if(src == user && coil.use(1))
+ if(src == user)
to_chat(user, "You start fixing yourself... ")
- if(!do_after(user, 50, target = src))
+ if(!W.use_tool(src, user, 50, 1, max_level = JOB_SKILL_TRAINED))
+ to_chat(user, "You need more cable to repair [src]! ")
return
adjustFireLoss(-10)
adjustToxLoss(-10)
- if (coil.use(1))
+ else
to_chat(user, "You start fixing [src]... ")
- if(!do_after(user, 30, target = src))
+ if(!W.use_tool(src, user, 30, 1))
+ to_chat(user, "You need more cable to repair [src]! ")
return
adjustFireLoss(-30)
adjustToxLoss(-30)
updatehealth()
user.visible_message("[user] has fixed some of the burnt wires on [src].", "You fix some of the burnt wires on [src]. ")
- else
- to_chat(user, "You need more cable to repair [src]! ")
else
to_chat(user, "The wires seem fine, there's no need to fix them.")
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 4659c907a6..539c11de4b 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -276,6 +276,19 @@
R.hud_used.update_robot_modules_display()
SSblackbox.record_feedback("tally", "cyborg_modules", 1, R.module)
+/**
+ * check_menu: Checks if we are allowed to interact with a radial menu
+ *
+ * Arguments:
+ * * user The mob interacting with a menu
+ */
+/obj/item/robot_module/proc/check_menu(mob/user)
+ if(!istype(user))
+ return FALSE
+ if(user.incapacitated() || !user.Adjacent(src))
+ return FALSE
+ return TRUE
+
/obj/item/robot_module/standard
name = "Standard"
basic_modules = list(
@@ -337,13 +350,28 @@
/obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/medmodels = list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot", "Medihound", "Medihound Dark", "Vale")
- if(R.client && (R.client.ckey in list("nezuli")))
- medmodels += "Alina"
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medmodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
+ var/static/list/med_icons
+ if(!med_icons)
+ med_icons = list(
+ "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "medical"),
+ "Droid" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "medical"),
+ "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"),
+ "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"),
+ "Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"),
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed")
+ )
+ var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed")
+ for(var/a in L)
+ var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
+ wide.pixel_x = -16
+ med_icons[a] = wide
+ if(R.client && R.client.ckey == "nezuli")
+ var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-med")
+ bad_snowflake.pixel_x = -16
+ med_icons["Alina"] = bad_snowflake
+ med_icons = sortList(med_icons)
+ var/med_borg_icon = show_radial_menu(R, R , med_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ switch(med_borg_icon)
if("Default")
cyborg_base_icon = "medical"
if("Droid")
@@ -391,6 +419,8 @@
moduleselect_icon = "medihound"
moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
dogborg = TRUE
+ else
+ return FALSE
return ..()
/obj/item/robot_module/engineering
@@ -434,13 +464,31 @@
/obj/item/robot_module/engineering/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale")
- if(R.client && (R.client.ckey in list("nezuli")))
- engymodels += "Alina"
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in engymodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
+ var/static/list/engi_icons
+ if(!engi_icons)
+ engi_icons = list(
+ "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "engineer"),
+ "Default - Treads" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "engi-tread"),
+ "Loader" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "loaderborg"),
+ "Handy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "handyeng"),
+ "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekeng"),
+ "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"),
+ "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"),
+ "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"),
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng")
+ )
+ var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng")
+ for(var/a in L)
+ var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
+ wide.pixel_x = -16
+ engi_icons[a] = wide
+ if(R.client && R.client.ckey == "nezuli")
+ var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-eng")
+ bad_snowflake.pixel_x = -16
+ engi_icons["Alina"] = bad_snowflake
+ engi_icons = sortList(engi_icons)
+ var/engi_borg_icon = show_radial_menu(R, R , engi_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ switch(engi_borg_icon)
if("Default")
cyborg_base_icon = "engineer"
if("Default - Treads")
@@ -485,6 +533,8 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "alinasleeper"
dogborg = TRUE
+ else
+ return FALSE
return ..()
/obj/item/robot_module/security
@@ -512,13 +562,29 @@
/obj/item/robot_module/security/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/list/secmodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Can", "Marina", "Spider", "K9", "K9 Dark", "Vale")
- if(R.client && (R.client.ckey in list("nezuli")))
- secmodels += "Alina"
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in secmodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
+ var/static/list/sec_icons
+ if(!sec_icons)
+ sec_icons = list(
+ "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "sec"),
+ "Default - Treads" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sec-tread"),
+ "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleeksec"),
+ "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "cansec"),
+ "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinasec"),
+ "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"),
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec")
+ )
+ var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark")
+ for(var/a in L)
+ var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
+ wide.pixel_x = -16
+ sec_icons[a] = wide
+ if(R.client && R.client.ckey == "nezuli")
+ var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec")
+ bad_snowflake.pixel_x = -16
+ sec_icons["Alina"] = bad_snowflake
+ sec_icons = sortList(sec_icons)
+ var/sec_borg_icon = show_radial_menu(R, R , sec_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ switch(sec_borg_icon)
if("Default")
cyborg_base_icon = "sec"
if("Default - Treads")
@@ -561,6 +627,8 @@
sleeper_overlay = "valesecsleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
dogborg = TRUE
+ else
+ return FALSE
return ..()
/obj/item/robot_module/security/Initialize()
@@ -599,10 +667,13 @@
/obj/item/robot_module/peacekeeper/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Spider", "Borgi")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
+ var/static/list/peace_icons = sortList(list(
+ "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "peace"),
+ "Borgi" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "borgi"),
+ "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider")
+ ))
+ var/peace_borg_icon = show_radial_menu(R, R , peace_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ switch(peace_borg_icon)
if("Default")
cyborg_base_icon = "peace"
if("Spider")
@@ -615,6 +686,8 @@
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
has_snowflake_deadsprite = TRUE
+ else
+ return FALSE
return ..()
//Janitor module combined with Service module
@@ -738,10 +811,35 @@
/obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("(Service) Waitress", "(Service) Heavy", "(Service) Sleek", "(Service) Butler", "(Service) Tophat", "(Service) Can", "(Service) Bro", "(Service) DarkK9", "(Service) Vale", "(Service) ValeDark", "(Janitor) Default", "(Janitor) Sleek", "(Janitor) Marina", "(Janitor) Can", "(Janitor) Heavy", "(Janitor) Scrubpuppy")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
+ var/static/list/service_icons
+ if(!service_icons)
+ service_icons = list(
+ "(Service) Waitress" = image(icon = 'icons/mob/robots.dmi', icon_state = "service_f"),
+ "(Service) Butler" = image(icon = 'icons/mob/robots.dmi', icon_state = "service_m"),
+ "(Service) Bro" = image(icon = 'icons/mob/robots.dmi', icon_state = "brobot"),
+ "(Service) Can" = image(icon = 'icons/mob/robots.dmi', icon_state = "kent"),
+ "(Service) Tophat" = image(icon = 'icons/mob/robots.dmi', icon_state = "tophat"),
+ "(Service) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekserv"),
+ "(Service) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyserv"),
+ "(Janitor) Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "janitor"),
+ "(Janitor) Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinajan"),
+ "(Janitor) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"),
+ "(Janitor) Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"),
+ "(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan"),
+ )
+ var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark",
+ "(Janitor) Scrubpuppy" = "scrubpup")
+ for(var/a in L)
+ var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
+ wide.pixel_x = -16
+ service_icons[a] = wide
+ if(R.client && R.client.ckey == "nezuli")
+ var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec")
+ bad_snowflake.pixel_x = -16
+ service_icons["Alina"] = bad_snowflake
+ service_icons = sortList(service_icons)
+ var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ switch(service_robot_icon)
if("(Service) Waitress")
cyborg_base_icon = "service_f"
special_light_key = "service"
@@ -799,6 +897,8 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "jsleeper"
dogborg = TRUE
+ else
+ return FALSE
return ..()
/obj/item/robot_module/miner
@@ -833,10 +933,25 @@
/obj/item/robot_module/miner/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid", "Blade", "Vale")
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
+ var/static/list/mining_icons
+ if(!mining_icons)
+ mining_icons = list(
+ "Lavaland" = image(icon = 'icons/mob/robots.dmi', icon_state = "miner"),
+ "Asteroid" = image(icon = 'icons/mob/robots.dmi', icon_state = "minerOLD"),
+ "Droid" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "miner"),
+ "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmin"),
+ "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"),
+ "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"),
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"),
+ )
+ var/list/L = list("Blade" = "blade", "Vale" = "valemine")
+ for(var/a in L)
+ var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
+ wide.pixel_x = -16
+ mining_icons[a] = wide
+ mining_icons = sortList(mining_icons)
+ var/mining_borg_icon = show_radial_menu(R, R , mining_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ switch(mining_borg_icon)
if("Lavaland")
cyborg_base_icon = "miner"
if("Asteroid")
@@ -871,6 +986,8 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valeminesleeper"
dogborg = TRUE
+ else
+ return FALSE
return ..()
/obj/item/robot_module/syndicate
diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm
index 9b3db8af62..94ce1e42fc 100644
--- a/code/modules/mob/living/silicon/silicon_defense.dm
+++ b/code/modules/mob/living/silicon/silicon_defense.dm
@@ -1,3 +1,5 @@
+/mob/living/silicon/KnockToFloor(disarm_items = FALSE, silent = TRUE, updating = TRUE)
+ return
/mob/living/silicon/grippedby(mob/living/user, instant = FALSE)
return //can't upgrade a simple pull into a more aggressive grab.
@@ -113,7 +115,7 @@
/mob/living/silicon/bullet_act(obj/item/projectile/P, def_zone)
if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself
var/list/returnlist = list()
- var/returned = run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist)
+ var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist)
if(returned & BLOCK_SHOULD_REDIRECT)
handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD])
if(returned & BLOCK_REDIRECTED)
diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm
index f4feab8824..fe18d48718 100644
--- a/code/modules/mob/living/simple_animal/animal_defense.dm
+++ b/code/modules/mob/living/simple_animal/animal_defense.dm
@@ -61,11 +61,10 @@
"[M] [response_disarm] [name]! ", null, COMBAT_MESSAGE_RANGE)
log_combat(M, src, "disarmed")
else
- var/damage = rand(15, 30)
visible_message("[M] has slashed at [src]! ", \
"[M] has slashed at [src]! ", null, COMBAT_MESSAGE_RANGE)
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
- attack_threshold_check(damage)
+ attack_threshold_check(M.meleeSlashSAPower)
log_combat(M, src, "attacked")
/mob/living/simple_animal/attack_larva(mob/living/carbon/alien/larva/L)
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index a8e0d2c1c8..97f3dad3f0 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -911,7 +911,6 @@ Pass a positive integer as an argument to override a bot's default speed.
bot_name = name
name = paicard.pai.name
faction = user.faction.Copy()
- language_holder = paicard.pai.language_holder.copy(src)
log_combat(user, paicard.pai, "uploaded to [bot_name],")
return TRUE
else
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 0e48723f37..adb49938e1 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -19,6 +19,11 @@
path_image_color = "#993299"
weather_immunities = list("lava","ash")
+ var/clean_time = 50 //How long do we take to clean?
+ var/broom = FALSE //Do we have an speed buff from a broom?
+ var/adv_mop = FALSE //Do we have a cleaning buff from a better mop?
+
+
var/blood = 1
var/trash = 0
var/pests = 0
@@ -75,6 +80,26 @@
to_chat(user, "Please close the access panel before locking it. ")
else
to_chat(user, "\The [src] doesn't seem to respect your authority. ")
+
+ if(istype(W, /obj/item/mop/advanced))
+ if(bot_core.allowed(user) && open && adv_mop == TRUE)
+ to_chat(user, "You replace \the [src] old mop with a new better one! ")
+ adv_mop = TRUE
+ clean_time = 20 //2.5 the speed!
+ window_name = "Automatic Station Cleaner v2.1 BETA" //New!
+ qdel(W)
+ else
+ to_chat(user, "\the [src] already has this mop! ")
+
+ if(istype(W, /obj/item/twohanded/broom))
+ if(bot_core.allowed(user) && open && broom == TRUE)
+ to_chat(user, "You add to \the [src] a broom speeding it up! ")
+ broom = TRUE
+ base_speed = 1 //2x faster!
+ qdel(W)
+ else
+ to_chat(user, "\the [src] already has a broom! ")
+
else
return ..()
@@ -221,7 +246,7 @@
icon_state = "cleanbot-c"
visible_message("[src] begins to clean up [A]. ")
mode = BOT_CLEANING
- spawn(50)
+ spawn(clean_time)
if(mode == BOT_CLEANING)
if(A && isturf(A.loc))
var/atom/movable/AM = A
diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm
index 6c4680a477..08fffc2cf8 100644
--- a/code/modules/mob/living/simple_animal/bot/construction.dm
+++ b/code/modules/mob/living/simple_animal/bot/construction.dm
@@ -147,9 +147,8 @@
to_chat(user, "You need one length of cable to wire the ED-209! ")
return
to_chat(user, "You start to wire [src]... ")
- if(do_after(user, 40, target = src))
- if(coil.get_amount() >= 1 && build_step == 6)
- coil.use(1)
+ if(coil.use_tool(src, user, 40, 1))
+ if(build_step == 6)
to_chat(user, "You wire [src]. ")
name = "wired ED-209 assembly"
build_step++
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index ab7c632214..e4e81bb5db 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -264,6 +264,9 @@
if((last_newpatient_speak + 300) < world.time) //Don't spam these messages!
var/list/messagevoice = list("Hey, [H.name]! Hold on, I'm coming." = 'sound/voice/medbot/coming.ogg',"Wait [H.name]! I want to help!" = 'sound/voice/medbot/help.ogg',"[H.name], you appear to be injured!" = 'sound/voice/medbot/injured.ogg')
var/message = pick(messagevoice)
+ if(prob(1) && ISINRANGE_EX(H.getFireLoss(), 0, 20))
+ message = "Notices your minor burns*OwO what's this?"
+ messagevoice[message] = 'sound/voice/medbot/owo.ogg'
speak(message)
playsound(loc, messagevoice[message], 50, 0)
last_newpatient_speak = world.time
diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm
index 2e0e9dadb4..585bf58d95 100644
--- a/code/modules/mob/living/simple_animal/corpse.dm
+++ b/code/modules/mob/living/simple_animal/corpse.dm
@@ -20,7 +20,7 @@
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/armor/vest
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
ears = /obj/item/radio/headset
mask = /obj/item/clothing/mask/gas
head = /obj/item/clothing/head/helmet/swat
@@ -39,7 +39,7 @@
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/space/hardsuit/syndi
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
ears = /obj/item/radio/headset
mask = /obj/item/clothing/mask/gas/syndicate
back = /obj/item/tank/jetpack/oxygen
@@ -59,7 +59,7 @@
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat
ears = /obj/item/radio/headset
mask = /obj/item/clothing/mask/gas/syndicate
back = /obj/item/tank/jetpack/oxygen/harness
@@ -130,7 +130,7 @@
uniform = /obj/item/clothing/under/syndicate/camo
suit = /obj/item/clothing/suit/armor/bulletproof
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat
ears = /obj/item/radio/headset
head = /obj/item/clothing/head/helmet/alt
mask = /obj/item/clothing/mask/balaclava
@@ -177,7 +177,7 @@
uniform = /obj/item/clothing/under/rank/security/officer
suit = /obj/item/clothing/suit/armor/vest
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/combat
+ gloves = /obj/item/clothing/gloves/tackler/combat
ears = /obj/item/radio/headset
mask = /obj/item/clothing/mask/gas/sechailer/swat
head = /obj/item/clothing/head/helmet/swat/nanotrasen
diff --git a/code/modules/mob/living/simple_animal/damage_procs.dm b/code/modules/mob/living/simple_animal/damage_procs.dm
index 0cc097dc08..90fdeb0a62 100644
--- a/code/modules/mob/living/simple_animal/damage_procs.dm
+++ b/code/modules/mob/living/simple_animal/damage_procs.dm
@@ -2,7 +2,7 @@
/mob/living/simple_animal/proc/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
if(!forced && (status_flags & GODMODE))
return FALSE
- bruteloss = round(CLAMP(bruteloss + amount, 0, maxHealth),DAMAGE_PRECISION)
+ bruteloss = round(clamp(bruteloss + amount, 0, maxHealth),DAMAGE_PRECISION)
if(updating_health)
updatehealth()
return amount
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 1297fddb69..7d41068020 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -87,7 +87,6 @@
pass_flags = PASSMOB
mob_size = MOB_SIZE_SMALL
collar_type = "kitten"
- held_icon = "cat"
//RUNTIME IS ALIVE! SQUEEEEEEEE~
/mob/living/simple_animal/pet/cat/Runtime
@@ -99,6 +98,7 @@
gender = FEMALE
gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
+ held_icon = "cat"
var/list/family = list()//var restored from savefile, has count of each child type
var/list/children = list()//Actual mob instances of children
var/cats_deployed = 0
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index 9e1ae48bdd..cce5edc513 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -11,7 +11,7 @@
blood_volume = 350
speak_chance = 1
turns_per_move = 5
- butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 1)
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 4)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "stomps"
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 370442d4c4..7f83bb9f9b 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -97,6 +97,8 @@
body_color = "brown"
icon_state = "mouse_brown"
+GLOBAL_VAR(tom_existed)
+
//TOM IS ALIVE! SQUEEEEEEEE~K :)
/mob/living/simple_animal/mouse/brown/Tom
name = "Tom"
@@ -106,6 +108,10 @@
response_harm = "splats"
gold_core_spawnable = NO_SPAWN
+/mob/living/simple_animal/mouse/brown/Tom/Initialize()
+ . = ..()
+ GLOB.tom_existed = TRUE
+
/obj/item/reagent_containers/food/snacks/deadmouse
name = "dead mouse"
desc = "It looks like somebody dropped the bass on it. A lizard's favorite meal."
diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm
index 1ece6dde37..c60e43ff01 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm
@@ -54,7 +54,7 @@
var/blocked = FALSE
if(hasmatchingsummoner(hit_atom)) //if the summoner matches don't hurt them
blocked = TRUE
- if(L.run_block(src, 90, "[name]", ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS)
+ if(L.mob_run_block(src, 90, "[name]", ATTACK_TYPE_TACKLE, 0, src, null, null) & BLOCK_SUCCESS)
blocked = TRUE
if(!blocked)
L.drop_all_held_items()
diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm
index 3b9700bb58..2045e194d2 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien.dm
+++ b/code/modules/mob/living/simple_animal/hostile/alien.dm
@@ -175,7 +175,7 @@
AddElement(/datum/element/cleaning)
/mob/living/simple_animal/hostile/alien/maid/AttackingTarget()
- if(ismovableatom(target))
+ if(ismovable(target))
if(istype(target, /obj/effect/decal/cleanable))
visible_message("[src] cleans up \the [target].")
qdel(target)
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm
index 9c89ff4a4f..ced56f0705 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/carp.dm
@@ -7,7 +7,7 @@
icon_living = "carp"
icon_dead = "carp_dead"
icon_gib = "carp_gib"
- threat = 0.2
+ threat = 0.1
mob_biotypes = MOB_ORGANIC|MOB_BEAST
speak_chance = 0
turns_per_move = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 439bedf3cc..f19aa0a2a7 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -186,10 +186,10 @@
. = ..()
if(slowed_by_webs)
if(!(locate(/obj/structure/spider/stickyweb) in loc))
- remove_movespeed_modifier(MOVESPEED_ID_TARANTULA_WEB)
+ remove_movespeed_modifier(/datum/movespeed_modifier/tarantula_web)
slowed_by_webs = FALSE
else if(locate(/obj/structure/spider/stickyweb) in loc)
- add_movespeed_modifier(MOVESPEED_ID_TARANTULA_WEB, priority=100, multiplicative_slowdown=3)
+ add_movespeed_modifier(/datum/movespeed_modifier/tarantula_web)
slowed_by_webs = TRUE
//midwives are the queen of the spiders, can send messages to all them and web faster. That rare round where you get a queen spider and turn your 'for honor' players into 'r6siege' players will be a fun one.
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
index c90ebe8a5c..fd278eb438 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
@@ -265,4 +265,12 @@ Difficulty: Medium
desc = "The sweet blood, oh, it sings to me."
invisibility = 100
+/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom
+ name = "hostile-environment miner"
+ desc = "A miner destined to hop across dimensions for all eternity, hunting anomalous creatures."
+ speed = 8
+ move_to_delay = 8
+ ranged_cooldown_time = 8
+ dash_cooldown = 8
+
#undef MINER_DASH_RANGE
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
index 5e75088f53..d2680fbf61 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
@@ -65,10 +65,10 @@ Difficulty: Hard
/mob/living/simple_animal/hostile/megafauna/bubblegum/Life()
..()
- move_to_delay = CLAMP(round((health/maxHealth) * 10), 3, 10)
+ move_to_delay = clamp(round((health/maxHealth) * 10), 3, 10)
/mob/living/simple_animal/hostile/megafauna/bubblegum/OpenFire()
- anger_modifier = CLAMP(((maxHealth - health)/50),0,20)
+ anger_modifier = clamp(((maxHealth - health)/50),0,20)
if(charging)
return
ranged_cooldown = world.time + ranged_cooldown_time
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index 83d27e7ea6..73fb9d4e48 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -56,7 +56,7 @@ Difficulty: Very Hard
L.dust()
/mob/living/simple_animal/hostile/megafauna/colossus/OpenFire()
- anger_modifier = CLAMP(((maxHealth - health)/50),0,20)
+ anger_modifier = clamp(((maxHealth - health)/50),0,20)
ranged_cooldown = world.time + 120
if(enrage(target))
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
new file mode 100644
index 0000000000..3d106021de
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
@@ -0,0 +1,361 @@
+/*
+Difficulty: Extremely Hard
+*/
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner
+ name = "demonic-frost miner"
+ desc = "An extremely geared miner, driven crazy or possessed by the demonic forces here, either way a terrifying enemy."
+ health = 1500
+ maxHealth = 1500
+ icon_state = "demonic_miner"
+ icon_living = "demonic_miner"
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ attacktext = "pummels"
+ attack_sound = 'sound/weapons/sonic_jackhammer.ogg'
+ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
+ light_color = "#E4C7C5"
+ movement_type = GROUND
+ weather_immunities = list("snow")
+ speak_emote = list("roars")
+ armour_penetration = 100
+ melee_damage_lower = 10
+ melee_damage_upper = 10
+ aggro_vision_range = 18 // large vision range so combat doesn't abruptly end when someone runs a bit away
+ rapid_melee = 4
+ speed = 20
+ move_to_delay = 20
+ ranged = TRUE
+ crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman)
+ loot = list(/obj/effect/decal/remains/plasma)
+ wander = FALSE
+ del_on_death = TRUE
+ blood_volume = BLOOD_VOLUME_NORMAL
+ deathmessage = "falls to the ground, decaying into plasma particles."
+ deathsound = "bodyfall"
+ attack_action_types = list(/datum/action/innate/megafauna_attack/frost_orbs,
+ /datum/action/innate/megafauna_attack/snowball_machine_gun,
+ /datum/action/innate/megafauna_attack/ice_shotgun)
+ /// Modifies the speed of the projectiles the demonic frost miner shoots out
+ var/projectile_speed_multiplier = 1
+ /// If the demonic frost miner is in its enraged state
+ var/enraged = FALSE
+ /// If the demonic frost miner is currently transforming to its enraged state
+ var/enraging = FALSE
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Initialize()
+ . = ..()
+ AddComponent(/datum/component/knockback, 7, FALSE, TRUE)
+ AddComponent(/datum/component/lifesteal, 50)
+
+/datum/action/innate/megafauna_attack/frost_orbs
+ name = "Fire Frost Orbs"
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
+ button_icon_state = "sniper_zoom"
+ chosen_message = "You are now sending out frost orbs to track in on a target. "
+ chosen_attack_num = 1
+
+/datum/action/innate/megafauna_attack/snowball_machine_gun
+ name = "Fire Snowball Machine Gun"
+ icon_icon = 'icons/obj/guns/energy.dmi'
+ button_icon_state = "kineticgun"
+ chosen_message = "You are now firing a snowball machine gun at a target. "
+ chosen_attack_num = 2
+
+/datum/action/innate/megafauna_attack/ice_shotgun
+ name = "Fire Ice Shotgun"
+ icon_icon = 'icons/obj/guns/projectile.dmi'
+ button_icon_state = "shotgun"
+ chosen_message = "You are now firing shotgun ice blasts. "
+ chosen_attack_num = 3
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/OpenFire()
+ check_enraged()
+ projectile_speed_multiplier = 1 - enraged * 0.25
+ SetRecoveryTime(100, 100)
+
+ if(client)
+ switch(chosen_attack)
+ if(1)
+ frost_orbs()
+ if(2)
+ snowball_machine_gun()
+ if(3)
+ ice_shotgun()
+ return
+
+ var/easy_attack = prob(80 - enraged * 40)
+ chosen_attack = rand(1, 3)
+ switch(chosen_attack)
+ if(1)
+ if(easy_attack)
+ frost_orbs(10, 8)
+ else
+ frost_orbs(5, 16)
+ if(2)
+ if(easy_attack)
+ snowball_machine_gun()
+ else
+ INVOKE_ASYNC(src, .proc/ice_shotgun, 5, list(list(-180, -140, -100, -60, -20, 20, 60, 100, 140), list(-160, -120, -80, -40, 0, 40, 80, 120, 160)))
+ snowball_machine_gun(5 * 8, 5)
+ if(3)
+ if(easy_attack)
+ ice_shotgun()
+ else
+ ice_shotgun(5, list(list(0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330), list(-30, -15, 0, 15, 30)))
+
+/obj/item/projectile/frost_orb
+ name = "frost orb"
+ icon_state = "ice_1"
+ damage = 20
+ armour_penetration = 100
+ speed = 10
+ homing_turn_speed = 30
+ damage_type = BURN
+
+/obj/item/projectile/frost_orb/on_hit(atom/target, blocked = FALSE)
+ . = ..()
+ if(isturf(target) || isobj(target))
+ target.ex_act(EXPLODE_HEAVY)
+
+/obj/item/projectile/snowball
+ name = "machine-gun snowball"
+ icon_state = "nuclear_particle"
+ damage = 5
+ armour_penetration = 100
+ speed = 4
+ damage_type = BRUTE
+
+/obj/item/projectile/ice_blast
+ name = "ice blast"
+ icon_state = "ice_2"
+ damage = 15
+ armour_penetration = 100
+ speed = 4
+ damage_type = BRUTE
+
+/obj/item/projectile/ice_blast/on_hit(atom/target, blocked = FALSE)
+ . = ..()
+ if(isturf(target) || isobj(target))
+ target.ex_act(EXPLODE_HEAVY)
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/ex_act(severity, target)
+ adjustBruteLoss(30 * severity - 120)
+ visible_message("[src] absorbs the explosion! ", "You absorb the explosion! ")
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Goto(target, delay, minimum_distance)
+ if(enraging)
+ return
+ return ..()
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/MoveToTarget(list/possible_targets)
+ if(enraging)
+ return
+ return ..()
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Move()
+ if(enraging)
+ return
+ return ..()
+
+/// Shoots out homing frost orbs that explode into ice blast projectiles after a couple seconds
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/frost_orbs(added_delay = 10, shoot_times = 8)
+ for(var/i in 1 to shoot_times)
+ var/turf/startloc = get_turf(src)
+ var/turf/endloc = get_turf(target)
+ if(!endloc)
+ break
+ var/obj/item/projectile/frost_orb/P = new(startloc)
+ P.preparePixelProjectile(endloc, startloc)
+ P.firer = src
+ if(target)
+ P.original = target
+ P.set_homing_target(target)
+ P.fire(rand(0, 360))
+ addtimer(CALLBACK(P, /obj/item/projectile/frost_orb/proc/orb_explosion, projectile_speed_multiplier), 20) // make the orbs home in after a second
+ SLEEP_CHECK_DEATH(added_delay)
+ SetRecoveryTime(40, 60)
+
+/// Called when the orb is exploding, shoots out projectiles
+/obj/item/projectile/frost_orb/proc/orb_explosion(projectile_speed_multiplier)
+ for(var/i in 0 to 5)
+ var/angle = i * 60
+ var/turf/startloc = get_turf(src)
+ var/turf/endloc = get_turf(original)
+ if(!startloc || !endloc)
+ break
+ var/obj/item/projectile/ice_blast/P = new(startloc)
+ P.speed *= projectile_speed_multiplier
+ P.preparePixelProjectile(endloc, startloc, null, angle + rand(-10, 10))
+ P.firer = firer
+ if(original)
+ P.original = original
+ P.fire()
+ qdel(src)
+
+/// Shoots out snowballs with a random spread
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/snowball_machine_gun(shots = 60, spread = 45)
+ for(var/i in 1 to shots)
+ var/turf/startloc = get_turf(src)
+ var/turf/endloc = get_turf(target)
+ if(!endloc)
+ break
+ var/obj/item/projectile/P = new /obj/item/projectile/snowball(startloc)
+ P.speed *= projectile_speed_multiplier
+ P.preparePixelProjectile(endloc, startloc, null, rand(-spread, spread))
+ P.firer = src
+ if(target)
+ P.original = target
+ P.fire()
+ SLEEP_CHECK_DEATH(1)
+ SetRecoveryTime(15, 15)
+
+/// Shoots out ice blasts in a shotgun like pattern
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/ice_shotgun(shots = 5, list/patterns = list(list(-40, -20, 0, 20, 40), list(-30, -10, 10, 30)))
+ for(var/i in 1 to shots)
+ var/list/pattern = patterns[i % length(patterns) + 1] // alternating patterns
+ for(var/spread in pattern)
+ var/turf/startloc = get_turf(src)
+ var/turf/endloc = get_turf(target)
+ if(!endloc)
+ break
+ var/obj/item/projectile/P = new /obj/item/projectile/ice_blast(startloc)
+ P.speed *= projectile_speed_multiplier
+ P.preparePixelProjectile(endloc, startloc, null, spread)
+ P.firer = src
+ if(target)
+ P.original = target
+ P.fire()
+ SLEEP_CHECK_DEATH(8)
+ SetRecoveryTime(15, 20)
+
+/// Checks if the demonic frost miner is ready to be enraged
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/check_enraged()
+ if(enraged)
+ return
+ if(health > maxHealth*0.25)
+ return
+ SetRecoveryTime(80, 80)
+ adjustHealth(-maxHealth)
+ enraged = TRUE
+ enraging = TRUE
+ animate(src, pixel_y = pixel_y + 96, time = 100, easing = ELASTIC_EASING)
+ spin(100, 10)
+ SLEEP_CHECK_DEATH(60)
+ playsound(src, 'sound/effects/explosion3.ogg', 100, TRUE)
+ icon_state = "demonic_miner_phase2"
+ animate(src, pixel_y = pixel_y - 96, time = 8, flags = ANIMATION_END_NOW)
+ spin(8, 2)
+ SLEEP_CHECK_DEATH(8)
+ for(var/mob/living/L in viewers(src))
+ shake_camera(L, 3, 2)
+ playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE)
+ setMovetype(movement_type | FLYING)
+ enraging = FALSE
+ adjustHealth(-maxHealth)
+
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/death(gibbed, list/force_grant)
+ if(health > 0)
+ return
+ var/turf/T = get_turf(src)
+ var/loot = rand(1, 3)
+ switch(loot)
+ if(1)
+ new /obj/item/resurrection_crystal(T)
+ if(2)
+ new /obj/item/clothing/shoes/winterboots/ice_boots/speedy(T)
+ if(3)
+ new /obj/item/pickaxe/drill/jackhammer/demonic(T)
+ return ..()
+
+/obj/item/resurrection_crystal
+ name = "resurrection crystal"
+ desc = "When used by anything holding it, this crystal gives them a second chance at life if they die."
+ icon = 'icons/obj/objects.dmi'
+ icon_state = "demonic_crystal"
+
+/obj/item/resurrection_crystal/attack_self(mob/living/user)
+ if(!iscarbon(user))
+ to_chat(user, "A dark presence stops you from absorbing the crystal. ")
+ return
+ forceMove(user)
+ to_chat(user, "You feel a bit safer... but a demonic presence lurks in the back of your head... ")
+ RegisterSignal(user, COMSIG_MOB_DEATH, .proc/resurrect)
+
+/// Resurrects the target when they die by cloning them into a new duplicate body and transferring their mind to the clone on a safe station turf
+/obj/item/resurrection_crystal/proc/resurrect(mob/living/carbon/user, gibbed)
+ user.visible_message("You see [user]'s soul dragged out of their body! ", "You feel your soul dragged away to a fresh body! ")
+ var/typepath = user.type
+ var/turf/T = find_safe_turf()
+ var/mob/living/carbon/clone = new typepath(T)
+ clone.real_name = user.real_name
+ user.dna.transfer_identity(clone)
+ clone.updateappearance(mutcolor_update=1)
+ user.mind.transfer_to(clone) // second life
+ to_chat(clone, "You blink and find yourself in [get_area_name(T)]. ")
+ user.gib()
+ qdel(src)
+
+/obj/item/clothing/shoes/winterboots/ice_boots/speedy
+ name = "cursed ice hiking boots"
+ desc = "A pair of winter boots contractually made by a devil, they cannot be taken off once put on."
+ slowdown = SHOES_SPEED_SLIGHT
+
+/obj/item/clothing/shoes/winterboots/ice_boots/speedy/Initialize()
+ . = ..()
+ ADD_TRAIT(src, TRAIT_NODROP, CURSED_ITEM_TRAIT)
+
+/obj/item/pickaxe/drill/jackhammer/demonic
+ name = "demonic jackhammer"
+ desc = "Cracks rocks at an inhuman speed, as well as being enhanced for combat purposes."
+ toolspeed = 0
+
+/obj/item/pickaxe/drill/jackhammer/demonic/Initialize()
+ . = ..()
+ AddComponent(/datum/component/knockback, 4, FALSE, TRUE)
+ AddComponent(/datum/component/lifesteal, 5)
+
+/obj/item/crusher_trophy/ice_block_talisman
+ name = "ice block talisman"
+ desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason."
+ icon_state = "ice_trap_talisman"
+ denied_type = /obj/item/crusher_trophy/ice_block_talisman
+
+/obj/item/crusher_trophy/ice_block_talisman/effect_desc()
+ return "mark detonation to freeze a creature in a block of ice for a period, preventing them from moving"
+
+/obj/item/crusher_trophy/ice_block_talisman/on_mark_detonation(mob/living/target, mob/living/user)
+ target.apply_status_effect(/datum/status_effect/ice_block_talisman)
+
+/datum/status_effect/ice_block_talisman
+ id = "ice_block_talisman"
+ duration = 25
+ status_type = STATUS_EFFECT_REFRESH
+ alert_type = /obj/screen/alert/status_effect/ice_block_talisman
+ /// Stored icon overlay for the hit mob, removed when effect is removed
+ var/icon/cube
+
+/obj/screen/alert/status_effect/ice_block_talisman
+ name = "Frozen Solid"
+ desc = "You're frozen inside an ice cube, and cannot move!"
+ icon_state = "frozen"
+
+/datum/status_effect/ice_block_talisman/on_apply()
+ RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/owner_moved)
+ if(!owner.stat)
+ to_chat(owner, "You become frozen in a cube! ")
+ cube = icon('icons/effects/freeze.dmi', "ice_cube")
+ var/icon/size_check = icon(owner.icon, owner.icon_state)
+ cube.Scale(size_check.Width(), size_check.Height())
+ owner.add_overlay(cube)
+ return ..()
+
+/// Blocks movement from the status effect owner
+/datum/status_effect/ice_block_talisman/proc/owner_moved()
+ return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
+
+/datum/status_effect/ice_block_talisman/on_remove()
+ . = ..()
+ if(!owner.stat)
+ to_chat(owner, "The cube melts! ")
+ owner.cut_overlay(cube)
+ UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index 4644992ad0..c59272214b 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -105,7 +105,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/dragon/OpenFire()
if(swooping)
return
- anger_modifier = CLAMP(((maxHealth - health)/50),0,20)
+ anger_modifier = clamp(((maxHealth - health)/50),0,20)
ranged_cooldown = world.time + ranged_cooldown_time
if(prob(15 + anger_modifier) && !client)
@@ -394,3 +394,26 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype)
return
+
+//fire line keeps going even if dragon is deleted
+/proc/dragon_fire_line(source, list/turfs)
+ var/list/hit_list = list()
+ for(var/turf/T in turfs)
+ if(istype(T, /turf/closed))
+ break
+ new /obj/effect/hotspot(T)
+ T.hotspot_expose(700,50,1)
+ for(var/mob/living/L in T.contents)
+ if(L in hit_list || L == source)
+ continue
+ hit_list += L
+ L.adjustFireLoss(20)
+ to_chat(L, "You're hit by [source]'s fire breath! ")
+
+ // deals damage to mechs
+ for(var/obj/mecha/M in T.contents)
+ if(M in hit_list)
+ continue
+ hit_list += M
+ M.take_damage(45, BRUTE, "melee", 1)
+ sleep(1.5)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index a9d42373a2..477c2ce3aa 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -191,7 +191,7 @@ Difficulty: Normal
/mob/living/simple_animal/hostile/megafauna/hierophant/proc/calculate_rage() //how angry we are overall
did_reset = FALSE //oh hey we're doing SOMETHING, clearly we might need to heal if we recall
- anger_modifier = CLAMP(((maxHealth - health) / 42),0,50)
+ anger_modifier = clamp(((maxHealth - health) / 42),0,50)
burst_range = initial(burst_range) + round(anger_modifier * 0.08)
beam_range = initial(beam_range) + round(anger_modifier * 0.12)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
index 8958916880..78987ebaa0 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -27,23 +27,51 @@
mob_size = MOB_SIZE_LARGE
layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise
flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1
+ /// Crusher loot dropped when fauna killed with a crusher
var/list/crusher_loot
var/medal_type
+ /// Score given to players when the fauna is killed
var/score_type = BOSS_SCORE
+ /// If the megafauna is actually killed (vs entering another phase)
var/elimination = 0
+ /// Modifies attacks when at lower health
var/anger_modifier = 0
+ /// Internal tracking GPS inside fauna
var/obj/item/gps/internal
+ /// Next time fauna can use a melee attack
var/recovery_time = 0
+ var/true_spawn = TRUE // if this is a megafauna that should grant achievements, or have a gps signal
+ var/nest_range = 10
+ var/chosen_attack = 1 // chosen attack num
+ var/list/attack_action_types = list()
+ var/small_sprite_type
+
/mob/living/simple_animal/hostile/megafauna/Initialize(mapload)
. = ..()
apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
ADD_TRAIT(src, TRAIT_NO_TELEPORT, MEGAFAUNA_TRAIT)
+ for(var/action_type in attack_action_types)
+ var/datum/action/innate/megafauna_attack/attack_action = new action_type()
+ attack_action.Grant(src)
+ if(small_sprite_type)
+ var/datum/action/small_sprite/small_action = new small_sprite_type()
+ small_action.Grant(src)
/mob/living/simple_animal/hostile/megafauna/Destroy()
QDEL_NULL(internal)
. = ..()
+/mob/living/simple_animal/hostile/megafauna/Moved()
+ if(nest && nest.parent && get_dist(nest.parent, src) > nest_range)
+ var/turf/closest = get_turf(nest.parent)
+ for(var/i = 1 to nest_range)
+ closest = get_step(closest, get_dir(closest, src))
+ forceMove(closest) // someone teleported out probably and the megafauna kept chasing them
+ target = null
+ return
+ return ..()
+
/mob/living/simple_animal/hostile/megafauna/death(gibbed)
if(health > 0)
return
@@ -134,3 +162,21 @@
SSmedals.SetScore(BOSS_SCORE, C, 1)
SSmedals.SetScore(score_type, C, 1)
return TRUE
+
+/datum/action/innate/megafauna_attack
+ name = "Megafauna Attack"
+ icon_icon = 'icons/mob/actions/actions_animal.dmi'
+ button_icon_state = ""
+ var/mob/living/simple_animal/hostile/megafauna/M
+ var/chosen_message
+ var/chosen_attack_num = 0
+
+/datum/action/innate/megafauna_attack/Grant(mob/living/L)
+ if(istype(L, /mob/living/simple_animal/hostile/megafauna))
+ M = L
+ return ..()
+ return FALSE
+
+/datum/action/innate/megafauna_attack/Activate()
+ M.chosen_attack = chosen_attack_num
+ to_chat(M, chosen_message)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
new file mode 100644
index 0000000000..5ed163ae7e
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
@@ -0,0 +1,201 @@
+/*
+Difficulty: Hard
+*/
+
+/mob/living/simple_animal/hostile/megafauna/wendigo
+ name = "wendigo"
+ desc = "A mythological man-eating legendary creature, you probably aren't going to survive this."
+ health = 2500
+ maxHealth = 2500
+ icon_state = "wendigo"
+ icon_living = "wendigo"
+ icon_dead = "wendigo_dead"
+ icon = 'icons/mob/icemoon/64x64megafauna.dmi'
+ attacktext = "claws"
+ attack_sound = 'sound/magic/demon_attack1.ogg'
+ weather_immunities = list("snow")
+ speak_emote = list("roars")
+ armour_penetration = 40
+ melee_damage_lower = 40
+ melee_damage_upper = 40
+ vision_range = 9
+ aggro_vision_range = 18 // man-eating for a reason
+ speed = 8
+ move_to_delay = 8
+ rapid_melee = 16 // every 1/8 second
+ melee_queue_distance = 20 // as far as possible really, need this because of charging and teleports
+ ranged = TRUE
+ pixel_x = -16
+ loot = list(/obj/item/wendigo_blood)
+ crusher_loot = list(/obj/item/wendigo_blood, /obj/item/crusher_trophy/demon_claws)
+ wander = FALSE
+ del_on_death = TRUE
+ blood_volume = BLOOD_VOLUME_NORMAL
+ deathmessage = "falls, shaking the ground around it"
+ deathsound = 'sound/effects/gravhit.ogg'
+ attack_action_types = list(/datum/action/innate/megafauna_attack/heavy_stomp,
+ /datum/action/innate/megafauna_attack/teleport,
+ /datum/action/innate/megafauna_attack/disorienting_scream)
+ /// Saves the turf the megafauna was created at (spawns exit portal here)
+ var/turf/starting
+ /// Range for wendigo stomping when it moves
+ var/stomp_range = 1
+ /// Stores directions the mob is moving, then calls that a move has fully ended when these directions are removed in moved
+ var/stored_move_dirs = 0
+ /// If the wendigo is allowed to move
+ var/can_move = TRUE
+
+/datum/action/innate/megafauna_attack/heavy_stomp
+ name = "Heavy Stomp"
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
+ button_icon_state = "sniper_zoom"
+ chosen_message = "You are now stomping the ground around you. "
+ chosen_attack_num = 1
+
+/datum/action/innate/megafauna_attack/teleport
+ name = "Teleport"
+ icon_icon = 'icons/effects/bubblegum.dmi'
+ button_icon_state = "smack ya one"
+ chosen_message = "You are now teleporting at the target you click on. "
+ chosen_attack_num = 2
+
+/datum/action/innate/megafauna_attack/disorienting_scream
+ name = "Disorienting Scream"
+ icon_icon = 'icons/turf/walls/wall.dmi'
+ button_icon_state = "wall"
+ chosen_message = "You are now screeching, disorienting targets around you. "
+ chosen_attack_num = 3
+
+/mob/living/simple_animal/hostile/megafauna/wendigo/Initialize()
+ . = ..()
+ starting = get_turf(src)
+
+/mob/living/simple_animal/hostile/megafauna/wendigo/OpenFire()
+ SetRecoveryTime(0, 100)
+ if(health <= maxHealth*0.5)
+ stomp_range = 2
+ speed = 6
+ move_to_delay = 6
+ else
+ stomp_range = initial(stomp_range)
+ speed = initial(speed)
+ move_to_delay = initial(move_to_delay)
+
+ if(client)
+ switch(chosen_attack)
+ if(1)
+ heavy_stomp()
+ if(2)
+ teleport()
+ if(3)
+ disorienting_scream()
+ return
+
+ chosen_attack = rand(1, 3)
+ switch(chosen_attack)
+ if(1)
+ heavy_stomp()
+ if(2)
+ teleport()
+ if(3)
+ disorienting_scream()
+
+/mob/living/simple_animal/hostile/megafauna/wendigo/Move(atom/newloc, direct)
+ if(!can_move)
+ return
+ stored_move_dirs |= direct
+ return ..()
+
+/mob/living/simple_animal/hostile/megafauna/wendigo/Moved(atom/oldloc, direct)
+ . = ..()
+ stored_move_dirs &= ~direct
+ if(!stored_move_dirs)
+ INVOKE_ASYNC(src, .proc/ground_slam, stomp_range, 1)
+
+/// Slams the ground around the wendigo throwing back enemies caught nearby
+/mob/living/simple_animal/hostile/megafauna/wendigo/proc/ground_slam(range, delay)
+ var/turf/orgin = get_turf(src)
+ var/list/all_turfs = RANGE_TURFS(range, orgin)
+ for(var/i = 0 to range)
+ for(var/turf/T in all_turfs)
+ if(get_dist(orgin, T) > i)
+ continue
+ playsound(T,'sound/effects/bamf.ogg', 600, TRUE, 10)
+ new /obj/effect/temp_visual/small_smoke/halfsecond(T)
+ for(var/mob/living/L in T)
+ if(L == src || L.throwing)
+ continue
+ to_chat(L, "[src]'s ground slam shockwave sends you flying! ")
+ var/turf/thrownat = get_ranged_target_turf_direct(src, L, 8, rand(-10, 10))
+ L.throw_at(thrownat, 8, 2, src, TRUE) //, force = MOVE_FORCE_OVERPOWERING, gentle = TRUE)
+ L.apply_damage(20, BRUTE)
+ shake_camera(L, 2, 1)
+ all_turfs -= T
+ sleep(delay)
+
+/// Larger but slower ground stomp
+/mob/living/simple_animal/hostile/megafauna/wendigo/proc/heavy_stomp()
+ can_move = FALSE
+ ground_slam(5, 2)
+ SetRecoveryTime(0, 0)
+ can_move = TRUE
+
+/// Teleports to a location 4 turfs away from the enemy in view
+/mob/living/simple_animal/hostile/megafauna/wendigo/proc/teleport()
+ var/list/possible_ends = list()
+ for(var/turf/T in view(4, target.loc) - view(3, target.loc))
+ if(isclosedturf(T))
+ continue
+ possible_ends |= T
+ var/turf/end = pick(possible_ends)
+ do_teleport(src, end, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE)
+ SetRecoveryTime(20, 0)
+
+/// Shakes all nearby enemies screens and animates the wendigo shaking up and down
+/mob/living/simple_animal/hostile/megafauna/wendigo/proc/disorienting_scream()
+ can_move = FALSE
+ playsound(src, 'sound/magic/demon_dies.ogg', 600, FALSE, 10)
+ animate(src, pixel_z = rand(5, 15), time = 1, loop = 6)
+ animate(pixel_z = 0, time = 1)
+ for(var/mob/living/L in get_hearers_in_view(7, src) - src)
+ shake_camera(L, 30, 1)
+ to_chat(L, "The wendigo screams loudly! ")
+ SetRecoveryTime(30, 0)
+ SLEEP_CHECK_DEATH(12)
+ can_move = TRUE
+ return
+
+/mob/living/simple_animal/hostile/megafauna/wendigo/death(gibbed, list/force_grant)
+ if(health > 0)
+ return
+ var/obj/effect/portal/permanent/one_way/exit = new /obj/effect/portal/permanent/one_way(starting)
+ exit.id = "wendigo arena exit"
+ exit.add_atom_colour(COLOR_RED_LIGHT, ADMIN_COLOUR_PRIORITY)
+ exit.set_light(20, 1, LIGHT_COLOR_RED)
+ return ..()
+
+/obj/item/wendigo_blood
+ name = "bottle of wendigo blood"
+ desc = "You're not actually going to drink this, are you?"
+ icon = 'icons/obj/wizard.dmi'
+ icon_state = "vial"
+
+/obj/item/wendigo_blood/attack_self(mob/living/user)
+ if(!ishuman(user))
+ return
+ var/mob/living/carbon/human/H = user
+ if(!H.mind)
+ return
+ to_chat(H, "Power courses through you! You can now shift your form at will. ")
+ var/obj/effect/proc_holder/spell/targeted/shapeshift/polar_bear/P = new
+ H.mind.AddSpell(P)
+ playsound(H.loc,'sound/items/drink.ogg', rand(10,50), TRUE)
+ qdel(src)
+
+/obj/effect/proc_holder/spell/targeted/shapeshift/polar_bear
+ name = "Polar Bear Form"
+ desc = "Take on the shape of a polar bear."
+ invocation = "RAAAAAAAAWR!"
+ convert_damage = FALSE
+
+ shapeshift_type = /mob/living/simple_animal/hostile/asteroid/polarbear
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
index 89d9919981..a7ce559d35 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
@@ -200,7 +200,7 @@
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H)
visible_message("[name] burrows into the flesh of [H]! ")
var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L
- if(H.dna.check_mutation(DWARFISM)) //dwarf legions aren't just fluff!
+ if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff!
L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc)
else
L = new(H.loc)
@@ -424,3 +424,29 @@
l_pocket = /obj/item/reagent_containers/food/drinks/soda_cans/buzz_fuzz
mask = /obj/item/clothing/mask/rat/bee
. = ..()
+
+// Snow Legion
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow
+ name = "snow legion"
+ desc = "You can still see what was once a human under the shifting snowy mass, clearly decorated by a clown."
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ icon_state = "snowlegion"
+ icon_living = "snowlegion"
+ icon_aggro = "snowlegion_alive"
+ icon_dead = "snowlegion"
+ crusher_loot = /obj/item/crusher_trophy/legion_skull
+ loot = list(/obj/item/organ/regenerative_core/legion)
+ brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow
+
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril
+ fromtendril = TRUE
+
+// Snow Legion skull
+/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow
+ name = "snow legion"
+ desc = "One of many."
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ icon_state = "snowlegion_head"
+ icon_living = "snowlegion_head"
+ icon_aggro = "snowlegion_head"
+ icon_dead = "snowlegion_head"
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm
new file mode 100644
index 0000000000..7b9abd2b13
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm
@@ -0,0 +1,76 @@
+/mob/living/simple_animal/hostile/asteroid/ice_demon
+ name = "demonic watcher"
+ desc = "A creature formed entirely out of ice, bluespace energy emanates from inside of it."
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ icon_state = "ice_demon"
+ icon_living = "ice_demon"
+ icon_dead = "ice_demon_dead"
+ icon_gib = "syndicate_gib"
+ mob_biotypes = MOB_ORGANIC|MOB_BEAST
+ mouse_opacity = MOUSE_OPACITY_ICON
+ speak_emote = list("telepathically cries")
+ speed = 1
+ move_to_delay = 2
+ projectiletype = /obj/item/projectile/temp/basilisk/ice
+ projectilesound = 'sound/weapons/pierce.ogg'
+ ranged = TRUE
+ ranged_message = "manifests ice"
+ ranged_cooldown_time = 30
+ minimum_distance = 3
+ retreat_distance = 3
+ maxHealth = 150
+ health = 150
+ obj_damage = 40
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+ attacktext = "slices"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+ vision_range = 7
+ aggro_vision_range = 7
+ move_force = MOVE_FORCE_VERY_STRONG
+ move_resist = MOVE_FORCE_VERY_STRONG
+ pull_force = MOVE_FORCE_VERY_STRONG
+ del_on_death = TRUE
+ loot = list(/obj/item/stack/ore/bluespace_crystal = 3)
+ crusher_loot = /obj/item/crusher_trophy/watcher_wing/ice_wing
+ deathmessage = "fades as the energies that tied it to this world dissipate."
+ deathsound = 'sound/magic/demon_dies.ogg'
+ stat_attack = UNCONSCIOUS
+ movement_type = FLYING
+ robust_searching = TRUE
+ /// Distance the demon will teleport from the target
+ var/teleport_distance = 3
+
+/obj/item/projectile/temp/basilisk/ice
+ name = "ice blast"
+ damage = 5
+ nodamage = FALSE
+ temperature = -75
+
+/mob/living/simple_animal/hostile/asteroid/ice_demon/OpenFire()
+ if(teleport_distance <= 0)
+ return ..()
+ var/list/possible_ends = list()
+ for(var/turf/T in view(teleport_distance, target.loc) - view(teleport_distance - 1, target.loc))
+ if(isclosedturf(T))
+ continue
+ possible_ends |= T
+ var/turf/end = pick(possible_ends)
+ do_teleport(src, end, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE)
+ SLEEP_CHECK_DEATH(8)
+ return ..()
+
+/mob/living/simple_animal/hostile/asteroid/ice_demon/Life()
+ . = ..()
+ if(!. || target)
+ return
+ adjustHealth(-maxHealth*0.025)
+
+/mob/living/simple_animal/hostile/asteroid/ice_demon/death(gibbed)
+ move_force = MOVE_FORCE_DEFAULT
+ move_resist = MOVE_RESIST_DEFAULT
+ pull_force = PULL_FORCE_DEFAULT
+ var/turf/T = get_turf(src)
+ if(T && prob(5))
+ new /obj/item/assembly/signaler/anomaly/bluespace(T)
+ return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm
new file mode 100644
index 0000000000..c8d5cf4b73
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm
@@ -0,0 +1,54 @@
+/mob/living/simple_animal/hostile/asteroid/ice_whelp
+ name = "ice whelp"
+ desc = "The offspring of an ice drake, weak in comparison but still terrifying."
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ icon_state = "ice_whelp"
+ icon_living = "ice_whelp"
+ icon_dead = "ice_whelp_dead"
+ mob_biotypes = MOB_ORGANIC|MOB_BEAST
+ mouse_opacity = MOUSE_OPACITY_ICON
+ friendly = "stares down"
+ speak_emote = list("roars")
+ speed = 30
+ move_to_delay = 30
+ ranged = TRUE
+ ranged_cooldown_time = 40
+ maxHealth = 350
+ health = 350
+ obj_damage = 40
+ armour_penetration = 20
+ melee_damage_lower = 20
+ melee_damage_upper = 20
+ attacktext = "chomps"
+ attack_sound = 'sound/magic/demon_attack1.ogg'
+ vision_range = 9
+ aggro_vision_range = 9
+ move_force = MOVE_FORCE_VERY_STRONG
+ move_resist = MOVE_FORCE_VERY_STRONG
+ pull_force = MOVE_FORCE_VERY_STRONG
+ butcher_results = list(/obj/item/stack/ore/diamond = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 10, /obj/item/stack/sheet/animalhide/ashdrake = 1)
+ loot = list()
+ crusher_loot = /obj/item/crusher_trophy/tail_spike
+ deathmessage = "collapses on it's side."
+ deathsound = 'sound/magic/demon_dies.ogg'
+ stat_attack = UNCONSCIOUS
+ robust_searching = TRUE
+ /// How far the whelps fire can go
+ var/fire_range = 4
+
+/mob/living/simple_animal/hostile/asteroid/ice_whelp/OpenFire()
+ var/turf/T = get_ranged_target_turf_direct(src, target, fire_range)
+ var/list/burn_turfs = getline(src, T) - get_turf(src)
+ dragon_fire_line(src, burn_turfs)
+
+/mob/living/simple_animal/hostile/asteroid/ice_whelp/Life()
+ . = ..()
+ if(!. || target)
+ return
+ adjustHealth(-maxHealth*0.025)
+
+/mob/living/simple_animal/hostile/asteroid/ice_whelp/death(gibbed)
+ move_force = MOVE_FORCE_DEFAULT
+ move_resist = MOVE_RESIST_DEFAULT
+ pull_force = PULL_FORCE_DEFAULT
+ return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
index 0cd788325a..71c6d61d5d 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
@@ -28,7 +28,7 @@
/mob/living/simple_animal/hostile/asteroid/Aggro()
..()
- if(vision_range != aggro_vision_range)
+ if(vision_range == aggro_vision_range && icon_aggro)
icon_state = icon_aggro
/mob/living/simple_animal/hostile/asteroid/LoseAggro()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm
new file mode 100644
index 0000000000..0576d0ecfe
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm
@@ -0,0 +1,56 @@
+/mob/living/simple_animal/hostile/asteroid/polarbear
+ name = "polar bear"
+ desc = "An aggressive animal that defends it's territory with incredible power. These beasts don't run from their enemies."
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ icon_state = "polarbear"
+ icon_living = "polarbear"
+ icon_dead = "polarbear_dead"
+ mob_biotypes = MOB_ORGANIC|MOB_BEAST
+ mouse_opacity = MOUSE_OPACITY_ICON
+ friendly = "growls at"
+ speak_emote = list("growls")
+ speed = 12
+ move_to_delay = 12
+ maxHealth = 300
+ health = 300
+ obj_damage = 40
+ melee_damage_lower = 25
+ melee_damage_upper = 25
+ attacktext = "claws"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+ vision_range = 2 // don't aggro unless you basically antagonize it, though they will kill you worse than a goliath will
+ aggro_vision_range = 9
+ move_force = MOVE_FORCE_VERY_STRONG
+ move_resist = MOVE_FORCE_VERY_STRONG
+ pull_force = MOVE_FORCE_VERY_STRONG
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2)
+ guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1)
+ loot = list()
+ crusher_loot = /obj/item/crusher_trophy/goliath_tentacle
+ stat_attack = UNCONSCIOUS
+ robust_searching = TRUE
+ /// Message for when the polar bear starts to attack faster
+ var/aggressive_message_said = FALSE
+
+/mob/living/simple_animal/hostile/asteroid/polarbear/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
+ . = ..()
+ if(health > maxHealth*0.5)
+ rapid_melee = initial(rapid_melee)
+ return
+ if(!aggressive_message_said && target)
+ visible_message("The [name] gets an enraged look at [target]! ")
+ aggressive_message_said = TRUE
+ rapid_melee = 2
+
+/mob/living/simple_animal/hostile/asteroid/polarbear/Life()
+ . = ..()
+ if(!. || target)
+ return
+ adjustHealth(-maxHealth*0.025)
+ aggressive_message_said = FALSE
+
+/mob/living/simple_animal/hostile/asteroid/polarbear/death(gibbed)
+ move_force = MOVE_FORCE_DEFAULT
+ move_resist = MOVE_RESIST_DEFAULT
+ pull_force = PULL_FORCE_DEFAULT
+ return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm
new file mode 100644
index 0000000000..9f17421691
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm
@@ -0,0 +1,57 @@
+/mob/living/simple_animal/hostile/asteroid/wolf
+ name = "white wolf"
+ desc = "A beast that survives by feasting on weaker opponents, they're much stronger with numbers."
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ icon_state = "whitewolf"
+ icon_living = "whitewolf"
+ icon_dead = "whitewolf_dead"
+ mob_biotypes = MOB_ORGANIC|MOB_BEAST
+ mouse_opacity = MOUSE_OPACITY_ICON
+ friendly = "howls at"
+ speak_emote = list("howls")
+ speed = 5
+ move_to_delay = 5
+ maxHealth = 130
+ health = 130
+ obj_damage = 15
+ melee_damage_lower = 7.5
+ melee_damage_upper = 7.5
+ rapid_melee = 2 // every second attack
+ dodging = TRUE
+ dodge_prob = 50
+ attacktext = "bites"
+ attack_sound = 'sound/weapons/bite.ogg'
+ vision_range = 7
+ aggro_vision_range = 7
+ move_force = MOVE_FORCE_WEAK
+ move_resist = MOVE_FORCE_WEAK
+ pull_force = MOVE_FORCE_WEAK
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2)
+ loot = list()
+ crusher_loot = /obj/item/crusher_trophy/watcher_wing
+ stat_attack = UNCONSCIOUS
+ robust_searching = TRUE
+ /// Message for when the wolf decides to start running away
+ var/retreat_message_said = FALSE
+
+/mob/living/simple_animal/hostile/asteroid/wolf/Move(atom/newloc)
+ if(newloc && newloc.z == z && (islava(newloc) || ischasm(newloc)))
+ return FALSE
+ return ..()
+
+/mob/living/simple_animal/hostile/asteroid/wolf/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
+ . = ..()
+ if(stat == DEAD || health > maxHealth*0.1)
+ retreat_distance = initial(retreat_distance)
+ return
+ if(!retreat_message_said && target)
+ visible_message("The [name] tries to flee from [target]! ")
+ retreat_message_said = TRUE
+ retreat_distance = 30
+
+/mob/living/simple_animal/hostile/asteroid/wolf/Life()
+ . = ..()
+ if(!. || target)
+ return
+ adjustHealth(-maxHealth*0.025)
+ retreat_message_said = FALSE
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
index ca14d4ae67..c94046329b 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
@@ -1,14 +1,13 @@
/mob/living/simple_animal/hostile/retaliate/clown
name = "Clown"
desc = "A denizen of clown planet."
- icon = 'icons/mob/simple_human.dmi'
+ icon = 'icons/mob/clown_mobs.dmi'
icon_state = "clown"
icon_living = "clown"
icon_dead = "clown_dead"
icon_gib = "clown_gib"
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
turns_per_move = 5
- response_help = "pokes"
response_disarm = "gently pushes aside"
response_harm = "robusts"
speak = list("HONK", "Honk!", "Welcome to clown planet!")
@@ -21,7 +20,6 @@
harm_intent_damage = 8
melee_damage_lower = 10
melee_damage_upper = 10
- attacktext = "attacks"
attack_sound = 'sound/items/bikehorn.ogg'
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
@@ -32,15 +30,245 @@
minbodytemp = 270
maxbodytemp = 370
unsuitable_atmos_damage = 10
-
- do_footstep = TRUE
+ var/banana_time = 0 // If there's no time set it won't spawn.
+ var/banana_type = /obj/item/grown/bananapeel
+ var/attack_reagent
/mob/living/simple_animal/hostile/retaliate/clown/handle_temperature_damage()
if(bodytemperature < minbodytemp)
adjustBruteLoss(10)
+ throw_alert("temp", /obj/screen/alert/cold, 2)
else if(bodytemperature > maxbodytemp)
adjustBruteLoss(15)
+ throw_alert("temp", /obj/screen/alert/hot, 3)
+ else
+ clear_alert("temp")
/mob/living/simple_animal/hostile/retaliate/clown/attack_hand(mob/living/carbon/human/M)
..()
- playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1)
+ playsound(src.loc, 'sound/items/bikehorn.ogg', 50, TRUE)
+
+/mob/living/simple_animal/hostile/retaliate/clown/Life()
+ . = ..()
+ if(banana_time && banana_time < world.time)
+ var/turf/T = get_turf(src)
+ var/list/adjacent = T.GetAtmosAdjacentTurfs(1)
+ new banana_type(pick(adjacent))
+ banana_time = world.time + rand(30,60)
+
+/mob/living/simple_animal/hostile/retaliate/clown/AttackingTarget()
+ . = ..()
+ if(attack_reagent && . && isliving(target))
+ var/mob/living/L = target
+ if(L.reagents)
+ L.reagents.add_reagent(attack_reagent, rand(1,5))
+
+/mob/living/simple_animal/hostile/retaliate/clown/lube
+ name = "Living Lube"
+ desc = "A puddle of lube brought to life by the honkmother."
+ icon_state = "lube"
+ icon_living = "lube"
+ turns_per_move = 1
+ response_help = "dips a finger into"
+ response_disarm = "gently scoops and pours aside"
+ emote_see = list("bubbles", "oozes")
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/particle_effect/foam)
+
+/mob/living/simple_animal/hostile/retaliate/clown/lube/Initialize()
+ . = ..()
+ AddElement(/datum/element/snailcrawl)
+
+/mob/living/simple_animal/hostile/retaliate/clown/banana
+ name = "Clownana"
+ desc = "A fusion of clown and banana DNA birthed from a botany experiment gone wrong."
+ icon_state = "banana tree"
+ icon_living = "banana tree"
+ response_disarm = "peels"
+ response_harm = "peels"
+ turns_per_move = 1
+ speak = list("HONK", "Honk!", "YA-HONK!!!")
+ emote_see = list("honks", "bites into the banana", "plucks a banana off its head", "photosynthesizes")
+ maxHealth = 120
+ health = 120
+ speed = -10
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap, /obj/item/seeds/banana)
+ banana_time = 20
+
+/mob/living/simple_animal/hostile/retaliate/clown/honkling
+ name = "Honkling"
+ desc = "A divine being sent by the Honkmother to spread joy. It's not dangerous, but it's a bit of a nuisance."
+ icon_state = "honkling"
+ icon_living = "honkling"
+ turns_per_move = 1
+ speed = -10
+ harm_intent_damage = 1
+ melee_damage_lower = 1
+ melee_damage_upper = 1
+ attacktext = "cheers up"
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap, /obj/item/seeds/banana/bluespace)
+ banana_type = /obj/item/grown/bananapeel
+ attack_reagent = /datum/reagent/consumable/laughter
+
+/mob/living/simple_animal/hostile/retaliate/clown/fleshclown
+ name = "Fleshclown"
+ desc = "A being forged out of the pure essence of pranking, cursed into existence by a cruel maker."
+ icon_state = "fleshclown"
+ icon_living = "fleshclown"
+ response_help = "reluctantly pokes"
+ response_disarm = "sinks his hands into the spongy flesh of"
+ response_harm = "cleanses the world of"
+ speak = list("HONK", "Honk!", "I didn't ask for this", "I feel constant and horrible pain", "YA-HONK!!!", "this body is a merciless and unforgiving prison", "I was born out of mirthful pranking but I live in suffering")
+ emote_see = list("honks", "sweats", "jiggles", "contemplates its existence")
+ speak_chance = 5
+ dextrous = TRUE
+ ventcrawler = VENTCRAWLER_ALWAYS
+ maxHealth = 140
+ health = 140
+ speed = -5
+ melee_damage_upper = 15
+ attacktext = "limply slaps"
+ obj_damage = 5
+ loot = list(/obj/item/clothing/suit/hooded/bloated_human, /obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap)
+
+/mob/living/simple_animal/hostile/retaliate/clown/longface
+ name = "Longface"
+ desc = "Often found walking into the bar."
+ icon_state = "long face"
+ icon_living = "long face"
+ move_resist = INFINITY
+ turns_per_move = 10
+ response_help = "tries to awkwardly hug"
+ response_disarm = "pushes the unwieldy frame of"
+ response_harm = "tries to shut up"
+ speak = list("YA-HONK!!!")
+ emote_see = list("honks", "squeaks")
+ speak_chance = 60
+ maxHealth = 150
+ health = 150
+ pixel_x = -16
+ speed = 10
+ harm_intent_damage = 5
+ melee_damage_lower = 5
+ attacktext = "YA-HONKs"
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap)
+
+/mob/living/simple_animal/hostile/retaliate/clown/clownhulk
+ name = "Honk Hulk"
+ desc = "A cruel and fearsome clown. Don't make him angry."
+ icon_state = "honkhulk"
+ icon_living = "honkhulk"
+ move_resist = INFINITY
+ response_help = "tries desperately to appease"
+ response_disarm = "foolishly pushes"
+ response_harm = "angers"
+ speak = list("HONK", "Honk!", "HAUAUANK!!!", "GUUURRRRAAAHHH!!!")
+ emote_see = list("honks", "sweats", "grunts")
+ speak_chance = 5
+ maxHealth = 400
+ health = 400
+ pixel_x = -16
+ speed = 2
+ harm_intent_damage = 15
+ melee_damage_lower = 15
+ melee_damage_upper = 20
+ attacktext = "pummels"
+ obj_damage = 30
+ environment_smash = ENVIRONMENT_SMASH_WALLS
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap)
+
+/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/chlown
+ name = "Chlown"
+ desc = "A real lunkhead who somehow gets all the girls."
+ icon_state = "chlown"
+ icon_living = "chlown"
+ response_help = "submits to"
+ response_disarm = "tries to assert dominance over"
+ response_harm = "makes a weak beta attack at"
+ speak = list("HONK", "Honk!", "Bruh", "cheeaaaahhh?")
+ emote_see = list("asserts his dominance", "emasculates everyone implicitly")
+ maxHealth = 500
+ health = 500
+ speed = -2
+ armour_penetration = 20
+ attacktext = "steals the girlfriend of"
+ attack_sound = 'sound/items/airhorn2.ogg'
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/effect/particle_effect/foam, /obj/item/soap)
+
+/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus
+ name = "Honkmunculus"
+ desc = "A slender wiry figure of alchemical origin."
+ icon_state = "honkmunculus"
+ icon_living = "honkmunculus"
+ response_help = "skeptically pokes"
+ response_disarm = "pushes the unwieldy frame of"
+ speak = list("honk")
+ emote_see = list("squirms", "writhes")
+ speak_chance = 1
+ maxHealth = 200
+ health = 200
+ speed = -5
+ harm_intent_damage = 5
+ melee_damage_lower = 5
+ melee_damage_upper = 10
+ attacktext = "ferociously mauls"
+ environment_smash = ENVIRONMENT_SMASH_NONE
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap)
+ attack_reagent = /datum/reagent/peaceborg_confuse
+
+/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/destroyer
+ name = "The Destroyer"
+ desc = "An ancient being born of arcane honking."
+ icon_state = "destroyer"
+ icon_living = "destroyer"
+ response_disarm = "bounces off of"
+ response_harm = "bounces off of"
+ speak = list("HONK!!!", "The Honkmother is merciful, so I must act out her wrath.", "parce mihi ad beatus honkmother placet mihi ut peccata committere,", "DIE!!!")
+ maxHealth = 400
+ health = 400
+ speed = 5
+ harm_intent_damage = 30
+ melee_damage_lower = 20
+ melee_damage_upper = 40
+ armour_penetration = 30
+ stat_attack = UNCONSCIOUS
+ attacktext = "acts out divine vengeance on"
+ obj_damage = 50
+ environment_smash = ENVIRONMENT_SMASH_RWALLS
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/effect/particle_effect/foam, /obj/item/soap)
+
+/mob/living/simple_animal/hostile/retaliate/clown/mutant
+ name = "Unknown"
+ desc = "Kill it for its own sake."
+ icon_state = "mutant"
+ icon_living = "mutant"
+ move_resist = INFINITY
+ turns_per_move = 10
+ response_help = "reluctantly sinks a finger into"
+ response_disarm = "squishes into"
+ response_harm = "squishes into"
+ speak = list("aaaaaahhhhuuhhhuhhhaaaaa", "AAAaaauuuaaAAAaauuhhh", "huuuuuh... hhhhuuuooooonnnnkk", "HuaUAAAnKKKK")
+ emote_see = list("squirms", "writhes", "pulsates", "froths", "oozes")
+ speak_chance = 10
+ maxHealth = 130
+ health = 130
+ pixel_x = -16
+ speed = -5
+ harm_intent_damage = 10
+ melee_damage_lower = 10
+ melee_damage_upper = 20
+ attacktext = "awkwardly flails at"
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human)
+
+/mob/living/simple_animal/hostile/retaliate/clown/mutant/blob
+ name = "Something that was once a clown"
+ desc = "A grotesque bulging figure far mutated from it's original state."
+ icon_state = "blob"
+ icon_living = "blob"
+ speak = list("hey, buddy", "HONK!!!", "H-h-h-H-HOOOOONK!!!!", "HONKHONKHONK!!!", "HEY, BUCKO, GET BACK HERE!!!", "HOOOOOOOONK!!!")
+ emote_see = list("jiggles", "wobbles")
+ health = 130
+ mob_size = MOB_SIZE_LARGE
+ speed = 20
+ attacktext = "bounces off of"
+ loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human)
+ attack_reagent = /datum/reagent/toxin/mindbreaker
diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm
index 13a4d1793e..5111b0b180 100644
--- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm
+++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm
@@ -1,5 +1,13 @@
-
-
+/**
+ * Kudzu Flower Bud
+ *
+ * A flower created by flowering kudzu which spawns a venus human trap after a certain amount of time has passed.
+ *
+ * A flower created by kudzu with the flowering mutation. Spawns a venus human trap after 2 minutes under normal circumstances.
+ * Also spawns 4 vines going out in diagonal directions from the bud. Any living creature not aligned with plants is damaged by these vines.
+ * Once it grows a venus human trap, the bud itself will destroy itself.
+ *
+ */
/obj/structure/alien/resin/flower_bud_enemy //inheriting basic attack/damage stuff from alien structures
name = "flower bud"
desc = "A large pulsating plant..."
@@ -9,9 +17,9 @@
opacity = 0
canSmoothWith = list()
smooth = SMOOTH_FALSE
+ /// The amount of time it takes to create a venus human trap, in deciseconds
var/growth_time = 1200
-
/obj/structure/alien/resin/flower_bud_enemy/Initialize()
. = ..()
var/list/anchors = list()
@@ -25,36 +33,49 @@
B.sleep_time = 10 //these shouldn't move, so let's slow down updates to 1 second (any slower and the deletion of the vines would be too slow)
addtimer(CALLBACK(src, .proc/bear_fruit), growth_time)
+/**
+ * Spawns a venus human trap, then qdels itself.
+ *
+ * Displays a message, spawns a human venus trap, then qdels itself.
+ */
/obj/structure/alien/resin/flower_bud_enemy/proc/bear_fruit()
- visible_message("the plant has borne fruit! ")
+ visible_message("The plant has borne fruit! ")
new /mob/living/simple_animal/hostile/venus_human_trap(get_turf(src))
qdel(src)
-
/obj/effect/ebeam/vine
name = "thick vine"
mouse_opacity = MOUSE_OPACITY_ICON
desc = "A thick vine, painful to the touch."
-
/obj/effect/ebeam/vine/Crossed(atom/movable/AM)
+ . = ..()
if(isliving(AM))
var/mob/living/L = AM
- if(!("vines" in L.faction))
+ if(!isvineimmune(L))
L.adjustBruteLoss(5)
to_chat(L, "You cut yourself on the thorny vines. ")
-
-
+/**
+ * Venus Human Trap
+ *
+ * The result of a kudzu flower bud, these enemies use vines to drag prey close to them for attack.
+ *
+ * A carnivorious plant which uses vines to catch and ensnare prey. Spawns from kudzu flower buds.
+ * Each one has a maximum of four vines, which can be attached to a variety of things. Carbons are stunned when a vine is attached to them, and movable entities are pulled closer over time.
+ * Attempting to attach a vine to something with a vine already attached to it will pull all movable targets closer on command.
+ * Once the prey is in melee range, melee attacks from the venus human trap heals itself for 10% of its max health, assuming the target is alive.
+ * Akin to certain spiders, venus human traps can also be possessed and controlled by ghosts.
+ *
+ */
/mob/living/simple_animal/hostile/venus_human_trap
name = "venus human trap"
desc = "Now you know how the fly feels."
icon_state = "venus_human_trap"
- threat = 1
layer = SPACEVINE_MOB_LAYER
health = 50
maxHealth = 50
- ranged = 1
+ ranged = TRUE
harm_intent_damage = 5
obj_damage = 60
melee_damage_lower = 25
@@ -63,65 +84,110 @@
attack_sound = 'sound/weapons/bladeslice.ogg'
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 0
+ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
faction = list("hostile","vines","plants")
- var/list/grasping = list()
- var/max_grasps = 4
- var/grasp_chance = 20
- var/grasp_pull_chance = 85
- var/grasp_range = 4
- del_on_death = 1
+ initial_language_holder = /datum/language_holder/venus
+ del_on_death = TRUE
+ /// A list of all the plant's vines
+ var/list/vines = list()
+ /// The maximum amount of vines a plant can have at one time
+ var/max_vines = 4
+ /// How far away a plant can attach a vine to something
+ var/vine_grab_distance = 5
+ /// Whether or not this plant is ghost possessable
+ var/playable_plant = FALSE //Normal plants can **not** have players.
-/mob/living/simple_animal/hostile/venus_human_trap/Destroy()
- for(var/L in grasping)
- var/datum/beam/B = grasping[L]
- if(B)
- qdel(B)
- grasping = null
- return ..()
+/mob/living/simple_animal/hostile/venus_human_trap/ghost_playable
+ playable_plant = TRUE //For admins that want to buss some harmless plants
-/mob/living/simple_animal/hostile/venus_human_trap/handle_automated_action()
- if(..())
- for(var/mob/living/L in grasping)
- if(L.stat == DEAD)
- var/datum/beam/B = grasping[L]
- if(B)
- B.End()
- grasping -= L
-
- //Can attack+pull multiple times per cycle
- if(L.Adjacent(src))
- L.attack_animal(src)
- else
- if(prob(grasp_pull_chance))
- setDir(get_dir(src,L) )//staaaare
- step(L,get_dir(L,src)) //reel them in
- L.DefaultCombatKnockdown(60) //you can't get away now~
-
- if(grasping.len < max_grasps)
- grasping:
- for(var/mob/living/L in view(grasp_range, src))
- if(L == src || faction_check_mob(L) || (L in grasping) || L == target)
- continue
- for(var/t in getline(src,L))
- for(var/a in t)
- var/atom/A = a
- if(A.density && A != L)
- continue grasping
- if(prob(grasp_chance))
- to_chat(L, "\The [src] has you entangled! ")
- grasping[L] = Beam(L, "vine", time=INFINITY, maxdistance=5, beam_type=/obj/effect/ebeam/vine)
-
- break //only take 1 new victim per cycle
+/mob/living/simple_animal/hostile/venus_human_trap/Life()
+ . = ..()
+ pull_vines()
+/mob/living/simple_animal/hostile/venus_human_trap/AttackingTarget()
+ . = ..()
+ if(isliving(target))
+ var/mob/living/L = target
+ if(L.stat != DEAD)
+ adjustHealth(-maxHealth * 0.1)
/mob/living/simple_animal/hostile/venus_human_trap/OpenFire(atom/the_target)
- var/dist = get_dist(src,the_target)
- Beam(the_target, "vine", time=dist*2, maxdistance=dist+2, beam_type=/obj/effect/ebeam/vine)
- the_target.attack_animal(src)
+ for(var/datum/beam/B in vines)
+ if(B.target == the_target)
+ pull_vines()
+ ranged_cooldown = world.time + (ranged_cooldown_time * 0.5)
+ return
+ if(get_dist(src,the_target) > vine_grab_distance || vines.len == max_vines)
+ return
+ for(var/turf/T in getline(src,target))
+ if (T.density)
+ return
+ for(var/obj/O in T)
+ if(O.density)
+ return
+ var/datum/beam/newVine = Beam(the_target, "vine", time=INFINITY, maxdistance = vine_grab_distance, beam_type=/obj/effect/ebeam/vine)
+ RegisterSignal(newVine, COMSIG_PARENT_QDELETING, .proc/remove_vine, newVine)
+ vines += newVine
+ if(isliving(the_target))
+ var/mob/living/L = the_target
+ L.Paralyze(20)
+ ranged_cooldown = world.time + ranged_cooldown_time
-/mob/living/simple_animal/hostile/venus_human_trap/CanAttack(atom/the_target)
+/mob/living/simple_animal/hostile/venus_human_trap/Login()
+ . = ..()
+ to_chat(src, "You a venus human trap! Protect the kudzu at all costs, and feast on those who oppose you! ")
+
+/mob/living/simple_animal/hostile/venus_human_trap/attack_ghost(mob/user)
. = ..()
if(.)
- if(the_target in grasping)
- return 0
+ return
+ humanize_plant(user)
+
+/**
+ * Sets a ghost to control the plant if the plant is eligible
+ *
+ * Asks the interacting ghost if they would like to control the plant.
+ * If they answer yes, and another ghost hasn't taken control, sets the ghost to control the plant.
+ * Arguments:
+ * * mob/user - The ghost to possibly control the plant
+ */
+
+/mob/living/simple_animal/hostile/venus_human_trap/proc/humanize_plant(mob/user)
+ if(key || !playable_plant || stat)
+ return
+ var/plant_ask = alert("Become a venus human trap?", "Are you reverse vegan?", "Yes", "No")
+ if(plant_ask == "No" || QDELETED(src))
+ return
+ if(key)
+ to_chat(user, "Someone else already took this plant! ")
+ return
+ key = user.key
+ log_game("[key_name(src)] took control of [name].")
+
+/**
+ * Manages how the vines should affect the things they're attached to.
+ *
+ * Pulls all movable targets of the vines closer to the plant
+ * If the target is on the same tile as the plant, destroy the vine
+ * Removes any QDELETED vines from the vines list.
+ */
+/mob/living/simple_animal/hostile/venus_human_trap/proc/pull_vines()
+ for(var/datum/beam/B in vines)
+ if(istype(B.target, /atom/movable))
+ var/atom/movable/AM = B.target
+ if(!AM.anchored)
+ step(AM,get_dir(AM,src))
+ if(get_dist(src,B.target) == 0)
+ B.End()
+
+/**
+ * Removes a vine from the list.
+ *
+ * Removes the vine from our list.
+ * Called specifically when the vine is about to be destroyed, so we don't have any null references.
+ * Arguments:
+ * * datum/beam/vine - The vine to be removed from the list.
+ */
+mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force)
+ vines -= vine
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 3feed2129b..def6327461 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -128,7 +128,7 @@
/mob/living/simple_animal/updatehealth()
..()
- health = CLAMP(health, 0, maxHealth)
+ health = clamp(health, 0, maxHealth)
/mob/living/simple_animal/update_stat()
if(status_flags & GODMODE)
@@ -292,8 +292,8 @@
/mob/living/simple_animal/proc/update_simplemob_varspeed()
if(speed == 0)
- remove_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE)
- add_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE, 100, multiplicative_slowdown = speed, override = TRUE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed, multiplicative_slowdown = speed)
/mob/living/simple_animal/Stat()
..()
diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm
index 4f8e271d6f..d5da6d76fc 100644
--- a/code/modules/mob/living/simple_animal/slime/powers.dm
+++ b/code/modules/mob/living/simple_animal/slime/powers.dm
@@ -190,7 +190,7 @@
step_away(M,src)
M.Friends = Friends.Copy()
babies += M
- M.mutation_chance = CLAMP(mutation_chance+(rand(5,-5)),0,100)
+ M.mutation_chance = clamp(mutation_chance+(rand(5,-5)),0,100)
SSblackbox.record_feedback("tally", "slime_babies_born", 1, M.colour)
var/mob/living/simple_animal/slime/new_slime = pick(babies)
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index 8594d53bd1..78f7b17616 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -147,25 +147,26 @@
/mob/living/simple_animal/slime/on_reagent_change()
. = ..()
- remove_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/slime_reagentmod)
var/amount = 0
if(reagents.has_reagent(/datum/reagent/medicine/morphine)) // morphine slows slimes down
amount = 2
if(reagents.has_reagent(/datum/reagent/consumable/frostoil)) // Frostoil also makes them move VEEERRYYYYY slow
amount = 5
if(amount)
- add_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_reagentmod, multiplicative_slowdown = amount)
/mob/living/simple_animal/slime/updatehealth()
. = ..()
- remove_movespeed_modifier(MOVESPEED_ID_SLIME_HEALTHMOD, FALSE)
- var/health_deficiency = (100 - health)
+ remove_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod)
var/mod = 0
- if(health_deficiency >= 45)
- mod += (health_deficiency / 25)
- if(health <= 0)
- mod += 2
- add_movespeed_modifier(MOVESPEED_ID_SLIME_HEALTHMOD, TRUE, 100, multiplicative_slowdown = mod)
+ if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN))
+ var/health_deficiency = (maxHealth - health)
+ if(health_deficiency >= 45)
+ mod += (health_deficiency / 25)
+ if(health <= 0)
+ mod += 2
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod, multiplicative_slowdown = mod)
/mob/living/simple_animal/slime/adjust_bodytemperature()
. = ..()
@@ -173,9 +174,8 @@
if(bodytemperature >= 330.23) // 135 F or 57.08 C
mod = -1 // slimes become supercharged at high temperatures
else if(bodytemperature < 183.222)
- mod = (283.222 - bodytemperature) / 10 * 1.75
- if(mod)
- add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod)
+ mod = min(15, (283.222 - bodytemperature) / 10 * 1.75)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_tempmod, multiplicative_slowdown = mod)
/mob/living/simple_animal/slime/ObjBump(obj/O)
if(!client && powerlevel > 0)
diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm
index 1375d88948..0d41347179 100644
--- a/code/modules/mob/living/status_procs.dm
+++ b/code/modules/mob/living/status_procs.dm
@@ -622,10 +622,40 @@
tod = STATION_TIME_TIMESTAMP("hh:mm:ss", world.time)
update_stat()
+///Unignores all slowdowns that lack the IGNORE_NOSLOW flag.
/mob/living/proc/unignore_slowdown(source)
REMOVE_TRAIT(src, TRAIT_IGNORESLOWDOWN, source)
- update_movespeed(FALSE)
+ update_movespeed()
+///Ignores all slowdowns that lack the IGNORE_NOSLOW flag.
/mob/living/proc/ignore_slowdown(source)
ADD_TRAIT(src, TRAIT_IGNORESLOWDOWN, source)
- update_movespeed(FALSE)
+ update_movespeed()
+
+///Ignores specific slowdowns. Accepts a list of slowdowns.
+/mob/living/proc/add_movespeed_mod_immunities(source, slowdown_type, update = TRUE)
+ if(islist(slowdown_type))
+ for(var/listed_type in slowdown_type)
+ if(ispath(listed_type))
+ listed_type = "[listed_type]" //Path2String
+ LAZYADDASSOC(movespeed_mod_immunities, listed_type, source)
+ else
+ if(ispath(slowdown_type))
+ slowdown_type = "[slowdown_type]" //Path2String
+ LAZYADDASSOC(movespeed_mod_immunities, slowdown_type, source)
+ if(update)
+ update_movespeed()
+
+///Unignores specific slowdowns. Accepts a list of slowdowns.
+/mob/living/proc/remove_movespeed_mod_immunities(source, slowdown_type, update = TRUE)
+ if(islist(slowdown_type))
+ for(var/listed_type in slowdown_type)
+ if(ispath(listed_type))
+ listed_type = "[listed_type]" //Path2String
+ LAZYREMOVEASSOC(movespeed_mod_immunities, listed_type, source)
+ else
+ if(ispath(slowdown_type))
+ slowdown_type = "[slowdown_type]" //Path2String
+ LAZYREMOVEASSOC(movespeed_mod_immunities, slowdown_type, source)
+ if(update)
+ update_movespeed()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index fd786c8631..ce3b8bf3d2 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -284,7 +284,7 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA
/mob/proc/reset_perspective(atom/A)
if(client)
if(A)
- if(ismovableatom(A))
+ if(ismovable(A))
//Set the the thing unless it's us
if(A != src)
client.perspective = EYE_PERSPECTIVE
@@ -593,7 +593,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
stat("Failsafe Controller:", "ERROR")
if(Master)
stat(null)
- for(var/datum/controller/subsystem/SS in Master.subsystems)
+ for(var/datum/controller/subsystem/SS in Master.statworthy_subsystems)
SS.stat_entry()
GLOB.cameranet.stat_entry()
if(statpanel("Tickets"))
@@ -1033,17 +1033,22 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
/// Updates the grab state of the mob and updates movespeed
/mob/setGrabState(newstate)
. = ..()
- if(grab_state == GRAB_PASSIVE)
- remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE, update=TRUE)
- else
- add_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=grab_state*3, blacklisted_movetypes=FLOATING)
+ switch(grab_state)
+ if(GRAB_PASSIVE)
+ remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE)
+ if(GRAB_AGGRESSIVE)
+ add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/aggressive)
+ if(GRAB_NECK)
+ add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/neck)
+ if(GRAB_KILL)
+ add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/kill)
/mob/proc/update_equipment_speed_mods()
var/speedies = equipped_speed_mods()
if(!speedies)
- remove_movespeed_modifier(MOVESPEED_ID_MOB_EQUIPMENT, update=TRUE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod, update=TRUE)
else
- add_movespeed_modifier(MOVESPEED_ID_MOB_EQUIPMENT, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=speedies, blacklisted_movetypes=FLOATING)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod, multiplicative_slowdown = speedies)
/// Gets the combined speed modification of all worn items
/// Except base mob type doesnt really wear items
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index bf9dad1bc7..825f015ef4 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -10,6 +10,8 @@
throwforce = 10
blocks_emissive = EMISSIVE_BLOCK_GENERIC
+ vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace.
+
var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
var/datum/mind/mind
var/list/datum/action/actions = list()
@@ -42,8 +44,11 @@
var/lying_prev = 0
var/is_shifted = FALSE
- //MOVEMENT SPEED
+ /// List of movement speed modifiers applying to this mob
var/list/movespeed_modification //Lazy list, see mob_movespeed.dm
+ /// List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources)
+ var/list/movespeed_mod_immunities //Lazy list, see mob_movespeed.dm
+ /// The calculated mob speed slowdown based on the modifiers list
var/cached_multiplicative_slowdown
/////////////////
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index ffc0970bdf..6531df5e68 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -80,12 +80,12 @@
var/oldloc = mob.loc
if(L.confused)
- var/newdir = 0
- if(L.confused > 40)
+ var/newdir = NONE
+ if((L.confused > 50) && prob(min(L.confused * 0.5, 50)))
newdir = pick(GLOB.alldirs)
- else if(prob(L.confused * 1.5))
+ else if(prob(L.confused))
newdir = angle2dir(dir2angle(direction) + pick(90, -90))
- else if(prob(L.confused * 3))
+ else if(prob(L.confused * 2))
newdir = angle2dir(dir2angle(direction) + pick(45, -45))
if(newdir)
direction = newdir
@@ -100,15 +100,16 @@
if(mob.throwing)
mob.throwing.finalize(FALSE)
- var/atom/movable/P = mob.pulling
- if(P && !ismob(P) && P.density)
- mob.setDir(turn(mob.dir, 180))
+ if(L.pulling && !(L.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
+ L.setDir(turn(L.dir, 180))
SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOVE, src, direction, n, oldloc)
/// Process_Grab(): checks for grab, attempts to break if so. Return TRUE to prevent movement.
/client/proc/Process_Grab()
if(mob.pulledby)
+ if((mob.pulledby == mob.pulling) && (mob.pulledby.grab_state == GRAB_PASSIVE)) //Don't autoresist passive grabs if we're grabbing them too.
+ return
if(mob.incapacitated(ignore_restraints = 1))
move_delay = world.time + 10
return TRUE
@@ -251,9 +252,9 @@
/mob/proc/update_gravity(has_gravity, override=FALSE)
var/speed_change = max(0, has_gravity - STANDARD_GRAVITY)
if(!speed_change)
- remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAVITY, update=TRUE)
+ remove_movespeed_modifier(/datum/movespeed_modifier/gravity)
else
- add_movespeed_modifier(MOVESPEED_ID_MOB_GRAVITY, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=speed_change, blacklisted_movetypes=FLOATING)
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/gravity, multiplicative_slowdown = speed_change)
//bodypart selection - Cyberboss
//8 toggles through head - eyes - mouth
diff --git a/code/modules/mob/mob_movespeed.dm b/code/modules/mob/mob_movespeed.dm
deleted file mode 100644
index a0be8ff7cb..0000000000
--- a/code/modules/mob/mob_movespeed.dm
+++ /dev/null
@@ -1,126 +0,0 @@
-
-/*Current movespeed modification list format: list(id = list(
- priority,
- flags,
- legacy slowdown/speedup amount,
- movetype_flags,
- blacklisted_movetypes,
- conflict
- ))
-*/
-
-//ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
-/mob/proc/add_movespeed_modifier(id, update=TRUE, priority=0, flags=NONE, override=FALSE, multiplicative_slowdown=0, movetypes=ALL, blacklisted_movetypes=NONE, conflict=FALSE)
- var/list/temp = list(priority, flags, multiplicative_slowdown, movetypes, blacklisted_movetypes, conflict) //build the modification list
- var/resort = TRUE
- if(LAZYACCESS(movespeed_modification, id))
- var/list/existing_data = movespeed_modification[id]
- if(movespeed_modifier_identical_check(existing_data, temp))
- return FALSE
- if(!override)
- return FALSE
- if(priority == existing_data[MOVESPEED_DATA_INDEX_PRIORITY])
- resort = FALSE // We don't need to re-sort if we're replacing something already there and it's the same priority
- LAZYSET(movespeed_modification, id, temp)
- if(update)
- update_movespeed(resort)
- return TRUE
-
-/mob/proc/remove_movespeed_modifier(id, update = TRUE)
- if(!LAZYACCESS(movespeed_modification, id))
- return FALSE
- LAZYREMOVE(movespeed_modification, id)
- UNSETEMPTY(movespeed_modification)
- if(update)
- update_movespeed(FALSE)
- return TRUE
-
-/mob/vv_edit_var(var_name, var_value)
- var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown))
- var/diff
- if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value))
- remove_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT)
- diff = var_value - cached_multiplicative_slowdown
- . = ..()
- if(. && slowdown_edit && isnum(diff))
- add_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT, TRUE, 100, override = TRUE, multiplicative_slowdown = diff)
-
-/mob/proc/has_movespeed_modifier(id)
- return LAZYACCESS(movespeed_modification, id)
-
-/mob/proc/update_config_movespeed()
- add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, override = TRUE, multiplicative_slowdown = get_config_multiplicative_speed())
-
-/mob/proc/get_config_multiplicative_speed()
- if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type])
- return 0
- else
- return GLOB.mob_config_movespeed_type_lookup[type]
-
-/mob/proc/update_movespeed(resort = TRUE)
- if(resort)
- sort_movespeed_modlist()
- . = 0
- var/list/conflict_tracker = list()
- for(var/id in get_movespeed_modifiers())
- var/list/data = movespeed_modification[id]
- if(!(data[MOVESPEED_DATA_INDEX_MOVETYPE] & movement_type)) // We don't affect any of these move types, skip
- continue
- if(data[MOVESPEED_DATA_INDEX_BL_MOVETYPE] & movement_type) // There's a movetype here that disables this modifier, skip
- continue
- var/conflict = data[MOVESPEED_DATA_INDEX_CONFLICT]
- var/amt = data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]
- if(conflict)
- // Conflicting modifiers prioritize the larger slowdown or the larger speedup
- // We purposefuly don't handle mixing speedups and slowdowns on the same id
- if(abs(conflict_tracker[conflict]) < abs(amt))
- conflict_tracker[conflict] = amt
- else
- continue
- . += amt
- cached_multiplicative_slowdown = .
-
-/mob/proc/get_movespeed_modifiers()
- return movespeed_modification
-
-/mob/proc/movespeed_modifier_identical_check(list/mod1, list/mod2)
- if(!islist(mod1) || !islist(mod2) || mod1.len < MOVESPEED_DATA_INDEX_MAX || mod2.len < MOVESPEED_DATA_INDEX_MAX)
- return FALSE
- for(var/i in 1 to MOVESPEED_DATA_INDEX_MAX)
- if(mod1[i] != mod2[i])
- return FALSE
- return TRUE
-
-/mob/proc/total_multiplicative_slowdown()
- . = 0
- for(var/id in get_movespeed_modifiers())
- var/list/data = movespeed_modification[id]
- . += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]
-
-/proc/movespeed_data_null_check(list/data) //Determines if a data list is not meaningful and should be discarded.
- . = TRUE
- if(data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN])
- . = FALSE
-
-/mob/proc/sort_movespeed_modlist() //Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied)
- if(!movespeed_modification)
- return
- var/list/assembled = list()
- for(var/our_id in movespeed_modification)
- var/list/our_data = movespeed_modification[our_id]
- if(!islist(our_data) || (our_data.len < MOVESPEED_DATA_INDEX_PRIORITY) || movespeed_data_null_check(our_data))
- movespeed_modification -= our_id
- continue
- var/our_priority = our_data[MOVESPEED_DATA_INDEX_PRIORITY]
- var/resolved = FALSE
- for(var/their_id in assembled)
- var/list/their_data = assembled[their_id]
- if(their_data[MOVESPEED_DATA_INDEX_PRIORITY] < our_priority)
- assembled.Insert(assembled.Find(their_id), our_id)
- assembled[our_id] = our_data
- resolved = TRUE
- break
- if(!resolved)
- assembled[our_id] = our_data
- movespeed_modification = assembled
- UNSETEMPTY(movespeed_modification)
\ No newline at end of file
diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm
index 10abf460c6..cf86e962bd 100644
--- a/code/modules/mob/status_procs.dm
+++ b/code/modules/mob/status_procs.dm
@@ -20,7 +20,7 @@
dizziness = max(amount, 0)
/**
- * Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work
+ * Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work
*/
/mob/proc/blind_eyes(amount)
var/old_blind = eye_blind || HAS_TRAIT(src, TRAIT_BLIND)
@@ -90,8 +90,8 @@
return
var/obj/screen/plane_master/game_world/GW = locate(/obj/screen/plane_master/game_world) in client.screen
var/obj/screen/plane_master/floor/F = locate(/obj/screen/plane_master/floor) in client.screen
- GW.add_filter("blurry_eyes", 2, EYE_BLUR(CLAMP(eye_blurry*0.1,0.6,3)))
- F.add_filter("blurry_eyes", 2, EYE_BLUR(CLAMP(eye_blurry*0.1,0.6,3)))
+ GW.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3)))
+ F.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3)))
/mob/proc/remove_eyeblur()
if(!client)
@@ -120,4 +120,4 @@
///Adjust the body temperature of a mob, with min/max settings
/mob/proc/adjust_bodytemperature(amount,min_temp=0,max_temp=INFINITY)
if(bodytemperature >= min_temp && bodytemperature <= max_temp)
- bodytemperature = CLAMP(bodytemperature + amount,min_temp,max_temp)
+ bodytemperature = clamp(bodytemperature + amount,min_temp,max_temp)
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index ebecf741f4..ce017ea0cc 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -434,6 +434,7 @@
mind.transfer_to(new_xeno)
else
transfer_ckey(new_xeno)
+ update_atom_languages()
to_chat(new_xeno, "You are now an alien. ")
. = new_xeno
diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm
index 744db1572f..37f3fc434e 100644
--- a/code/modules/modular_computers/hardware/_hardware.dm
+++ b/code/modules/modular_computers/hardware/_hardware.dm
@@ -41,11 +41,10 @@
// Cable coil. Works as repair method, but will probably require multiple applications and more cable.
if(istype(I, /obj/item/stack/cable_coil))
- var/obj/item/stack/S = I
if(obj_integrity == max_integrity)
to_chat(user, "\The [src] doesn't seem to require repairs. ")
return 1
- if(S.use(1))
+ if(I.use_tool(src, user, 0, 1))
to_chat(user, "You patch up \the [src] with a bit of \the [I]. ")
obj_integrity = min(obj_integrity + 10, max_integrity)
return 1
diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm
new file mode 100644
index 0000000000..0976f4d067
--- /dev/null
+++ b/code/modules/movespeed/_movespeed_modifier.dm
@@ -0,0 +1,217 @@
+/*! Movespeed modification datums.
+
+ How move speed for mobs works
+
+Move speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need.
+
+This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be
+
+THey can have unique sources and a bunch of extra fancy flags that control behaviour
+
+Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower
+
+Movespeed modification list is a simple key = datum system. Key will be the datum's ID if it is overridden to not be null, or type if it is not.
+
+DO NOT override datum IDs unless you are going to have multiple types that must overwrite each other. It's more efficient to use types, ID functionality is only kept for cases where dynamic creation of modifiers need to be done.
+
+When update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions
+this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob
+can next move
+
+Key procs
+* [add_movespeed_modifier](mob.html#proc/add_movespeed_modifier)
+* [remove_movespeed_modifier](mob.html#proc/remove_movespeed_modifier)
+* [has_movespeed_modifier](mob.html#proc/has_movespeed_modifier)
+* [update_movespeed](mob.html#proc/update_movespeed)
+*/
+
+/datum/movespeed_modifier
+ /// Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)
+ var/variable = FALSE
+
+ /// Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.
+ var/id
+
+ /// Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding.
+ var/priority = 0
+ var/flags = NONE
+
+ /// Multiplicative slowdown
+ var/multiplicative_slowdown = 0
+
+ /// Movetypes this applies to
+ var/movetypes = ALL
+
+ /// Movetypes this never applies to
+ var/blacklisted_movetypes = NONE
+
+ /// Other modification datums this conflicts with.
+ var/conflicts_with
+
+/datum/movespeed_modifier/New()
+ . = ..()
+ if(!id)
+ id = "[type]" //We turn the path into a string.
+
+GLOBAL_LIST_EMPTY(movespeed_modification_cache)
+
+/// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!
+/proc/get_cached_movespeed_modifier(modtype)
+ if(!ispath(modtype, /datum/movespeed_modifier))
+ CRASH("[modtype] is not a movespeed modification typepath.")
+ var/datum/movespeed_modifier/M = modtype
+ if(initial(M.variable))
+ CRASH("[modtype] is a variable modifier, and can never be cached.")
+ M = GLOB.movespeed_modification_cache[modtype]
+ if(!M)
+ M = GLOB.movespeed_modification_cache[modtype] = new modtype
+ return M
+
+///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
+/mob/proc/add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE)
+ if(ispath(type_or_datum))
+ if(!initial(type_or_datum.variable))
+ type_or_datum = get_cached_movespeed_modifier(type_or_datum)
+ else
+ type_or_datum = new type_or_datum
+ var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id)
+ if(existing)
+ if(existing == type_or_datum) //same thing don't need to touch
+ return TRUE
+ remove_movespeed_modifier(existing, FALSE)
+ if(length(movespeed_modification))
+ BINARY_INSERT(type_or_datum.id, movespeed_modification, datum/movespeed_modifier, type_or_datum, priority, COMPARE_VALUE)
+ LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum)
+ if(update)
+ update_movespeed()
+ return TRUE
+
+/// Remove a move speed modifier from a mob, whether static or variable.
+/mob/proc/remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE)
+ var/key
+ if(ispath(type_id_datum))
+ key = initial(type_id_datum.id) || "[type_id_datum]" //id if set, path set to string if not.
+ else if(!istext(type_id_datum)) //if it isn't text it has to be a datum, as it isn't a type.
+ key = type_id_datum.id
+ else //assume it's an id
+ key = type_id_datum
+ if(!LAZYACCESS(movespeed_modification, key))
+ return FALSE
+ LAZYREMOVE(movespeed_modification, key)
+ if(update)
+ update_movespeed(FALSE)
+ return TRUE
+
+/*! Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful
+ How this SHOULD work is:
+ 1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list.
+ 2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only.
+ 3. Add the datum if necessary using the regular add proc
+ 4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum
+ 5. Update if necessary
+*/
+/mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE, multiplicative_slowdown)
+ var/modified = FALSE
+ var/inject = FALSE
+ var/datum/movespeed_modifier/final
+ if(istext(type_id_datum))
+ final = LAZYACCESS(movespeed_modification, type_id_datum)
+ if(!final)
+ CRASH("Couldn't find existing modification when provided a text ID.")
+ else if(ispath(type_id_datum))
+ if(!initial(type_id_datum.variable))
+ CRASH("Not a variable modifier")
+ final = LAZYACCESS(movespeed_modification, initial(type_id_datum.id) || "[type_id_datum]")
+ if(!final)
+ final = new type_id_datum
+ inject = TRUE
+ modified = TRUE
+ else
+ if(!initial(type_id_datum.variable))
+ CRASH("Not a variable modifier")
+ final = type_id_datum
+ if(!LAZYACCESS(movespeed_modification, final.id))
+ inject = TRUE
+ modified = TRUE
+ if(!isnull(multiplicative_slowdown))
+ final.multiplicative_slowdown = multiplicative_slowdown
+ modified = TRUE
+ if(inject)
+ add_movespeed_modifier(final, FALSE)
+ if(update && modified)
+ update_movespeed(TRUE)
+ return final
+
+/// Handles the special case of editing the movement var
+/mob/vv_edit_var(var_name, var_value)
+ var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown))
+ var/diff
+ if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value))
+ remove_movespeed_modifier(/datum/movespeed_modifier/admin_varedit)
+ diff = var_value - cached_multiplicative_slowdown
+ . = ..()
+ if(. && slowdown_edit && isnum(diff))
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/admin_varedit, multiplicative_slowdown = diff)
+
+///Is there a movespeed modifier for this mob
+/mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id)
+ var/key
+ if(ispath(datum_type_id))
+ key = initial(datum_type_id.id) || "[datum_type_id]"
+ else if(istext(datum_type_id))
+ key = datum_type_id
+ else
+ key = datum_type_id.id
+ return LAZYACCESS(movespeed_modification, key)
+
+/// Set or update the global movespeed config on a mob
+/mob/proc/update_config_movespeed()
+ add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/mob_config_speedmod, multiplicative_slowdown = get_config_multiplicative_speed())
+
+/// Get the global config movespeed of a mob by type
+/mob/proc/get_config_multiplicative_speed()
+ if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type])
+ return 0
+ else
+ return GLOB.mob_config_movespeed_type_lookup[type]
+
+/// Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
+/mob/proc/update_movespeed()
+ . = 0
+ var/list/conflict_tracker = list()
+ for(var/key in get_movespeed_modifiers())
+ var/datum/movespeed_modifier/M = movespeed_modification[key]
+ if(!(M.movetypes & movement_type)) // We don't affect any of these move types, skip
+ continue
+ if(M.blacklisted_movetypes & movement_type) // There's a movetype here that disables this modifier, skip
+ continue
+ var/conflict = M.conflicts_with
+ var/amt = M.multiplicative_slowdown
+ if(conflict)
+ // Conflicting modifiers prioritize the larger slowdown or the larger speedup
+ // We purposefuly don't handle mixing speedups and slowdowns on the same id
+ if(abs(conflict_tracker[conflict]) < abs(amt))
+ conflict_tracker[conflict] = amt
+ else
+ continue
+ . += amt
+ cached_multiplicative_slowdown = .
+
+/// Get the move speed modifiers list of the mob
+/mob/proc/get_movespeed_modifiers()
+ . = LAZYCOPY(movespeed_modification)
+ for(var/id in movespeed_mod_immunities)
+ . -= id
+
+/// Calculate the total slowdown of all movespeed modifiers
+/mob/proc/total_multiplicative_slowdown()
+ . = 0
+ for(var/id in get_movespeed_modifiers())
+ var/datum/movespeed_modifier/M = movespeed_modification[id]
+ . += M.multiplicative_slowdown
+
+/// Checks if a move speed modifier is valid and not missing any data
+/proc/movespeed_data_null_check(datum/movespeed_modifier/M) //Determines if a data list is not meaningful and should be discarded.
+ . = TRUE
+ if(M.multiplicative_slowdown)
+ . = FALSE
diff --git a/code/modules/movespeed/modifiers/components.dm b/code/modules/movespeed/modifiers/components.dm
new file mode 100644
index 0000000000..436b85e2e1
--- /dev/null
+++ b/code/modules/movespeed/modifiers/components.dm
@@ -0,0 +1,21 @@
+/datum/movespeed_modifier/shrink_ray
+ movetypes = GROUND
+ multiplicative_slowdown = 4
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/snail_crawl
+ multiplicative_slowdown = -7
+ movetypes = GROUND
+
+/datum/movespeed_modifier/sanity
+ id = MOVESPEED_ID_SANITY
+ blacklisted_movetypes = FLYING
+
+/datum/movespeed_modifier/sanity/insane
+ multiplicative_slowdown = 1.5
+
+/datum/movespeed_modifier/sanity/crazy
+ multiplicative_slowdown = 1
+
+/datum/movespeed_modifier/sanity/disturbed
+ multiplicative_slowdown = 0.5
diff --git a/code/modules/movespeed/modifiers/innate.dm b/code/modules/movespeed/modifiers/innate.dm
new file mode 100644
index 0000000000..a0357ddf0f
--- /dev/null
+++ b/code/modules/movespeed/modifiers/innate.dm
@@ -0,0 +1,20 @@
+/datum/movespeed_modifier/strained_muscles
+ multiplicative_slowdown = -1
+ blacklisted_movetypes = (FLYING|FLOATING)
+
+/datum/movespeed_modifier/pai_spacewalk
+ multiplicative_slowdown = 2
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/species
+ movetypes = ~FLYING
+ variable = TRUE
+
+/datum/movespeed_modifier/dna_vault_speedup
+ blacklisted_movetypes = (FLYING|FLOATING)
+ multiplicative_slowdown = -1
+
+/datum/movespeed_modifier/small_stride
+ blacklisted_movetypes = (FLOATING|CRAWLING)
+ variable = TRUE
+ flags = IGNORE_NOSLOW
diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm
new file mode 100644
index 0000000000..94dc2a1553
--- /dev/null
+++ b/code/modules/movespeed/modifiers/items.dm
@@ -0,0 +1,12 @@
+/datum/movespeed_modifier/jetpack
+ conflicts_with = MOVE_CONFLICT_JETPACK
+ movetypes = FLOATING
+
+/datum/movespeed_modifier/jetpack/cybernetic
+ multiplicative_slowdown = -0.5
+
+/datum/movespeed_modifier/jetpack/fullspeed
+ multiplicative_slowdown = -2
+
+/datum/movespeed_modifier/die_of_fate
+ multiplicative_slowdown = 1
diff --git a/code/modules/movespeed/modifiers/misc.dm b/code/modules/movespeed/modifiers/misc.dm
new file mode 100644
index 0000000000..55c1aef527
--- /dev/null
+++ b/code/modules/movespeed/modifiers/misc.dm
@@ -0,0 +1,6 @@
+/datum/movespeed_modifier/admin_varedit
+ variable = TRUE
+
+/datum/movespeed_modifier/yellow_orb
+ multiplicative_slowdown = -2
+ blacklisted_movetypes = (FLYING|FLOATING)
diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm
new file mode 100644
index 0000000000..aa60966591
--- /dev/null
+++ b/code/modules/movespeed/modifiers/mobs.dm
@@ -0,0 +1,120 @@
+/datum/movespeed_modifier/obesity
+ multiplicative_slowdown = 1.5
+
+/datum/movespeed_modifier/monkey_reagent_speedmod
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
+
+/datum/movespeed_modifier/monkey_health_speedmod
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
+
+/datum/movespeed_modifier/monkey_temperature_speedmod
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
+
+/datum/movespeed_modifier/hunger
+ variable = TRUE
+
+/datum/movespeed_modifier/slaughter
+ multiplicative_slowdown = -1
+
+/datum/movespeed_modifier/damage_slowdown
+ blacklisted_movetypes = FLOATING|FLYING
+ variable = TRUE
+
+/datum/movespeed_modifier/damage_slowdown_flying
+ movetypes = FLOATING
+ variable = TRUE
+
+/datum/movespeed_modifier/equipment_speedmod
+ variable = TRUE
+ blacklisted_movetypes = FLOATING
+
+/datum/movespeed_modifier/grab_slowdown
+ id = MOVESPEED_ID_MOB_GRAB_STATE
+ blacklisted_movetypes = FLOATING
+
+/datum/movespeed_modifier/grab_slowdown/aggressive
+ multiplicative_slowdown = 3
+
+/datum/movespeed_modifier/grab_slowdown/neck
+ multiplicative_slowdown = 6
+
+/datum/movespeed_modifier/grab_slowdown/kill
+ multiplicative_slowdown = 9
+
+/datum/movespeed_modifier/slime_reagentmod
+ variable = TRUE
+
+/datum/movespeed_modifier/slime_healthmod
+ variable = TRUE
+
+/datum/movespeed_modifier/config_walk_run
+ multiplicative_slowdown = 1
+ id = MOVESPEED_ID_MOB_WALK_RUN
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/config_walk_run/proc/sync()
+
+/datum/movespeed_modifier/config_walk_run/walk/sync()
+ var/mod = CONFIG_GET(number/movedelay/walk_delay)
+ multiplicative_slowdown = isnum(mod)? mod : initial(multiplicative_slowdown)
+
+/datum/movespeed_modifier/config_walk_run/run/sync()
+ var/mod = CONFIG_GET(number/movedelay/run_delay)
+ multiplicative_slowdown = isnum(mod)? mod : initial(multiplicative_slowdown)
+
+/datum/movespeed_modifier/turf_slowdown
+ movetypes = GROUND
+ blacklisted_movetypes = (FLYING|FLOATING)
+ variable = TRUE
+
+/datum/movespeed_modifier/bulky_drag
+ variable = TRUE
+
+/datum/movespeed_modifier/cold
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
+
+/datum/movespeed_modifier/shove
+ multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH
+
+/datum/movespeed_modifier/human_carry
+ variable = TRUE
+
+/datum/movespeed_modifier/limbless
+ variable = TRUE
+ movetypes = GROUND
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/simplemob_varspeed
+ variable = TRUE
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/tarantula_web
+ multiplicative_slowdown = 3
+
+/datum/movespeed_modifier/gravity
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/carbon_softcrit
+ multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN
+
+/datum/movespeed_modifier/slime_tempmod
+ variable = TRUE
+
+/datum/movespeed_modifier/carbon_crawling
+ multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN
+ movetypes = CRAWLING
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/mob_config_speedmod
+ variable = TRUE
+ flags = IGNORE_NOSLOW
+
+/datum/movespeed_modifier/liver_cirrhosis
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
diff --git a/code/modules/movespeed/modifiers/reagents.dm b/code/modules/movespeed/modifiers/reagents.dm
new file mode 100644
index 0000000000..b6c2458670
--- /dev/null
+++ b/code/modules/movespeed/modifiers/reagents.dm
@@ -0,0 +1,14 @@
+/datum/movespeed_modifier/reagent
+ blacklisted_movetypes = (FLYING|FLOATING)
+
+/datum/movespeed_modifier/reagent/stimulants
+ multiplicative_slowdown = -0.5
+
+/datum/movespeed_modifier/reagent/changelinghaste
+ multiplicative_slowdown = -2
+
+/datum/movespeed_modifier/reagent/skooma
+ multiplicative_slowdown = -1
+
+/datum/movespeed_modifier/reagent/nitryl
+ multiplicative_slowdown = -1
diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm
new file mode 100644
index 0000000000..4c710cb483
--- /dev/null
+++ b/code/modules/movespeed/modifiers/status_effects.dm
@@ -0,0 +1,44 @@
+/datum/movespeed_modifier/status_effect/bloodchill
+ multiplicative_slowdown = 3
+
+/datum/movespeed_modifier/status_effect/bonechill
+ multiplicative_slowdown = 3
+
+/datum/movespeed_modifier/status_effect/tarfoot
+ multiplicative_slowdown = 0.5
+ blacklisted_movetypes = (FLYING|FLOATING)
+
+/datum/movespeed_modifier/status_effect/sepia
+ variable = TRUE
+ blacklisted_movetypes = (FLYING|FLOATING)
+
+/datum/movespeed_modifier/status_effect/mesmerize
+ blacklisted_movetypes = CRAWLING
+ multiplicative_slowdown = 5
+ priority = 64
+
+/datum/movespeed_modifier/status_effect/tased
+ multiplicative_slowdown = 1.5
+ priority = 50
+
+/datum/movespeed_modifier/status_effect/tased/no_combat_mode
+ multiplicative_slowdown = 8
+ priority = 100
+
+/datum/movespeed_modifier/status_effect/electrostaff
+ multiplicative_slowdown = 1
+ movetypes = GROUND
+
+//no comment.
+/datum/movespeed_modifier/status_effect/breast_hypertrophy
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
+
+//this shouldn't even exist.
+/datum/movespeed_modifier/status_effect/penis_hypertrophy
+ blacklisted_movetypes = FLOATING
+ variable = TRUE
+
+/datum/movespeed_modifier/status_effect/mkultra
+ multiplicative_slowdown = -2
+ blacklisted_movetypes= FLYING|FLOATING
diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm
index f1e7119530..bc3c445731 100644
--- a/code/modules/ninja/ninja_event.dm
+++ b/code/modules/ninja/ninja_event.dm
@@ -41,6 +41,9 @@ Contents:
for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list)
if(isturf(L.loc))
spawn_locs += L.loc
+ for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list)
+ if(isturf(L.loc))
+ spawn_locs += L.loc
if(!spawn_locs.len)
return kill()
spawn_loc = pick(spawn_locs)
diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm
index b7b7bc36b7..f039dc32b2 100644
--- a/code/modules/photography/camera/camera.dm
+++ b/code/modules/photography/camera/camera.dm
@@ -53,8 +53,8 @@
return
var/desired_x = input(user, "How high do you want the camera to shoot, between [picture_size_x_min] and [picture_size_x_max]?", "Zoom", picture_size_x) as num
var/desired_y = input(user, "How wide do you want the camera to shoot, between [picture_size_y_min] and [picture_size_y_max]?", "Zoom", picture_size_y) as num
- picture_size_x = min(CLAMP(desired_x, picture_size_x_min, picture_size_x_max), CAMERA_PICTURE_SIZE_HARD_LIMIT)
- picture_size_y = min(CLAMP(desired_y, picture_size_y_min, picture_size_y_max), CAMERA_PICTURE_SIZE_HARD_LIMIT)
+ picture_size_x = min(clamp(desired_x, picture_size_x_min, picture_size_x_max), CAMERA_PICTURE_SIZE_HARD_LIMIT)
+ picture_size_y = min(clamp(desired_y, picture_size_y_min, picture_size_y_max), CAMERA_PICTURE_SIZE_HARD_LIMIT)
return TRUE
/obj/item/camera/attack(mob/living/carbon/human/M, mob/user)
@@ -155,8 +155,8 @@
if(!isturf(target_turf))
blending = FALSE
return FALSE
- size_x = CLAMP(size_x, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT)
- size_y = CLAMP(size_y, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT)
+ size_x = clamp(size_x, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT)
+ size_y = clamp(size_y, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT)
var/list/desc = list("This is a photo of an area of [size_x+1] meters by [size_y+1] meters.")
var/ai_user = isAI(user)
var/list/seen
diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm
index f25d80c050..5bd9c108d1 100644
--- a/code/modules/photography/camera/camera_image_capturing.dm
+++ b/code/modules/photography/camera/camera_image_capturing.dm
@@ -4,7 +4,7 @@
if(istype(A))
appearance = A.appearance
dir = A.dir
- if(ismovableatom(A))
+ if(ismovable(A))
var/atom/movable/AM = A
step_x = AM.step_x
step_y = AM.step_y
@@ -68,7 +68,7 @@
for(var/atom/A in sorted)
var/xo = (A.x - center.x) * world.icon_size + A.pixel_x + xcomp
var/yo = (A.y - center.y) * world.icon_size + A.pixel_y + ycomp
- if(ismovableatom(A))
+ if(ismovable(A))
var/atom/movable/AM = A
xo += AM.step_x
yo += AM.step_y
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index fa023b0e3a..7d314a3726 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -196,19 +196,23 @@
switch(tdir)
if(NORTH)
+ pixel_x = 0
pixel_y = 23
if(SOUTH)
+ pixel_x = 0
pixel_y = -23
if(EAST)
+ pixel_y = 0
pixel_x = 24
if(WEST)
+ pixel_y = 0
pixel_x = -25
/obj/machinery/power/apc/Destroy()
GLOB.apcs_list -= src
if(malfai && operating)
- malfai.malf_picker.processing_time = CLAMP(malfai.malf_picker.processing_time - 10,0,1000)
+ malfai.malf_picker.processing_time = clamp(malfai.malf_picker.processing_time - 10,0,1000)
area.power_light = FALSE
area.power_equip = FALSE
area.power_environ = FALSE
@@ -593,19 +597,15 @@
user.visible_message("[user.name] adds cables to the APC frame.", \
"You start adding cables to the APC frame... ")
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
- if(do_after(user, 20, target = src))
- if (C.get_amount() < 10 || !C)
+ if(C.use_tool(src, user, 20, 10) && !terminal && opened && has_electronics)
+ var/turf/T = get_turf(src)
+ var/obj/structure/cable/N = T.get_cable_node()
+ if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE))
+ do_sparks(5, TRUE, src)
return
- if (C.get_amount() >= 10 && !terminal && opened && has_electronics)
- var/turf/T = get_turf(src)
- var/obj/structure/cable/N = T.get_cable_node()
- if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE))
- do_sparks(5, TRUE, src)
- return
- C.use(10)
- to_chat(user, "You add cables to the APC frame. ")
- make_terminal()
- terminal.connect_to_network()
+ to_chat(user, "You add cables to the APC frame. ")
+ make_terminal()
+ terminal.connect_to_network()
else if (istype(W, /obj/item/electronics/apc) && opened)
if (has_electronics)
to_chat(user, "There is already a board inside the [src]! ")
@@ -1350,7 +1350,7 @@
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
area.poweralert(0, src)
-
+
else if(cell_percent < 15 && longtermpower < 0) // <15%, turn off lighting & equipment
equipment = autoset(equipment, 2)
lighting = autoset(lighting, 2)
@@ -1447,7 +1447,7 @@
/obj/machinery/power/apc/proc/set_broken()
if(malfai && operating)
- malfai.malf_picker.processing_time = CLAMP(malfai.malf_picker.processing_time - 10,0,1000)
+ malfai.malf_picker.processing_time = clamp(malfai.malf_picker.processing_time - 10,0,1000)
stat |= BROKEN
operating = FALSE
if(occupier)
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index ed90ed407f..3d8e35935f 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -91,6 +91,21 @@ By design, d1 is the smallest direction and d2 is the highest
d1 = _d1
d2 = _d2
+ if(dir != SOUTH)
+ var/angle_to_turn = dir2angle(dir)
+ if(angle_to_turn == 0 || angle_to_turn == 180)
+ angle_to_turn += 180
+ // direct dir set instead of setDir intentional
+ dir = SOUTH
+ if(d1)
+ d1 = turn(d1, angle_to_turn)
+ if(d2)
+ d2 = turn(d2, angle_to_turn)
+ if(d1 > d2)
+ var/temp = d2
+ d2 = d1
+ d1 = temp
+
var/turf/T = get_turf(src) // hide if turf is not intact
if(level==1)
hide(T.intact)
@@ -217,7 +232,7 @@ By design, d1 is the smallest direction and d2 is the highest
/obj/structure/cable/proc/surplus()
if(powernet)
- return CLAMP(powernet.avail-powernet.load, 0, powernet.avail)
+ return clamp(powernet.avail-powernet.load, 0, powernet.avail)
else
return 0
@@ -233,7 +248,7 @@ By design, d1 is the smallest direction and d2 is the highest
/obj/structure/cable/proc/delayed_surplus()
if(powernet)
- return CLAMP(powernet.newavail - powernet.delayedload, 0, powernet.newavail)
+ return clamp(powernet.newavail - powernet.delayedload, 0, powernet.newavail)
else
return 0
@@ -495,6 +510,7 @@ By design, d1 is the smallest direction and d2 is the highest
full_w_class = WEIGHT_CLASS_SMALL
grind_results = list(/datum/reagent/copper = 2) //2 copper per cable in the coil
usesound = 'sound/items/deconstruct.ogg'
+ used_skills = list(/datum/skill/level/job/wiring)
/obj/item/stack/cable_coil/cyborg
is_cyborg = 1
@@ -533,7 +549,7 @@ By design, d1 is the smallest direction and d2 is the highest
if(affecting && affecting.status == BODYPART_ROBOTIC)
if(user == H)
user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name]. ", "You start fixing some of the wires in [H]'s [affecting.name]. ")
- if(!do_after(user, H, 50))
+ if(!do_mob(user, H, 50))
return
if(item_heal_robotic(H, user, 0, 15))
use(1)
@@ -565,7 +581,7 @@ By design, d1 is the smallest direction and d2 is the highest
return
var/obj/item/restraints/handcuffs/cable/result = new(get_turf(user))
user.put_in_hands(result)
- result.color = color
+ result.color = color
to_chat(user, "You make some restraints out of cable ")
//add cables to the stack
@@ -576,8 +592,6 @@ By design, d1 is the smallest direction and d2 is the highest
amount += extra
update_icon()
-
-
///////////////////////////////////////////////
// Cable laying procedures
//////////////////////////////////////////////
@@ -848,4 +862,4 @@ By design, d1 is the smallest direction and d2 is the highest
. = ..()
var/list/cable_colors = GLOB.cable_colors
color = pick(cable_colors)
-
+
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 93fe7e8fa6..cc321fdb4d 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -157,7 +157,7 @@
/obj/item/stock_parts/cell/proc/get_electrocute_damage()
if(charge >= 1000)
- return CLAMP(round(charge/10000), 10, 90) + rand(-5,5)
+ return clamp(round(charge/10000), 10, 90) + rand(-5,5)
else
return 0
@@ -334,7 +334,7 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
- charge = CLAMP((charge-(10000/severity)),0,maxcharge)
+ charge = clamp((charge-(10000/severity)),0,maxcharge)
/obj/item/stock_parts/cell/emergency_light
name = "miniature power cell"
diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm
index 9fb1a1ce7d..e0b3f5f316 100644
--- a/code/modules/power/floodlight.dm
+++ b/code/modules/power/floodlight.dm
@@ -15,8 +15,7 @@
state = FLOODLIGHT_NEEDS_WIRES
desc = "A bare metal frame looking vaguely like a floodlight. Requires wiring."
else if(istype(O, /obj/item/stack/cable_coil) && (state == FLOODLIGHT_NEEDS_WIRES))
- var/obj/item/stack/S = O
- if(S.use(5))
+ if(O.use_tool(src, user, 0, 5))
to_chat(user, "You wire [src]. ")
name = "wired [name]"
desc = "A bare metal frame looking vaguely like a floodlight. Requires securing with a screwdriver."
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 02ff4127eb..181df7b07c 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -118,8 +118,7 @@
return
if(istype(W, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/coil = W
- if(coil.use(1))
+ if(W.use_tool(src, user, 0, 1, max_level = JOB_SKILL_TRAINED))
icon_state = "[fixture_type]-construct-stage2"
stage = 2
user.visible_message("[user.name] adds wires to [src].", \
@@ -193,7 +192,7 @@
var/on = FALSE // 1 if on, 0 if off
var/on_gs = FALSE
var/static_power_used = 0
- var/brightness = 11 // luminosity when on, also used in power calculation
+ var/brightness = 9 // luminosity when on, also used in power calculation
var/bulb_power = 0.75 // basically the alpha of the emitted light source
var/bulb_colour = "#FFF6ED" // befault colour of the light.
var/status = LIGHT_OK // LIGHT_OK, _EMPTY, _BURNED or _BROKEN
@@ -232,7 +231,8 @@
icon_state = "bulb"
base_state = "bulb"
fitting = "bulb"
- brightness = 6
+ brightness = 5
+ nightshift_brightness = 4
bulb_colour = "#FFDDBB"
desc = "A small lighting fixture."
light_type = /obj/item/light/bulb
@@ -274,11 +274,11 @@
spawn(2)
switch(fitting)
if("tube")
- brightness = 11
+ brightness = 9
if(prob(2))
break_light_tube(1)
if("bulb")
- brightness = 6
+ brightness = 5
if(prob(5))
break_light_tube(1)
spawn(1)
@@ -314,7 +314,7 @@
. = ..()
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
if(on && status == LIGHT_OK)
- SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, CLAMP(light_power*250, 30, 200))
+ SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, clamp(light_power*250, 30, 200))
// update the icon_state and luminosity of the light depending on its state
@@ -361,11 +361,11 @@
set_light(0)
update_icon()
- active_power_usage = (brightness * 7.2)
+ active_power_usage = (brightness * 10)
if(on != on_gs)
on_gs = on
if(on)
- static_power_used = brightness * 14.4 * (hijacked ? 2 : 1) //20W per unit luminosity
+ static_power_used = brightness * 20 * (hijacked ? 2 : 1) //20W per unit luminosity
addStaticPower(static_power_used, STATIC_LIGHT)
else
removeStaticPower(static_power_used, STATIC_LIGHT)
@@ -748,7 +748,7 @@
icon_state = "ltube"
base_state = "ltube"
item_state = "c_tube"
- brightness = 11
+ brightness = 9
/obj/item/light/tube/broken
status = LIGHT_BROKEN
@@ -761,7 +761,7 @@
item_state = "contvapour"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- brightness = 6
+ brightness = 5
/obj/item/light/bulb/broken
status = LIGHT_BROKEN
@@ -830,7 +830,8 @@
icon = 'icons/obj/lighting.dmi'
base_state = "floor" // base description and icon_state
icon_state = "floor"
- brightness = 6
+ brightness = 5
+ nightshift_brightness = 4
layer = 2.5
light_type = /obj/item/light/bulb
fitting = "bulb"
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 39977b7d06..ecea673a70 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -42,7 +42,7 @@
/obj/machinery/power/proc/surplus()
if(powernet)
- return CLAMP(powernet.avail-powernet.load, 0, powernet.avail)
+ return clamp(powernet.avail-powernet.load, 0, powernet.avail)
else
return 0
@@ -58,7 +58,7 @@
/obj/machinery/power/proc/delayed_surplus()
if(powernet)
- return CLAMP(powernet.newavail - powernet.delayedload, 0, powernet.newavail)
+ return clamp(powernet.newavail - powernet.delayedload, 0, powernet.newavail)
else
return 0
diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm
index 3b70383bee..65d5202ff4 100644
--- a/code/modules/power/powernet.dm
+++ b/code/modules/power/powernet.dm
@@ -96,6 +96,6 @@
/datum/powernet/proc/get_electrocute_damage()
if(avail >= 1000)
- return CLAMP(round(avail/10000), 10, 90) + rand(-5,5)
+ return clamp(round(avail/10000), 10, 90) + rand(-5,5)
else
return 0
\ No newline at end of file
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 2e6ec57f77..68a6b34216 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -28,11 +28,19 @@
var/bitcoinproduction_drain = 0.15
var/bitcoinmining = FALSE
rad_insulation = RAD_EXTREME_INSULATION
+ var/obj/item/radio/Radio
/obj/machinery/power/rad_collector/anchored
anchored = TRUE
+/obj/machinery/power/rad_collector/Initialize()
+ . = ..()
+ Radio = new /obj/item/radio(src)
+ Radio.listening = 0
+ Radio.set_frequency(FREQ_ENGINEERING)
+
/obj/machinery/power/rad_collector/Destroy()
+ QDEL_NULL(Radio)
return ..()
/obj/machinery/power/rad_collector/process()
@@ -42,6 +50,7 @@
if(!loaded_tank.air_contents.gases[/datum/gas/plasma])
investigate_log("out of fuel .", INVESTIGATE_SINGULO)
playsound(src, 'sound/machines/ding.ogg', 50, 1)
+ Radio.talk_into(src, "Insufficient plasma in [get_area(src)] [src], ejecting \the [loaded_tank].", FREQ_ENGINEERING)
eject()
else
var/gasdrained = min(powerproduction_drain*drainratio,loaded_tank.air_contents.gases[/datum/gas/plasma])
@@ -55,6 +64,7 @@
else if(is_station_level(z) && SSresearch.science_tech)
if(!loaded_tank.air_contents.gases[/datum/gas/tritium] || !loaded_tank.air_contents.gases[/datum/gas/oxygen])
playsound(src, 'sound/machines/ding.ogg', 50, 1)
+ Radio.talk_into(src, "Insufficient oxygen and tritium in [get_area(src)] [src] to produce research points, ejecting \the [loaded_tank].", FREQ_ENGINEERING)
eject()
else
var/gasdrained = bitcoinproduction_drain*drainratio
diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm
index c471047682..ed3a098dae 100644
--- a/code/modules/power/singularity/narsie.dm
+++ b/code/modules/power/singularity/narsie.dm
@@ -201,7 +201,7 @@
// if(defer_powernet_rebuild != 2)
// defer_powernet_rebuild = 1
for(var/atom/X in urange(consume_range,src,1))
- if(isturf(X) || ismovableatom(X))
+ if(isturf(X) || ismovable(X))
consume(X)
// if(defer_powernet_rebuild != 2)
// defer_powernet_rebuild = 0
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 59792b6539..e33116b02c 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -79,8 +79,7 @@
construction_state = PA_CONSTRUCTION_UNSECURED
did_something = TRUE
else if(istype(W, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/CC = W
- if(CC.use(1))
+ if(W.use_tool(src, user, 0, 1))
user.visible_message("[user.name] adds wires to the [name].", \
"You add some wires.")
construction_state = PA_CONSTRUCTION_PANEL_OPEN
diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm
index 12132b5bae..beaf4bfc43 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -222,8 +222,7 @@
construction_state = PA_CONSTRUCTION_UNSECURED
did_something = TRUE
else if(istype(W, /obj/item/stack/cable_coil))
- var/obj/item/stack/cable_coil/CC = W
- if(CC.use(1))
+ if(W.use_tool(src, user, 0, 1))
user.visible_message("[user.name] adds wires to the [name]. ", \
"You add some wires. ")
construction_state = PA_CONSTRUCTION_PANEL_OPEN
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 76eeeae205..025784e909 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -119,14 +119,13 @@
/obj/singularity/Bump(atom/A)
+ set waitfor = FALSE
consume(A)
- return
-
/obj/singularity/Bumped(atom/movable/AM)
+ set waitfor = FALSE
consume(AM)
-
/obj/singularity/process()
if(current_size >= STAGE_TWO)
move()
@@ -268,6 +267,7 @@
/obj/singularity/proc/eat()
+ set waitfor = FALSE
for(var/tile in spiral_range_turfs(grav_pull, src))
var/turf/T = tile
if(!T || !isturf(loc))
@@ -284,8 +284,6 @@
else
consume(X)
CHECK_TICK
- return
-
/obj/singularity/proc/consume(atom/A)
var/gain = A.singularity_act(current_size, src)
@@ -295,8 +293,6 @@
name = "supermatter-charged [initial(name)]"
consumedSupermatter = 1
set_light(10)
- return
-
/obj/singularity/proc/move(force_move = 0)
if(!move_self)
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 5aa60a245b..5ed1a1e8de 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -125,15 +125,12 @@
to_chat(user, "You start building the power terminal... ")
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
- if(do_after(user, 20, target = src) && C.get_amount() >= 10)
- if(C.get_amount() < 10 || !C)
- return
+ if(C.use_tool(src, user, 20, 10))
var/obj/structure/cable/N = T.get_cable_node() //get the connecting node cable, if there's one
if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) //animate the electrocution if uncautious and unlucky
do_sparks(5, TRUE, src)
return
- C.use(10)
user.visible_message(\
"[user.name] has built a power terminal.",\
"You build the power terminal. ")
@@ -220,7 +217,7 @@
. += "smes-og[clevel]"
/obj/machinery/power/smes/proc/chargedisplay()
- return CLAMP(round(5.5*charge/capacity),0,5)
+ return clamp(round(5.5*charge/capacity),0,5)
/obj/machinery/power/smes/process()
if(stat & BROKEN)
@@ -372,7 +369,7 @@
target = text2num(target)
. = TRUE
if(.)
- input_level = CLAMP(target, 0, input_level_max)
+ input_level = clamp(target, 0, input_level_max)
log_smes(usr)
if("output")
var/target = params["target"]
@@ -394,7 +391,7 @@
target = text2num(target)
. = TRUE
if(.)
- output_level = CLAMP(target, 0, output_level_max)
+ output_level = clamp(target, 0, output_level_max)
log_smes(usr)
/obj/machinery/power/smes/proc/log_smes(mob/user)
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index d228a1e1f0..03f34b7f77 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -28,10 +28,8 @@
/obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S)
. = ..()
panel = new()
-#if DM_VERSION >= 513
panel.vis_flags = VIS_INHERIT_ID|VIS_INHERIT_ICON|VIS_INHERIT_PLANE
vis_contents += panel
-#endif
panel.icon = icon
panel.icon_state = "solar_panel"
panel.layer = FLY_LAYER
@@ -170,7 +168,7 @@
else
//dot product of sun and panel -- Lambert's Cosine Law
. = cos(azimuth_current - sun_azimuth)
- . = CLAMP(round(., 0.01), 0, 1)
+ . = clamp(round(., 0.01), 0, 1)
sunfrac = .
/obj/machinery/power/solar/process()
@@ -385,7 +383,7 @@
if(adjust)
value = azimuth_rate + adjust
if(value != null)
- azimuth_rate = round(CLAMP(value, -2 * SSsun.base_rotation, 2 * SSsun.base_rotation), 0.01)
+ azimuth_rate = round(clamp(value, -2 * SSsun.base_rotation, 2 * SSsun.base_rotation), 0.01)
return TRUE
return FALSE
if(action == "tracking")
@@ -464,7 +462,7 @@
///Rotates the panel to the passed angles
/obj/machinery/power/solar_control/proc/set_panels(azimuth)
- azimuth = CLAMP(round(azimuth, 0.01), -360, 719.99)
+ azimuth = clamp(round(azimuth, 0.01), -360, 719.99)
if(azimuth >= 360)
azimuth -= 360
if(azimuth < 0)
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index f91dc43990..28e9194eef 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -66,8 +66,6 @@
#define SUPERMATTER_COUNTDOWN_TIME 30 SECONDS
-#define SUPERMATTER_INTEGRITY_MULT 1.3 //(loss of integrity / 10) ^ 1.3
-
GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
/obj/machinery/power/supermatter_crystal
@@ -160,8 +158,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
var/datum/looping_sound/supermatter/soundloop
var/moveable = FALSE
- var/min_damage = 0
- var/power_calc = 0
/obj/machinery/power/supermatter_crystal/Initialize()
. = ..()
@@ -253,7 +249,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
add_overlay(causality_field, TRUE)
var/speaking = "[emergency_alert] The supermatter has reached critical integrity failure. Emergency causality destabilization field has been activated."
- radio.talk_into(src, speaking, common_channel, language = get_default_language())
+ radio.talk_into(src, speaking, common_channel, language = get_selected_language())
for(var/i in SUPERMATTER_COUNTDOWN_TIME to 0 step -10)
if(damage < explosion_point) // Cutting it a bit close there engineers
radio.talk_into(src, "[safe_alert] Failsafe has been disengaged.", common_channel)
@@ -346,7 +342,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
else
if(takes_damage)
//causing damage
- damage = max(damage + (max(CLAMP(removed.total_moles() / 200, 0.5, 1) * removed.temperature - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0)
+ damage = max(damage + (max(clamp(removed.total_moles() / 200, 0.5, 1) * removed.temperature - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0)
damage = max(damage + (max(power - POWER_PENALTY_THRESHOLD, 0)/500) * DAMAGE_INCREASE_MULTIPLIER, 0)
damage = max(damage + (max(combined_gas - MOLE_PENALTY_THRESHOLD, 0)/80) * DAMAGE_INCREASE_MULTIPLIER, 0)
@@ -356,7 +352,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
//capping damage
damage = min(damage_archived + (DAMAGE_HARDCAP * explosion_point),damage)
- damage = max(min_damage, damage) //max integrity
if(damage > damage_archived && prob(10))
playsound(get_turf(src), 'sound/effects/empulse.ogg', 50, 1)
@@ -389,14 +384,14 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
mole_heat_penalty = max(combined_gas / MOLE_HEAT_PENALTY, 0.25)
if (combined_gas > POWERLOSS_INHIBITION_MOLE_THRESHOLD && co2comp > POWERLOSS_INHIBITION_GAS_THRESHOLD)
- powerloss_dynamic_scaling = CLAMP(powerloss_dynamic_scaling + CLAMP(co2comp - powerloss_dynamic_scaling, -0.02, 0.02), 0, 1)
+ powerloss_dynamic_scaling = clamp(powerloss_dynamic_scaling + clamp(co2comp - powerloss_dynamic_scaling, -0.02, 0.02), 0, 1)
else
- powerloss_dynamic_scaling = CLAMP(powerloss_dynamic_scaling - 0.05,0, 1)
- powerloss_inhibitor = CLAMP(1-(powerloss_dynamic_scaling * CLAMP(combined_gas/POWERLOSS_INHIBITION_MOLE_BOOST_THRESHOLD,1 ,1.5)),0 ,1)
+ powerloss_dynamic_scaling = clamp(powerloss_dynamic_scaling - 0.05,0, 1)
+ powerloss_inhibitor = clamp(1-(powerloss_dynamic_scaling * clamp(combined_gas/POWERLOSS_INHIBITION_MOLE_BOOST_THRESHOLD,1 ,1.5)),0 ,1)
if(matter_power)
var/removed_matter = max(matter_power/MATTER_POWER_CONVERSION, 40)
- power_calc = max(power_calc + removed_matter, 0)
+ power = max(power + removed_matter, 0)
matter_power = max(matter_power - removed_matter, 0)
var/temp_factor = 50
@@ -409,7 +404,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
temp_factor = 30
icon_state = base_icon_state
- power_calc = max( (removed.temperature * temp_factor / T0C) * gasmix_power_ratio + power_calc, 0) //Total laser power plus an overload
+ power = max( (removed.temperature * temp_factor / T0C) * gasmix_power_ratio + power, 0) //Total laser power plus an overload
if(prob(50))
radiation_pulse(src, power * (1 + (tritiumcomp * TRITIUM_RADIOACTIVITY_MODIFIER) + ((pluoxiumcomp * PLUOXIUM_RADIOACTIVITY_MODIFIER) * pluoxiumbonus) * (power_transmission_bonus/(10-(bzcomp * BZ_RADIOACTIVITY_MODIFIER))))) // Rad Modifiers BZ(500%), Tritium(300%), and Pluoxium(-200%)
@@ -441,19 +436,15 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
for(var/mob/living/carbon/human/l in view(src, HALLUCINATION_RANGE(power))) // If they can see it without mesons on. Bad on them.
if(!istype(l.glasses, /obj/item/clothing/glasses/meson))
var/D = sqrt(1 / max(1, get_dist(l, src)))
- l.hallucination += power_calc * config_hallucination_power * D
- l.hallucination = CLAMP(0, 200, l.hallucination)
+ l.hallucination += power * config_hallucination_power * D
+ l.hallucination = clamp(0, 200, l.hallucination)
for(var/mob/living/l in range(src, round((power / 100) ** 0.25)))
var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) )
l.rad_act(rads)
- power_calc -= ((power_calc/500)**3) * powerloss_inhibitor
- if ((100-get_integrity()) < 75)
- power = (power_calc * ((100 - (0.15*(100-get_integrity()) - 5)**2) / 100)) + power_calc*0.1
- else
- power = power_calc * (((100-get_integrity())^((3*(100-get_integrity()))/1000) + 2*(100-get_integrity()))/100) //new and improved, more linear
- //power = power_calc * ((((100-get_integrity())**1.3)-(2*(100-get_integrity())))/100)
+ power -= ((power/500)**3) * powerloss_inhibitor
+
if(power > POWER_PENALTY_THRESHOLD || damage > damage_penalty_point)
if(power > POWER_PENALTY_THRESHOLD)
@@ -466,7 +457,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
supermatter_zap(src, 5, min(power*2, 20000))
else if (damage > damage_penalty_point && prob(20))
playsound(src.loc, 'sound/weapons/emitter2.ogg', 100, 1, extrarange = 10)
- supermatter_zap(src, 5, CLAMP(power*2, 4000, 20000))
+ supermatter_zap(src, 5, clamp(power*2, 4000, 20000))
if(prob(15) && power > POWER_PENALTY_THRESHOLD)
supermatter_pull(src, power/750)
@@ -476,9 +467,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
supermatter_anomaly_gen(src, GRAVITATIONAL_ANOMALY, rand(5, 10))
if(power > SEVERE_POWER_PENALTY_THRESHOLD && prob(2) || prob(0.3) && power > POWER_PENALTY_THRESHOLD)
supermatter_anomaly_gen(src, PYRO_ANOMALY, rand(5, 10))
- if (damage - damage_archived > 0)
- min_damage += ((damage - damage_archived) / 9) * SUPERMATTER_INTEGRITY_MULT
- if(damage > (min_damage < 200 ? min_damage : 0) + warning_point) // while the core is still damaged and it's still worth noting its status
+ if(damage > warning_point) // while the core is still damaged and it's still worth noting its status
if((REALTIMEOFDAY - lastwarning) / 10 >= WARNING_DELAY)
alarm()
@@ -517,7 +506,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
if(!istype(Proj.firer, /obj/machinery/power/emitter))
investigate_log("has been hit by [Proj] fired by [key_name(Proj.firer)]", INVESTIGATE_SUPERMATTER)
if(Proj.flag != "bullet")
- power_calc += Proj.damage * config_bullet_energy
+ power += Proj.damage * config_bullet_energy
if(!has_been_powered)
investigate_log("has been powered for the first time.", INVESTIGATE_SUPERMATTER)
message_admins("[src] has been powered for the first time [ADMIN_JMP(src)].")
@@ -618,17 +607,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
to_chat(user, "You extract a sliver from \the [src]. \The [src] begins to react violently! ")
new /obj/item/nuke_core/supermatter_sliver(drop_location())
matter_power += 200
- if (istype(W, /obj/item/supermatterspray))
- var/obj/item/supermatterspray/S = W
- if (S.usesleft > 0 && do_after(user, 60, target=src))
- min_damage = max(0,min_damage - 10)
- to_chat(user, "You spray \the [src] with [S]. ")
- playsound(user.loc,'sound/effects/spray2.ogg',50,1,-6)
- S.usesleft--
- if (prob(10))
- to_chat(user, "Your hands slip and you drop [S] into \the [src]! ")
- Consume(S)
- return
else if(user.dropItemToGround(W))
user.visible_message("As [user] touches \the [src] with \a [W], silence fills the room... ",\
"You touch \the [src] with \the [W], and everything suddenly goes silent. \n\The [W] flashes into dust as you flinch away from \the [src]. ",\
@@ -736,7 +714,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
/obj/machinery/power/supermatter_crystal/proc/supermatter_pull(turf/center, pull_range = 10)
playsound(src.loc, 'sound/weapons/marauder.ogg', 100, 1, extrarange = 7)
for(var/atom/P in orange(pull_range,center))
- if(ismovableatom(P))
+ if(ismovable(P))
var/atom/movable/pulled_object = P
if(ishuman(P))
var/mob/living/carbon/human/H = P
diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm
index 1b08693d1c..e98fe3c88e 100644
--- a/code/modules/power/tesla/energy_ball.dm
+++ b/code/modules/power/tesla/energy_ball.dm
@@ -65,7 +65,7 @@
pixel_x = -32
pixel_y = -32
for (var/ball in orbiting_balls)
- var/range = rand(1, CLAMP(orbiting_balls.len, 3, 7))
+ var/range = rand(1, clamp(orbiting_balls.len, 3, 7))
tesla_zap(ball, range, TESLA_MINI_POWER/7*range)
else
energy = 0 // ensure we dont have miniballs of miniballs
diff --git a/code/modules/procedural_mapping/mapGenerators/repair.dm b/code/modules/procedural_mapping/mapGenerators/repair.dm
index 20ba10b0e1..d9380a40dd 100644
--- a/code/modules/procedural_mapping/mapGenerators/repair.dm
+++ b/code/modules/procedural_mapping/mapGenerators/repair.dm
@@ -26,8 +26,8 @@
var/z_offset = SSmapping.station_start
var/list/bounds
for (var/path in SSmapping.config.GetFullMapPaths())
- var/datum/parsed_map/parsed = load_map(file(path), 1, 1, z_offset, measureOnly = FALSE, no_changeturf = FALSE, cropMap=TRUE, x_lower = mother1.x_low, y_lower = mother1.y_low, x_upper = mother1.x_high, y_upper = mother1.y_high)
- bounds = parsed?.bounds
+ var/datum/parsed_map/parsed = load_map(file(path), 1, 1, z_offset, orientation = SSmapping.config.orientation, cropMap = TRUE, x_lower = mother1.x_low, y_lower = mother1.y_low, x_upper = mother1.x_high, y_upper = mother1.y_high)
+ bounds = parsed.bounds
z_offset += bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1
var/list/obj/machinery/atmospherics/atmos_machines = list()
diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm
index 58a5bfb497..461166ab0d 100644
--- a/code/modules/projectiles/ammunition/ballistic/pistol.dm
+++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm
@@ -1,28 +1,28 @@
// 10mm (Stechkin)
/obj/item/ammo_casing/c10mm
- name = ".10mm bullet casing"
+ name = "10mm bullet casing"
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = /obj/item/projectile/bullet/c10mm
/obj/item/ammo_casing/c10mm/ap
- name = ".10mm armor-piercing bullet casing"
+ name = "10mm armor-piercing bullet casing"
desc = "A 10mm armor-piercing bullet casing."
projectile_type = /obj/item/projectile/bullet/c10mm_ap
/obj/item/ammo_casing/c10mm/hp
- name = ".10mm hollow-point bullet casing"
+ name = "10mm hollow-point bullet casing"
desc = "A 10mm hollow-point bullet casing."
projectile_type = /obj/item/projectile/bullet/c10mm_hp
/obj/item/ammo_casing/c10mm/fire
- name = ".10mm incendiary bullet casing"
+ name = "10mm incendiary bullet casing"
desc = "A 10mm incendiary bullet casing."
projectile_type = /obj/item/projectile/bullet/incendiary/c10mm
/obj/item/ammo_casing/c10mm/soporific
- name = ".10mm soporific bullet casing"
+ name = "10mm soporific bullet casing"
desc = "A 10mm soporific bullet casing."
projectile_type = /obj/item/projectile/bullet/c10mm/soporific
diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm
index 39e3ca06ff..994b0f7f01 100644
--- a/code/modules/projectiles/ammunition/energy/special.dm
+++ b/code/modules/projectiles/ammunition/energy/special.dm
@@ -3,6 +3,10 @@
select_name = "ion"
fire_sound = 'sound/weapons/ionrifle.ogg'
+/obj/item/ammo_casing/energy/ion/hos
+ projectile_type = /obj/item/projectile/ion
+ e_cost = 200
+
/obj/item/ammo_casing/energy/declone
projectile_type = /obj/item/projectile/energy/declone
select_name = "declone"
diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm
index 2abc472138..f063672654 100644
--- a/code/modules/projectiles/ammunition/energy/stun.dm
+++ b/code/modules/projectiles/ammunition/energy/stun.dm
@@ -16,9 +16,6 @@
fire_sound = 'sound/weapons/gunshot.ogg'
e_cost = 100
-/obj/item/ammo_casing/energy/electrode/hos
- projectile_type = /obj/item/projectile/energy/electrode/security/hos
- e_cost = 200
/obj/item/ammo_casing/energy/electrode/old
e_cost = 1000
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index 4f37cf3ba9..8ebddaa24f 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -112,18 +112,21 @@
update_icon()
/obj/item/ammo_box/update_icon()
- switch(multiple_sprites)
- if(1)
- icon_state = "[initial(icon_state)]-[stored_ammo.len]"
- if(2)
- icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]"
- desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!"
+ . = ..()
+ desc = "[initial(desc)] There [stored_ammo.len == 1 ? "is" : "are"] [stored_ammo.len] shell\s left!"
for (var/material in bullet_cost)
var/material_amount = bullet_cost[material]
material_amount = (material_amount*stored_ammo.len) + base_cost[material]
custom_materials[material] = material_amount
set_custom_materials(custom_materials)//make sure we setup the correct properties again
+/obj/item/ammo_box/update_icon_state()
+ switch(multiple_sprites)
+ if(1)
+ icon_state = "[initial(icon_state)]-[stored_ammo.len]"
+ if(2)
+ icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]"
+
//Behavior for magazines
/obj/item/ammo_box/magazine/proc/ammo_count()
return stored_ammo.len
diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
index 81ae026138..597c7203b4 100644
--- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
+++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
@@ -121,3 +121,51 @@
icon_state = "foambox_riot"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
custom_materials = list(/datum/material/iron = 50000)
+
+//Shotgun clips
+/obj/item/ammo_box/shotgun
+ name = "stripper clip (shotgun shells)"
+ desc = "A stripper clip, designed to help with loading a shotgun slightly faster."
+ icon = 'icons/obj/ammo.dmi'
+ icon_state = "shotgunclip"
+ caliber = "shotgun" // slapped in to allow shell mix n match
+ ammo_type = /obj/item/ammo_casing/shotgun
+ max_ammo = 4
+ var/pixeloffsetx = 4
+ start_empty = TRUE
+
+/obj/item/ammo_box/shotgun/update_overlays()
+ . = ..()
+ if(stored_ammo.len)
+ var/offset = -4
+ for(var/A in stored_ammo)
+ var/obj/item/ammo_casing/shotgun/C = A
+ offset += pixeloffsetx
+ var/mutable_appearance/shell_overlay = mutable_appearance(icon, "[initial(C.icon_state)]-clip")
+ shell_overlay.pixel_x += offset
+ shell_overlay.appearance_flags = RESET_COLOR
+ . += shell_overlay
+
+/obj/item/ammo_box/shotgun/loaded
+ start_empty = FALSE
+
+/obj/item/ammo_box/shotgun/loaded/rubbershot
+ ammo_type = /obj/item/ammo_casing/shotgun/rubbershot
+
+/obj/item/ammo_box/shotgun/loaded/buckshot
+ ammo_type = /obj/item/ammo_casing/shotgun/buckshot
+
+/obj/item/ammo_box/shotgun/loaded/beanbag
+ ammo_type = /obj/item/ammo_casing/shotgun/beanbag
+
+/obj/item/ammo_box/shotgun/loaded/stunslug
+ ammo_type = /obj/item/ammo_casing/shotgun/stunslug
+
+/obj/item/ammo_box/shotgun/loaded/techshell
+ ammo_type = /obj/item/ammo_casing/shotgun/techshell
+
+/obj/item/ammo_box/shotgun/loaded/incendiary
+ ammo_type = /obj/item/ammo_casing/shotgun/incendiary
+
+/obj/item/ammo_box/shotgun/loaded/dart
+ ammo_type = /obj/item/ammo_casing/shotgun/dart
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index b43ac3057a..afe2b9ca3e 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -331,8 +331,7 @@
/obj/item/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params)
..()
if(istype(A, /obj/item/stack/cable_coil) && !sawn_off)
- var/obj/item/stack/cable_coil/C = A
- if(C.use(10))
+ if(A.use_tool(src, user, 0, 10, max_level = JOB_SKILL_BASIC))
slot_flags = ITEM_SLOT_BACK
to_chat(user, "You tie the lengths of cable to the shotgun, making a sling. ")
slung = TRUE
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 7fb17ced57..4894a8d8eb 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -41,9 +41,12 @@
to_chat(user, "You're too exhausted for that. ")//CIT CHANGE - ditto
return//CIT CHANGE - ditto
pump(user, TRUE)
- recentpump = world.time + 10
- if(istype(user))//CIT CHANGE - makes pumping shotguns cost a lil bit of stamina.
- user.adjustStaminaLossBuffered(2) //CIT CHANGE - DITTO. make this scale inversely to the strength stat when stats/skills are added
+ if(HAS_TRAIT(user, TRAIT_FAST_PUMP))
+ recentpump = world.time + 2
+ else
+ recentpump = world.time + 10
+ if(istype(user))//CIT CHANGE - makes pumping shotguns cost a lil bit of stamina.
+ user.adjustStaminaLossBuffered(2) //CIT CHANGE - DITTO. make this scale inversely to the strength stat when stats/skills are added
return
/obj/item/gun/ballistic/shotgun/blow_up(mob/user)
@@ -90,7 +93,7 @@
fire_delay = 7
mag_type = /obj/item/ammo_box/magazine/internal/shot/riot
sawn_desc = "Come with me if you want to live."
- unique_reskin = list("Tatical" = "riotshotgun",
+ unique_reskin = list("Tactical" = "riotshotgun",
"Wood Stock" = "wood_riotshotgun"
)
@@ -212,7 +215,7 @@
fire_delay = 5
mag_type = /obj/item/ammo_box/magazine/internal/shot/com
w_class = WEIGHT_CLASS_HUGE
- unique_reskin = list("Tatical" = "cshotgun",
+ unique_reskin = list("Tactical" = "cshotgun",
"Slick" = "cshotgun_slick"
)
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index e0c84e7047..ff3f127817 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -232,7 +232,7 @@
..()
if(!automatic_charge_overlays)
return
- var/ratio = can_shoot() ? CEILING(CLAMP(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0
+ var/ratio = can_shoot() ? CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0
// Sets the ratio to 0 if the gun doesn't have enough charge to fire, or if it's power cell is removed.
// TG issues #5361 & #47908
if(ratio == old_ratio && !force_update)
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index efe107a3f8..71ee8bc5ef 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -52,13 +52,16 @@
/obj/item/gun/energy/e_gun/hos
name = "\improper X-01 MultiPhase Energy Gun"
- desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time."
+ desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time in exchange for inbuilt advanced firearm EMP shielding."
icon_state = "hoslaser"
force = 10
- ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/hos)
+ ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/ion/hos)
ammo_x_offset = 4
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+/obj/item/gun/energy/e_gun/hos/emp_act(severity)
+ return
+
/obj/item/gun/energy/e_gun/dragnet
name = "\improper DRAGnet"
desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology."
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index f230dc7fea..f8ddcb5aae 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -318,7 +318,7 @@
AC.sync_stats()
/obj/item/gun/energy/beam_rifle/proc/delay_penalty(amount)
- aiming_time_left = CLAMP(aiming_time_left + amount, 0, aiming_time)
+ aiming_time_left = clamp(aiming_time_left + amount, 0, aiming_time)
/obj/item/ammo_casing/energy/beam_rifle
name = "particle acceleration lens"
@@ -369,11 +369,11 @@
HS_BB.stun = projectile_stun
HS_BB.impact_structure_damage = impact_structure_damage
HS_BB.aoe_mob_damage = aoe_mob_damage
- HS_BB.aoe_mob_range = CLAMP(aoe_mob_range, 0, 15) //Badmin safety lock
+ HS_BB.aoe_mob_range = clamp(aoe_mob_range, 0, 15) //Badmin safety lock
HS_BB.aoe_fire_chance = aoe_fire_chance
HS_BB.aoe_fire_range = aoe_fire_range
HS_BB.aoe_structure_damage = aoe_structure_damage
- HS_BB.aoe_structure_range = CLAMP(aoe_structure_range, 0, 15) //Badmin safety lock
+ HS_BB.aoe_structure_range = clamp(aoe_structure_range, 0, 15) //Badmin safety lock
HS_BB.wall_devastate = wall_devastate
HS_BB.wall_pierce_amount = wall_pierce_amount
HS_BB.structure_pierce_amount = structure_piercing
@@ -465,7 +465,7 @@
else
target.ex_act(EXPLODE_HEAVY)
return TRUE
- if(ismovableatom(target))
+ if(ismovable(target))
var/atom/movable/AM = target
if(AM.density && !AM.CanPass(src, get_turf(target)) && !ismob(AM))
if(structure_pierce < structure_pierce_amount)
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index e754a9c070..8a1db49762 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -241,3 +241,87 @@
to_chat(user, "The pin beeps, refusing to fire. ")
return FALSE
return TRUE
+
+/obj/item/firing_pin/security_level
+ name = "security level firing pin"
+ desc = "A sophisticated firing pin that authorizes operation based on its settings and current security level."
+ icon_state = "firing_pin_sec_level"
+ var/min_sec_level = SEC_LEVEL_GREEN
+ var/max_sec_level = SEC_LEVEL_DELTA
+ var/only_lethals = FALSE
+ var/can_toggle = TRUE
+
+/obj/item/firing_pin/security_level/Initialize()
+ . = ..()
+ fail_message = "INVALID SECURITY LEVEL. CURRENT: [uppertext(NUM2SECLEVEL(GLOB.security_level))]. \
+ MIN: [uppertext(NUM2SECLEVEL(min_sec_level))]. MAX: [uppertext(NUM2SECLEVEL(max_sec_level))]. \
+ ONLY LETHALS: [only_lethals ? "YES" : "NO"]. "
+ update_icon()
+
+/obj/item/firing_pin/security_level/examine(mob/user)
+ . = ..()
+ var/lethal = only_lethals ? "only lethal " : ""
+ if(min_sec_level != max_sec_level)
+ . += "It's currently set to disallow [lethal]operation when the security level isn't between [NUM2SECLEVEL(min_sec_level)] and [NUM2SECLEVEL(max_sec_level)] . "
+ else
+ . += "It's currently set to disallow [lethal]operation when the security level isn't [NUM2SECLEVEL(min_sec_level)] . "
+ if(can_toggle)
+ . += "You can use a multitool to modify its settings. "
+
+/obj/item/firing_pin/security_level/multitool_act(mob/living/user, obj/item/I)
+ . = TRUE
+ if(!can_toggle || !user.canUseTopic(src, BE_CLOSE))
+ return
+ var/selection = alert(user, "Which setting would you want to modify?", "Firing Pin Settings", "Minimum Level Setting", "Maximum Level Setting", "Lethals Only Toggle")
+ if(QDELETED(src) || QDELETED(user) || !user.canUseTopic(src, BE_CLOSE))
+ return
+ var/static/list/till_designs_pr_isnt_merged = list("green", "blue", "amber", "red", "delta")
+ switch(selection)
+ if("Minimum Level Setting")
+ var/input = input(user, "Input the new minimum level setting.", "Firing Pin Settings", NUM2SECLEVEL(min_sec_level)) as null|anything in till_designs_pr_isnt_merged
+ if(!input)
+ return
+ min_sec_level = till_designs_pr_isnt_merged.Find(input) - 1
+ if(min_sec_level > max_sec_level)
+ max_sec_level = SEC_LEVEL_DELTA
+ if("Maximum Level Setting")
+ var/input = input(user, "Input the new maximum level setting.", "Firing Pin Settings", NUM2SECLEVEL(max_sec_level)) as null|anything in till_designs_pr_isnt_merged
+ if(!input)
+ return
+ max_sec_level = till_designs_pr_isnt_merged.Find(input) - 1
+ if(max_sec_level < max_sec_level)
+ min_sec_level = SEC_LEVEL_GREEN
+ if("Lethals Only Toggle")
+ only_lethals = !only_lethals
+
+ fail_message = "INVALID SECURITY LEVEL. CURRENT: [uppertext(NUM2SECLEVEL(GLOB.security_level))]. \
+ MIN: [uppertext(NUM2SECLEVEL(min_sec_level))]. MAX: [uppertext(NUM2SECLEVEL(max_sec_level))]. \
+ ONLY LETHALS: [only_lethals ? "YES" : "NO"]. "
+ update_icon()
+
+/obj/item/firing_pin/security_level/update_overlays()
+ . = ..()
+ var/offset = 0
+ for(var/level in list(min_sec_level, max_sec_level))
+ var/mutable_appearance/overlay = mutable_appearance(icon, "pin_sec_level_overlay")
+ overlay.pixel_x += offset
+ offset += 4
+ switch(level)
+ if(SEC_LEVEL_GREEN)
+ overlay.color = "#b2ff59" //light green
+ if(SEC_LEVEL_BLUE)
+ overlay.color = "#99ccff" //light blue
+ if(SEC_LEVEL_AMBER)
+ overlay.color = "#ffae42" //light yellow/orange
+ if(SEC_LEVEL_RED)
+ overlay.color = "#ff3f34" //light red
+ else
+ overlay.color = "#fe59c2" //neon fuchsia
+ . += overlay
+ var/mutable_appearance/overlay = mutable_appearance(icon, "pin_sec_level_overlay")
+ overlay.pixel_x += offset
+ overlay.color = only_lethals ? "#b2ff59" : "#ff3f34"
+ . += overlay
+
+/obj/item/firing_pin/security_level/pin_auth(mob/living/user)
+ return (only_lethals && !(gun.chambered?.harmful)) || ISINRANGE(GLOB.security_level, min_sec_level, max_sec_level)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 6094a7aa46..71aa78da4b 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -33,12 +33,13 @@
var/fired = FALSE //Have we been fired yet
var/paused = FALSE //for suspending the projectile midair
var/last_projectile_move = 0
- var/last_process = 0
var/time_offset = 0
var/datum/point/vector/trajectory
var/trajectory_ignore_forcemove = FALSE //instructs forceMove to NOT reset our trajectory to the new location!
var/speed = 0.8 //Amount of deciseconds it takes for projectile to travel
+ /// "leftover" ticks and stuff yeah. hey when are we rewriting projectiles for the eighth time to do something smarter like incrementing x pixels until it meets a goal instead of for(var/i in 1 to required_moves)?
+ var/tick_moves_leftover = 0
var/Angle = 0
var/original_angle = 0 //Angle at firing
var/nondirectional_sprite = FALSE //Set TRUE to prevent projectiles from having their sprites rotated based on firing angle
@@ -224,7 +225,7 @@
/obj/item/projectile/proc/vol_by_damage()
if(src.damage)
- return CLAMP((src.damage) * 0.67, 30, 100)// Multiply projectile damage by 0.67, then CLAMP the value between 30 and 100
+ return clamp((src.damage) * 0.67, 30, 100)// Multiply projectile damage by 0.67, then CLAMP the value between 30 and 100
else
return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume
@@ -255,7 +256,7 @@
def_zone = ran_zone(def_zone, max(100-(7*distance), 5) * zone_accuracy_factor) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use.
if(isturf(A) && hitsound_wall)
- var/volume = CLAMP(vol_by_damage() + 20, 0, 100)
+ var/volume = clamp(vol_by_damage() + 20, 0, 100)
if(suppressed)
volume = 5
playsound(loc, hitsound_wall, volume, 1, -1)
@@ -315,6 +316,8 @@
objs += O
var/obj/O = safepick(objs)
if(O)
+ if(length(O.buckled_mobs))
+ return pick(O.buckled_mobs)
return O
//Nothing else is here that we can hit, hit the turf if we haven't.
if(!(T in permutated) && can_hit_target(T, permutated, T == original, TRUE))
@@ -349,26 +352,20 @@
/obj/item/projectile/Process_Spacemove(movement_dir = 0)
return TRUE //Bullets don't drift in space
-/obj/item/projectile/process()
- last_process = world.time
+/obj/item/projectile/process(wait)
if(!loc || !fired || !trajectory)
fired = FALSE
return PROCESS_KILL
if(paused || !isturf(loc))
- last_projectile_move += world.time - last_process //Compensates for pausing, so it doesn't become a hitscan projectile when unpaused from charged up ticks.
return
- var/elapsed_time_deciseconds = (world.time - last_projectile_move) + time_offset
- time_offset = 0
- var/required_moves = speed > 0? FLOOR(elapsed_time_deciseconds / speed, 1) : MOVES_HITSCAN //Would be better if a 0 speed made hitscan but everyone hates those so I can't make it a universal system :<
- if(required_moves == MOVES_HITSCAN)
- required_moves = SSprojectiles.global_max_tick_moves
- else
- if(required_moves > SSprojectiles.global_max_tick_moves)
- var/overrun = required_moves - SSprojectiles.global_max_tick_moves
- required_moves = SSprojectiles.global_max_tick_moves
- time_offset += overrun * speed
- time_offset += MODULUS(elapsed_time_deciseconds, speed)
-
+ var/ds = (SSprojectiles.flags & SS_TICKER)? (wait * world.tick_lag) : wait
+ var/required_moves = ds / speed
+ var/leftover = MODULUS(required_moves, 1)
+ tick_moves_leftover += leftover
+ required_moves = round(required_moves)
+ if(tick_moves_leftover > 1)
+ required_moves += round(tick_moves_leftover)
+ tick_moves_leftover = MODULUS(tick_moves_leftover, 1)
for(var/i in 1 to required_moves)
pixel_move(1, FALSE)
@@ -392,7 +389,7 @@
stack_trace("WARNING: Projectile [type] deleted due to being unable to resolve a target after angle was null!")
qdel(src)
return
- var/turf/target = locate(CLAMP(starting + xo, 1, world.maxx), CLAMP(starting + yo, 1, world.maxy), starting.z)
+ var/turf/target = locate(clamp(starting + xo, 1, world.maxx), clamp(starting + yo, 1, world.maxy), starting.z)
setAngle(Get_Angle(src, target))
original_angle = Angle
if(!nondirectional_sprite)
@@ -525,10 +522,10 @@
if(!homing_target)
return FALSE
var/datum/point/PT = RETURN_PRECISE_POINT(homing_target)
- PT.x += CLAMP(homing_offset_x, 1, world.maxx)
- PT.y += CLAMP(homing_offset_y, 1, world.maxy)
+ PT.x += clamp(homing_offset_x, 1, world.maxx)
+ PT.y += clamp(homing_offset_y, 1, world.maxy)
var/angle = closer_angle_difference(Angle, angle_between_points(RETURN_PRECISE_POINT(src), PT))
- setAngle(Angle + CLAMP(angle, -homing_turn_speed, homing_turn_speed))
+ setAngle(Angle + clamp(angle, -homing_turn_speed, homing_turn_speed))
/obj/item/projectile/proc/set_homing_target(atom/A)
if(!A || (!isturf(A) && !isturf(A.loc)))
@@ -622,7 +619,7 @@
var/ox = round(screenviewX/2) - user.client.pixel_x //"origin" x
var/oy = round(screenviewY/2) - user.client.pixel_y //"origin" y
- angle = ATAN2(y - oy, x - ox)
+ angle = arctan(y - oy, x - ox)
return list(angle, p_x, p_y)
/obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it.
diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
index 06d94414be..25809cc7ca 100644
--- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm
+++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
@@ -60,11 +60,11 @@
if(R.overdose_threshold == 0 || emptrig == TRUE) //Is there a possible OD?
M.reagents.add_reagent(R.type, R.volume)
else
- var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.type)) -1)
+ var/transVol = clamp(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.type)) -1)
M.reagents.add_reagent(R.type, transVol)
else
if(!R.overdose_threshold == 0)
- var/transVol = CLAMP(R.volume, 0, R.overdose_threshold-1)
+ var/transVol = clamp(R.volume, 0, R.overdose_threshold-1)
M.reagents.add_reagent(R.type, transVol)
else
M.reagents.add_reagent(R.type, R.volume)
diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm
index 4411334883..ff95b65a49 100644
--- a/code/modules/projectiles/projectile/bullets/shotgun.dm
+++ b/code/modules/projectiles/projectile/bullets/shotgun.dm
@@ -51,7 +51,7 @@
/obj/item/projectile/bullet/shotgun_meteorslug/on_hit(atom/target, blocked = FALSE)
. = ..()
- if(ismovableatom(target))
+ if(ismovable(target))
var/atom/movable/M = target
var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src)))
M.safe_throw_at(throw_target, 3, 2)
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index 5f2edd5206..ff6340bcdb 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -182,18 +182,14 @@
var/path = pick(/mob/living/simple_animal/hostile/carp,
/mob/living/simple_animal/hostile/bear,
/mob/living/simple_animal/hostile/mushroom,
- /mob/living/simple_animal/hostile/statue,
/mob/living/simple_animal/hostile/retaliate/bat,
/mob/living/simple_animal/hostile/retaliate/goat,
/mob/living/simple_animal/hostile/killertomato,
/mob/living/simple_animal/hostile/poison/giant_spider,
/mob/living/simple_animal/hostile/poison/giant_spider/hunter,
/mob/living/simple_animal/hostile/blob/blobbernaut/independent,
- /mob/living/simple_animal/hostile/carp/ranged,
- /mob/living/simple_animal/hostile/carp/ranged/chaos,
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher,
/mob/living/simple_animal/hostile/asteroid/goliath/beast,
- /mob/living/simple_animal/hostile/headcrab,
/mob/living/simple_animal/hostile/morph,
/mob/living/simple_animal/hostile/stickman,
/mob/living/simple_animal/hostile/stickman/dog,
@@ -232,7 +228,6 @@
if(!new_mob)
return
- new_mob.grant_language(/datum/language/common)
// Some forms can still wear some items
for(var/obj/item/W in contents)
diff --git a/code/modules/projectiles/projectile/special/ion.dm b/code/modules/projectiles/projectile/special/ion.dm
index ae0888d3df..9755269031 100644
--- a/code/modules/projectiles/projectile/special/ion.dm
+++ b/code/modules/projectiles/projectile/special/ion.dm
@@ -3,7 +3,7 @@
icon_state = "ion"
damage = 0
damage_type = BURN
- nodamage = 1
+ nodamage = TRUE
flag = "energy"
impact_effect_type = /obj/effect/temp_visual/impact_effect/ion
var/emp_radius = 1
@@ -14,4 +14,4 @@
return BULLET_ACT_HIT
/obj/item/projectile/ion/weak
- emp_radius = 0
+ emp_radius = 0
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/special/neurotoxin.dm b/code/modules/projectiles/projectile/special/neurotoxin.dm
index a72d078384..2f6a55a7d0 100644
--- a/code/modules/projectiles/projectile/special/neurotoxin.dm
+++ b/code/modules/projectiles/projectile/special/neurotoxin.dm
@@ -1,8 +1,9 @@
/obj/item/projectile/bullet/neurotoxin
name = "neurotoxin spit"
icon_state = "neurotoxin"
- damage = 5
+ damage = 15
damage_type = TOX
+ var/stagger_duration = 8 SECONDS
/obj/item/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = FALSE)
if(isalien(target))
@@ -10,5 +11,6 @@
nodamage = TRUE
else if(iscarbon(target))
var/mob/living/L = target
- L.DefaultCombatKnockdown(100, TRUE, FALSE, 30, 25)
+ L.KnockToFloor(TRUE)
+ L.Stagger(stagger_duration)
return ..()
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index 89dd229407..f4c06f39cc 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -728,7 +728,7 @@
return
//Make sure things are limited, but superacids/bases can push forward the reaction
- pH = CLAMP(pH, 0, 14)
+ pH = clamp(pH, 0, 14)
//return said amount to compare for next step.
return (reactedVol)
@@ -849,7 +849,7 @@
/datum/reagents/proc/adjust_thermal_energy(J, min_temp = 2.7, max_temp = 1000)
var/S = specific_heat()
- chem_temp = CLAMP(chem_temp + (J / (S * total_volume)), min_temp, max_temp)
+ chem_temp = clamp(chem_temp + (J / (S * total_volume)), min_temp, max_temp)
if(istype(my_atom, /obj/item/reagent_containers))
var/obj/item/reagent_containers/RC = my_atom
RC.temp_check()
@@ -877,7 +877,7 @@
for (var/datum/reagent/reagentgas in reagent_list)
R.add_reagent(reagentgas, amount/5)
remove_reagent(reagentgas, amount/5)
- s.set_up(R, CLAMP(amount/10, 0, 2), T)
+ s.set_up(R, clamp(amount/10, 0, 2), T)
s.start()
return FALSE
@@ -995,7 +995,7 @@
RC.pH_check()//checks beaker resilience)
//clamp the removal amount to be between current reagent amount
//and zero, to prevent removing more than the holder has stored
- amount = CLAMP(amount, 0, R.volume)
+ amount = clamp(amount, 0, R.volume)
R.volume -= amount
update_total()
if(!safety)//So it does not handle reactions when it need not to
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index e08b526911..6da592a56c 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -574,9 +574,7 @@
/datum/reagent/consumable/ethanol/alexander,
/datum/reagent/consumable/clownstears,
/datum/reagent/toxin/minttoxin,
- /datum/reagent/consumable/ethanol/atomicbomb,
- /datum/reagent/drug/aphrodisiac,
- /datum/reagent/drug/aphrodisiacplus
+ /datum/reagent/consumable/ethanol/atomicbomb
)
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index f0d6bab381..dfc31279eb 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -151,7 +151,7 @@
target = text2num(target)
. = TRUE
if(.)
- target_temperature = CLAMP(target, 0, 1000)
+ target_temperature = clamp(target, 0, 1000)
if("eject")
on = FALSE
replace_beaker(usr)
diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index 5eb5b94de9..a85ac8b085 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -51,7 +51,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
var/inverse_chem // What chem is metabolised when purity is below inverse_chem_val, this shouldn't be made, but if it does, well, I guess I'll know about it.
var/metabolizing = FALSE
var/chemical_flags // See fermi/readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_ONLYINVERSE, REAGENT_ONMOBMERGE, REAGENT_INVISIBLE, REAGENT_FORCEONNEW, REAGENT_SNEAKYNAME
- var/value = 0 //How much does it sell for in cargo?
+ var/value = REAGENT_VALUE_NONE //How much does it sell for in cargo?
/datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references
. = ..()
@@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
return 0
if(method == VAPOR) //smoke, foam, spray
if(M.reagents)
- var/modifier = CLAMP((1 - touch_protection), 0, 1)
+ var/modifier = clamp((1 - touch_protection), 0, 1)
var/amount = round(reac_volume*modifier, 0.1)
if(amount >= 0.5)
M.reagents.add_reagent(type, amount)
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index abe5c7de46..464557f617 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -14,6 +14,7 @@
taste_description = "alcohol"
var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning
pH = 7.33
+ value = REAGENT_VALUE_VERY_COMMON //don't bother tweaking all drinks values, way too many can easily be done roundstart or with an upgraded dispenser.
/*
Boozepwr Chart
@@ -88,7 +89,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of beer"
glass_desc = "A freezing pint of beer."
pH = 4
- value = 0.1
/datum/reagent/consumable/ethanol/beer/light
name = "Light Beer"
@@ -98,7 +98,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of light beer"
glass_desc = "A freezing pint of watery light beer."
pH = 5
- value = 0.3
/datum/reagent/consumable/ethanol/beer/green
name = "Green Beer"
@@ -109,7 +108,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of green beer"
glass_desc = "A freezing pint of green beer. Festive."
pH = 6
- value = 0.3
/datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/carbon/M)
if(M.color != color)
@@ -129,7 +127,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "DAMN, THIS THING LOOKS ROBUST!"
shot_glass_icon_state = "shotglasscream"
pH = 6
- value = 0.1
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M)
@@ -152,7 +149,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
shot_glass_icon_state = "shotglassbrown"
pH = 4.5
- value = 0.1
/datum/reagent/consumable/ethanol/thirteenloko
name = "Thirteen Loko"
@@ -167,7 +163,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "thirteen_loko_glass"
glass_name = "glass of Thirteen Loko"
glass_desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass."
- value = 0.3
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(0,M.drowsyness-7)
@@ -229,7 +224,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "The glass contain wodka. Xynta."
shot_glass_icon_state = "shotglassclear"
pH = 8.1
- value = 0.1
/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M)
M.radiation = max(M.radiation-2,0)
@@ -245,7 +239,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "glass_brown"
glass_name = "glass of bilk"
glass_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
- value = 0.5
/datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/M)
if(M.getBruteLoss() && prob(10))
@@ -264,7 +257,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Three Mile Island Ice Tea"
glass_desc = "A glass of this is sure to prevent a meltdown."
pH = 3.5
- value = 1
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/M)
M.set_drugginess(50)
@@ -280,7 +273,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of gin"
glass_desc = "A crystal clear glass of Griffeater gin."
pH = 6.9
- value = 0.1
/datum/reagent/consumable/ethanol/rum
name = "Rum"
@@ -293,7 +285,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Now you want to Pray for a pirate suit, don't you?"
shot_glass_icon_state = "shotglassbrown"
pH = 6.5
- value = 0.1
/datum/reagent/consumable/ethanol/tequila
name = "Tequila"
@@ -306,7 +297,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Now all that's missing is the weird colored shades!"
shot_glass_icon_state = "shotglassgold"
pH = 4
- value = 0.1
/datum/reagent/consumable/ethanol/vermouth
name = "Vermouth"
@@ -319,7 +309,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "You wonder why you're even drinking this straight."
shot_glass_icon_state = "shotglassclear"
pH = 3.25
- value = 0.1
/datum/reagent/consumable/ethanol/wine
name = "Wine"
@@ -332,7 +321,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "A very classy looking drink."
shot_glass_icon_state = "shotglassred"
pH = 3.45
- value = 0.1
/datum/reagent/consumable/ethanol/lizardwine
name = "Lizard wine"
@@ -342,7 +330,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
quality = DRINK_FANTASTIC
taste_description = "scaley sweetness"
pH = 3
- value = 2
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/consumable/ethanol/grappa
name = "Grappa"
@@ -354,7 +342,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of grappa"
glass_desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking."
pH = 3.5
- value = 0.1
/datum/reagent/consumable/ethanol/cognac
name = "Cognac"
@@ -367,7 +354,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Damn, you feel like some kind of French aristocrat just by holding this."
shot_glass_icon_state = "shotglassbrown"
pH = 3.5
- value = 0.1
/datum/reagent/consumable/ethanol/absinthe
name = "Absinthe"
@@ -379,7 +365,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of absinthe"
glass_desc = "It's as strong as it smells."
shot_glass_icon_state = "shotglassgreen"
- value = 0.1
/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/M)
if(prob(10) && !HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
@@ -395,6 +380,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "glass_brown2"
glass_name = "Hooch"
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
if(M.mind && M.mind.assigned_role == "Assistant")
@@ -412,7 +398,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of ale"
glass_desc = "A freezing pint of delicious Ale."
pH = 4.5
- value = 0.1
/datum/reagent/consumable/ethanol/goldschlager
name = "Goldschlager"
@@ -425,7 +410,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "glass of goldschlager"
glass_desc = "100% proof that teen girls will drink anything with gold in it."
shot_glass_icon_state = "shotglassgold"
- value = 0.5
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/patron
name = "Patron"
@@ -439,7 +424,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Drinking patron in the bar, with all the subpar ladies."
shot_glass_icon_state = "shotglassclear"
pH = 4.5
- value = 0.1
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/gintonic
name = "Gin and Tonic"
@@ -452,7 +437,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Gin and Tonic"
glass_desc = "A mild but still great cocktail. Drink up, like a true Englishman."
pH = 3
- value = 0.5
/datum/reagent/consumable/ethanol/rum_coke
name = "Rum and Coke"
@@ -465,7 +449,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Rum and Coke"
glass_desc = "The classic go-to of space-fratboys."
pH = 4
- value = 1
/datum/reagent/consumable/ethanol/cuba_libre
name = "Cuba Libre"
@@ -477,8 +460,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "cubalibreglass"
glass_name = "Cuba Libre"
glass_desc = "A classic mix of rum, cola, and lime. A favorite of revolutionaries everywhere!"
- value = 0.5
-
/datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/carbon/M)
if(M.mind && M.mind.has_antag_datum(/datum/antagonist/rev)) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries.
@@ -499,7 +480,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "whiskeycolaglass"
glass_name = "whiskey cola"
glass_desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
- value = 0.5
/datum/reagent/consumable/ethanol/martini
name = "Classic Martini"
@@ -511,7 +491,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "martiniglass"
glass_name = "Classic Martini"
glass_desc = "Damn, the bartender even stirred it, not shook it."
- value = 1
/datum/reagent/consumable/ethanol/vodkamartini
name = "Vodka Martini"
@@ -523,7 +502,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "martiniglass"
glass_name = "Vodka martini"
glass_desc ="A bastardisation of the classic martini. Still great."
- value = 1
/datum/reagent/consumable/ethanol/white_russian
@@ -536,7 +514,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "whiterussianglass"
glass_name = "White Russian"
glass_desc = "A very nice looking drink. But that's just, like, your opinion, man."
- value = 1
/datum/reagent/consumable/ethanol/screwdrivercocktail
name = "Screwdriver"
@@ -548,7 +525,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "screwdriverglass"
glass_name = "Screwdriver"
glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
- value = 1
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M)
if(M.mind && (M.mind.assigned_role in list("Station Engineer", "Atmospheric Technician", "Chief Engineer"))) //Engineers lose radiation poisoning at a massive rate.
@@ -564,7 +540,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "booger"
glass_name = "Booger"
glass_desc = "Ewww..."
- value = 0.3
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/bloody_mary
name = "Bloody Mary"
@@ -576,7 +552,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "bloodymaryglass"
glass_name = "Bloody Mary"
glass_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
- value = 1.3
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C)
if(AmBloodsucker(C))
@@ -595,7 +570,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "bravebullglass"
glass_name = "Brave Bull"
glass_desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up."
- value = 2
var/tough_text
/datum/reagent/consumable/ethanol/brave_bull/on_mob_metabolize(mob/living/M)
@@ -619,7 +593,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "tequilasunriseglass"
glass_name = "tequila Sunrise"
glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
- value = 2
var/obj/effect/light_holder
/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_metabolize(mob/living/M)
@@ -649,7 +622,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Toxins Special"
glass_desc = "Whoah, this thing is on FIRE!"
shot_glass_icon_state = "toxinsspecialglass"
- value = 2
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M)
M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp.
@@ -668,7 +641,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
pH = 2
overdose_threshold = 40
- value = 3
var/datum/brain_trauma/special/beepsky/B
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_metabolize(mob/living/carbon/M)
@@ -709,7 +681,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "irishcreamglass"
glass_name = "Irish Cream"
glass_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
- value = 1
/datum/reagent/consumable/ethanol/manly_dorf
name = "The Manly Dorf"
@@ -721,14 +692,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "manlydorfglass"
glass_name = "The Manly Dorf"
glass_desc = "A manly concoction made from Ale and Beer. Intended for true men only."
- value = 2
var/dorf_mode
/datum/reagent/consumable/ethanol/manly_dorf/on_mob_metabolize(mob/living/M)
var/real_dorf = isdwarf(M) //_species(H, /datum/species/dwarf)
if(ishuman(M))
var/mob/living/carbon/human/H = M
- if(H.dna.check_mutation(DWARFISM) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE) || real_dorf)
+ if(HAS_TRAIT(H, TRAIT_DWARF) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE || real_dorf))
to_chat(H, "Now THAT is MANLY! ")
if(real_dorf)
boozepwr = 100 // Don't want dwarves to die because of a low booze power
@@ -752,7 +722,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "longislandicedteaglass"
glass_name = "Long Island Iced Tea"
glass_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
- value = 1
/datum/reagent/consumable/ethanol/moonshine
name = "Moonshine"
@@ -763,7 +732,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "glass_clear"
glass_name = "Moonshine"
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
- value = 2
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/b52
name = "B-52"
@@ -776,7 +745,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "B-52"
glass_desc = "Kahlua, Irish Cream, and cognac. You will get bombed."
shot_glass_icon_state = "b52glass"
- value = 5.2
/datum/reagent/consumable/ethanol/b52/on_mob_metabolize(mob/living/M)
playsound(M, 'sound/effects/explosion_distant.ogg', 100, FALSE)
@@ -791,7 +759,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "irishcoffeeglass"
glass_name = "Irish Coffee"
glass_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
- value = 2
/datum/reagent/consumable/ethanol/margarita
name = "Margarita"
@@ -803,7 +770,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "margaritaglass"
glass_name = "Margarita"
glass_desc = "On the rocks with salt on the rim. Arriba~!"
- value = 2
/datum/reagent/consumable/ethanol/black_russian
name = "Black Russian"
@@ -815,7 +781,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "blackrussianglass"
glass_name = "Black Russian"
glass_desc = "For the lactose-intolerant. Still as classy as a White Russian."
- value = 3
/datum/reagent/consumable/ethanol/manhattan
@@ -828,7 +793,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "manhattanglass"
glass_name = "Manhattan"
glass_desc = "The Detective's undercover drink of choice. He never could stomach gin..."
- value = 3
/datum/reagent/consumable/ethanol/manhattan_proj
@@ -841,7 +805,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "proj_manhattanglass"
glass_name = "Manhattan Project"
glass_desc = "A scientist's drink of choice, for thinking how to blow up the station."
- value = 6
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/carbon/M)
@@ -858,7 +822,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "whiskeysodaglass2"
glass_name = "whiskey soda"
glass_desc = "Ultimate refreshment."
- value = 1
/datum/reagent/consumable/ethanol/antifreeze
name = "Anti-freeze"
@@ -870,7 +833,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "antifreeze"
glass_name = "Anti-freeze"
glass_desc = "The ultimate refreshment."
- value = 3
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp.
@@ -886,7 +848,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "b&p"
glass_name = "Barefoot"
glass_desc = "Barefoot and pregnant."
- value = 4
/datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/carbon/M)
if(ishuman(M)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes.
@@ -906,7 +867,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "snowwhite"
glass_name = "Snow White"
glass_desc = "A cold refreshment."
- value = 1
/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon.
name = "Demon's Blood"
@@ -918,7 +878,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "demonsblood"
glass_name = "Demons Blood"
glass_desc = "Just looking at this thing makes the hair at the back of your neck stand up."
- value = 2
/datum/reagent/consumable/ethanol/devilskiss //If eaten by a slaughter demon, the demon will regret it.
name = "Devil's Kiss"
@@ -930,7 +889,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "devilskiss"
glass_name = "Devils Kiss"
glass_desc = "Creepy time!"
- value = 2
/datum/reagent/consumable/ethanol/vodkatonic
name = "Vodka and Tonic"
@@ -942,7 +900,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "vodkatonicglass"
glass_name = "vodka and tonic"
glass_desc = "For when a gin and tonic isn't Russian enough."
- value = 1
/datum/reagent/consumable/ethanol/ginfizz
name = "Gin Fizz"
@@ -954,7 +911,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "ginfizzglass"
glass_name = "gin fizz"
glass_desc = "Refreshingly lemony, deliciously dry."
- value = 1
/datum/reagent/consumable/ethanol/bahama_mama
name = "Bahama Mama"
@@ -966,7 +922,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "bahama_mama"
glass_name = "Bahama Mama"
glass_desc = "A tropical cocktail with a complex blend of flavors."
- value = 2
/datum/reagent/consumable/ethanol/singulo
name = "Singulo"
@@ -978,7 +933,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "singulo"
glass_name = "Singulo"
glass_desc = "A blue-space beverage."
- value = 4
/datum/reagent/consumable/ethanol/sbiten
name = "Sbiten"
@@ -990,7 +944,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "sbitenglass"
glass_name = "Sbiten"
glass_desc = "A spicy mix of Vodka and Spice. Very hot."
- value = 2
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT, 0 ,BODYTEMP_HEAT_DAMAGE_LIMIT) //310.15 is the normal bodytemp.
@@ -1006,7 +959,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "red_meadglass"
glass_name = "Red Mead"
glass_desc = "A True Viking's Beverage, though its color is strange."
- value = 5
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/mead
name = "Mead"
@@ -1019,7 +972,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "meadglass"
glass_name = "Mead"
glass_desc = "A Viking's Beverage, though a cheap one."
- value = 1
/datum/reagent/consumable/ethanol/iced_beer
name = "Iced Beer"
@@ -1030,7 +982,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "iced_beerglass"
glass_name = "iced beer"
glass_desc = "A beer so frosty, the air around it freezes."
- value = 1
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp.
@@ -1045,7 +996,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "grogglass"
glass_name = "Grog"
glass_desc = "A fine and cepa drink for Space."
- value = 2.1
/datum/reagent/consumable/ethanol/aloe
name = "Aloe"
@@ -1057,7 +1007,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "aloe"
glass_name = "Aloe"
glass_desc = "Very, very, very good."
- value = 1
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/andalusia
name = "Andalusia"
@@ -1069,7 +1019,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "andalusia"
glass_name = "Andalusia"
glass_desc = "A nice, strangely named drink."
- value = 1
/datum/reagent/consumable/ethanol/alliescocktail
name = "Allies Cocktail"
@@ -1081,7 +1030,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "alliescocktail"
glass_name = "Allies cocktail"
glass_desc = "A drink made from your allies."
- value = 4
/datum/reagent/consumable/ethanol/acid_spit
name = "Acid Spit"
@@ -1093,7 +1041,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "acidspitglass"
glass_name = "Acid Spit"
glass_desc = "A drink from Nanotrasen. Made from live aliens."
- value = 3
/datum/reagent/consumable/ethanol/amasec
name = "Amasec"
@@ -1105,7 +1052,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "amasecglass"
glass_name = "Amasec"
glass_desc = "Always handy before COMBAT!!!"
- value = 2
/datum/reagent/consumable/ethanol/changelingsting
name = "Changeling Sting"
@@ -1117,14 +1063,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "changelingsting"
glass_name = "Changeling Sting"
glass_desc = "A stingy drink."
- value = 1.5
/datum/reagent/consumable/ethanol/changelingsting/on_mob_life(mob/living/carbon/M)
if(M.mind) //Changeling Sting assists in the recharging of changeling chemicals.
var/datum/antagonist/changeling/changeling = M.mind.has_antag_datum(/datum/antagonist/changeling)
if(changeling)
changeling.chem_charges += metabolization_rate
- changeling.chem_charges = CLAMP(changeling.chem_charges, 0, changeling.chem_storage)
+ changeling.chem_charges = clamp(changeling.chem_charges, 0, changeling.chem_storage)
return ..()
/datum/reagent/consumable/ethanol/irishcarbomb
@@ -1137,7 +1082,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "irishcarbomb"
glass_name = "Irish Car Bomb"
glass_desc = "An Irish car bomb."
- value = 5
/datum/reagent/consumable/ethanol/syndicatebomb
name = "Syndicate Bomb"
@@ -1149,7 +1093,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "syndicatebomb"
glass_name = "Syndicate Bomb"
glass_desc = "A syndicate bomb."
- value = 2
/datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/carbon/M)
if(prob(5))
@@ -1177,7 +1120,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "erikasurprise"
glass_name = "Erika Surprise"
glass_desc = "The surprise is, it's green!"
- value = 4
/datum/reagent/consumable/ethanol/driestmartini
name = "Driest Martini"
@@ -1190,7 +1132,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "driestmartiniglass"
glass_name = "Driest Martini"
glass_desc = "Only for the experienced. You think you see sand floating in the glass."
- value = 5
/datum/reagent/consumable/ethanol/bananahonk
name = "Banana Honk"
@@ -1203,7 +1144,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "bananahonkglass"
glass_name = "Banana Honk"
glass_desc = "A drink from Clown Heaven."
- value = 8
/datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/carbon/M)
if((ishuman(M) && M.job == "Clown") || ismonkey(M))
@@ -1222,7 +1162,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "silencerglass"
glass_name = "Silencer"
glass_desc = "A drink from Mime Heaven."
- value = 2
/datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/carbon/M)
if(ishuman(M) && M.job == "Mime")
@@ -1240,7 +1179,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "drunkenblumpkin"
glass_name = "Drunken Blumpkin"
glass_desc = "A drink for the drunks."
- value = 3
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/whiskey_sour //Requested since we had whiskey cola and soda but not sour.
name = "Whiskey Sour"
@@ -1252,7 +1191,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "whiskey_sour"
glass_name = "whiskey sour"
glass_desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying."
- value = 2
/datum/reagent/consumable/ethanol/hcider
name = "Hard Cider"
@@ -1265,7 +1203,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "hard cider"
glass_desc = "Tastes like autumn... no wait, fall!"
shot_glass_icon_state = "shotglassbrown"
- value = 3
/datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber!
name = "Fetching Fizz"
@@ -1278,7 +1215,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "fetching_fizz"
glass_name = "Fetching Fizz"
glass_desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste."
- value = 2
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/carbon/M)
for(var/obj/item/stack/ore/O in orange(3, M))
@@ -1297,7 +1234,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "hearty_punch"
glass_name = "Hearty Punch"
glass_desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead."
- value = 1
+ value = REAGENT_VALUE_RARE //considering the low recipe yield.
/datum/reagent/consumable/ethanol/hearty_punch/on_mob_life(mob/living/carbon/M)
if(M.health <= 0)
@@ -1318,8 +1255,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "glass_brown2"
glass_name = "Bacchus' Blessing"
glass_desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?"
- value = 8
-
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/ethanol/atomicbomb
name = "Atomic Bomb"
@@ -1331,7 +1267,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "atomicbombglass"
glass_name = "Atomic Bomb"
glass_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
- value = 3.56
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/carbon/M)
M.set_drugginess(50)
@@ -1360,7 +1296,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "gargleblasterglass"
glass_name = "Pan-Galactic Gargle Blaster"
glass_desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick."
- value = 5
/datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/carbon/M)
M.dizziness +=1.5
@@ -1393,7 +1328,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
impure_chem = /datum/reagent/consumable/ethanol/neuroweak
inverse_chem_val = 0.5 //Clear conversion
inverse_chem = /datum/reagent/consumable/ethanol/neuroweak
- value = 4
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/neurotoxin/proc/pickt()
return (pick(TRAIT_PARALYSIS_L_ARM,TRAIT_PARALYSIS_R_ARM,TRAIT_PARALYSIS_R_LEG,TRAIT_PARALYSIS_L_LEG))
@@ -1434,7 +1369,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
description = "A mostly safe alcoholic drink for the true daredevils. Counteracts Neurotoxins."
boozepwr = 60
pH = 8
- value = 3
/datum/reagent/consumable/ethanol/neuroweak/on_mob_life(mob/living/carbon/M)
if(holder.has_reagent(/datum/reagent/consumable/ethanol/neurotoxin))
@@ -1460,7 +1394,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "hippiesdelightglass"
glass_name = "Hippie's Delight"
glass_desc = "A drink enjoyed by people during the 1960's."
- value = 1.96
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/M)
M.slurring = max(M.slurring,50)
@@ -1504,8 +1438,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "nog3"
glass_name = "eggnog"
glass_desc = "The traditional way to get absolutely hammered at a Christmas party."
- value = 4
-
/datum/reagent/consumable/ethanol/narsour
name = "Nar'Sour"
@@ -1517,7 +1449,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "narsour"
glass_name = "Nar'Sour"
glass_desc = "A new hit cocktail inspired by THE ARM Breweries will have you shouting Fuu ma'jin in no time!"
- value = 6.66
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/narsour/on_mob_life(mob/living/carbon/M)
M.cultslurring = min(M.cultslurring + 3, 3)
@@ -1534,7 +1466,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "cogchamp"
glass_name = "CogChamp"
glass_desc = "Not even Ratvar's Four Generals could withstand this! Qevax Jryy!"
- value = 8.13
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/cogchamp/on_mob_life(mob/living/carbon/M)
M.clockcultslurring = min(M.clockcultslurring + 3, 3)
@@ -1550,7 +1482,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "glass_orange"
glass_name = "Triple Sec"
glass_desc = "A glass of straight Triple Sec."
- value = 1.5
/datum/reagent/consumable/ethanol/creme_de_menthe
name = "Creme de Menthe"
@@ -1561,7 +1492,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "glass_green"
glass_name = "Creme de Menthe"
glass_desc = "You can almost feel the first breath of spring just looking at it."
- value = 2
/datum/reagent/consumable/ethanol/creme_de_cacao
name = "Creme de Cacao"
@@ -1572,7 +1502,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "glass_brown"
glass_name = "Creme de Cacao"
glass_desc = "A million hazing lawsuits and alcohol poisonings have started with this humble ingredient."
- value = 1
/datum/reagent/consumable/ethanol/creme_de_coconut
name = "Creme de Coconut"
@@ -1594,7 +1523,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "quadruple_sec"
glass_name = "Quadruple Sec"
glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though."
- value = 3.04
/datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/M)
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM)) //Securidrink in line with the screwderiver for engineers or nothing for mimes.
@@ -1613,7 +1541,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "quintuple_sec"
glass_name = "Quintuple Sec"
glass_desc = "Now you are become law, destroyer of clowns."
- value = 4.01
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/M)
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM)) //Securidrink in line with the screwderiver for engineers or nothing for mimes but STRONG..
@@ -1657,7 +1585,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "grasshopper"
glass_name = "Grasshopper"
glass_desc = "You weren't aware edible beverages could be that green."
- value = 1
/datum/reagent/consumable/ethanol/stinger
name = "Stinger"
@@ -1669,7 +1596,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "stinger"
glass_name = "Stinger"
glass_desc = "You wonder what would happen if you pointed this at a heat source..."
- value = 1
/datum/reagent/consumable/ethanol/bastion_bourbon
name = "Bastion Bourbon"
@@ -1684,7 +1610,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "If you're feeling low, count on the buttery flavor of our own bastion bourbon."
shot_glass_icon_state = "shotglassgreen"
pH = 4
- value = 8
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_metabolize(mob/living/L)
var/heal_points = 10
@@ -1721,7 +1647,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Squirt Cider"
glass_desc = "Squirt cider will toughen you right up. Too bad about the musty aftertaste."
shot_glass_icon_state = "shotglassgreen"
- value = 1
/datum/reagent/consumable/ethanol/squirt_cider/on_mob_life(mob/living/carbon/M)
M.satiety += 5 //for context, vitamins give 30 satiety per tick
@@ -1738,7 +1663,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "fringe_weaver"
glass_name = "Fringe Weaver"
glass_desc = "It's a wonder it doesn't spill out of the glass."
- value = 1
/datum/reagent/consumable/ethanol/sugar_rush
name = "Sugar Rush"
@@ -1751,7 +1675,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "sugar_rush"
glass_name = "Sugar Rush"
glass_desc = "If you can't mix a Sugar Rush, you can't tend bar."
- value = 1
/datum/reagent/consumable/ethanol/sugar_rush/on_mob_life(mob/living/carbon/M)
M.satiety -= 10 //junky as hell! a whole glass will keep you from being able to eat junk food
@@ -1768,7 +1691,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "crevice_spike"
glass_name = "Crevice Spike"
glass_desc = "It'll either knock the drunkenness out of you or knock you out cold. Both, probably."
- value = 1
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/crevice_spike/on_mob_metabolize(mob/living/L) //damage only applies when drink first enters system and won't again until drink metabolizes out
L.adjustBruteLoss(3 * min(5,volume)) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15
@@ -1782,7 +1705,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "sakecup"
glass_name = "cup of sake"
glass_desc = "A traditional cup of sake."
- value = 0.1
/datum/reagent/consumable/ethanol/peppermint_patty
name = "Peppermint Patty"
@@ -1794,7 +1716,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "peppermint_patty"
glass_name = "Peppermint Patty"
glass_desc = "A boozy minty hot cocoa that warms your belly on a cold night."
- value = 2
/datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/M)
M.apply_status_effect(/datum/status_effect/throat_soothed)
@@ -1812,7 +1733,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Alexander"
glass_desc = "A creamy, indulgent delight that is stronger than it seems."
var/obj/item/shield/mighty_shield
- value = 1
/datum/reagent/consumable/ethanol/alexander/on_mob_metabolize(mob/living/L)
if(ishuman(L))
@@ -1844,7 +1764,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "sidecar"
glass_name = "Sidecar"
glass_desc = "The one ride you'll gladly give up the wheel for."
- value = 1
/datum/reagent/consumable/ethanol/between_the_sheets
name = "Between the Sheets"
@@ -1856,7 +1775,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "between_the_sheets"
glass_name = "Between the Sheets"
glass_desc = "The only drink that comes with a label reminding you of Nanotrasen's zero-tolerance promiscuity policy."
- value = 2
/datum/reagent/consumable/ethanol/between_the_sheets/on_mob_life(mob/living/L)
..()
@@ -1881,7 +1799,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "kamikaze"
glass_name = "Kamikaze"
glass_desc = "Divinely windy."
- value = 1
/datum/reagent/consumable/ethanol/mojito
name = "Mojito"
@@ -1893,7 +1810,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "mojito"
glass_name = "Mojito"
glass_desc = "A drink that looks as refreshing as it tastes."
- value = 1
/datum/reagent/consumable/ethanol/moscow_mule
name = "Moscow Mule"
@@ -1914,7 +1830,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
taste_description = "utter bitterness"
glass_name = "glass of fernet"
glass_desc = "A glass of pure Fernet. Only an absolute madman would drink this alone."
- value = 0.1
/datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
@@ -1933,7 +1848,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "godlyblend"
glass_name = "glass of fernet cola"
glass_desc = "A sawed-off cola bottle filled with Fernet Cola. Nothing better after eating like a lardass."
- value = 1
/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
@@ -1943,7 +1857,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
return ..()
/datum/reagent/consumable/ethanol/fanciulli
-
name = "Fanciulli"
description = "What if the Manhattan coctail ACTUALLY used a bitter herb liquour? Helps you sobers up." //also causes a bit of stamina damage to symbolize the afterdrink lazyness
color = "#CA933F" // rgb: 202, 147, 63
@@ -1953,7 +1866,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "fanciulli"
glass_name = "glass of fanciulli"
glass_desc = "A glass of Fanciulli. It's just Manhattan with Fernet."
- value = 1
/datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/M)
M.nutrition = max(M.nutrition - 5, 0)
@@ -1966,7 +1878,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
. = TRUE
..()
-
/datum/reagent/consumable/ethanol/branca_menta
name = "Branca Menta"
description = "A refreshing mixture of bitter Fernet with mint creme liquour."
@@ -1977,7 +1888,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state= "minted_fernet"
glass_name = "glass of branca menta"
glass_desc = "A glass of Branca Menta, perfect for those lazy and hot sunday summer afternoons." //Get lazy literally by drinking this
- value = 1
/datum/reagent/consumable/ethanol/branca_menta/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C)
@@ -2000,7 +1910,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "blank_paper"
glass_name = "glass of blank paper"
glass_desc = "A fizzy cocktail for those looking to start fresh."
- value = 1
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/blank_paper/on_mob_life(mob/living/carbon/M)
if(ishuman(M) && M.job == "Mime")
@@ -2017,7 +1927,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "champagne_glass"
glass_name = "Champagne"
glass_desc = "The flute clearly displays the slowly rising bubbles."
- value = 1
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/wizz_fizz
name = "Wizz Fizz"
@@ -2029,7 +1939,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "wizz_fizz"
glass_name = "Wizz Fizz"
glass_desc = "The glass bubbles and froths with an almost magical intensity."
- value = 1
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/wizz_fizz/on_mob_life(mob/living/carbon/M)
//A healing drink similar to Quadruple Sec, Ling Stings, and Screwdrivers for the Wizznerds; the check is consistent with the changeling sting
@@ -2049,7 +1959,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "bug_spray"
glass_name = "Bug Spray"
glass_desc = "Your eyes begin to water as the sting of alcohol reaches them."
- value = 1
/datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M)
//Bugs should not drink Bug spray.
@@ -2071,7 +1980,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "applejack_glass"
glass_name = "Applejack"
glass_desc = "You feel like you could drink this all neight."
- value = 0.1
/datum/reagent/consumable/ethanol/jack_rose
name = "Jack Rose"
@@ -2083,7 +1991,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "jack_rose"
glass_name = "Jack Rose"
glass_desc = "Enough of these, and you really will start to suppose your toeses are roses."
- value = 1
/datum/reagent/consumable/ethanol/turbo
name = "Turbo"
@@ -2095,7 +2002,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "turbo"
glass_name = "Turbo"
glass_desc = "A turbulent cocktail for outlaw hoverbikers."
- value = 0.3
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/ethanol/turbo/on_mob_life(mob/living/carbon/M)
if(prob(4))
@@ -2113,7 +2020,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "old_timer"
glass_name = "Old Timer"
glass_desc = "WARNING! May cause premature aging!"
- value = 2
+ value = REAGENT_VALUE_UNCOMMON //Parsnip juice? Really? lol
/datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/M)
if(prob(20))
@@ -2146,7 +2053,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "rubberneck"
glass_name = "Rubberneck"
glass_desc = "A popular drink amongst those adhering to an all synthetic diet."
- value = 1
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/duplex
name = "Duplex"
@@ -2158,7 +2065,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "duplex"
glass_name = "Duplex"
glass_desc = "To imbibe one component separately from the other is consider a great faux pas."
- value = 1
/datum/reagent/consumable/ethanol/trappist
name = "Trappist Beer"
@@ -2170,7 +2076,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "trappistglass"
glass_name = "Trappist Beer"
glass_desc = "boozy Catholicism in a glass."
- value = 1
/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/M)
if(M.mind.isholy)
@@ -2188,8 +2093,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "blazaamglass"
glass_name = "Blazaam"
glass_desc = "The glass seems to be sliding between realities. Doubles as a Berenstain remover."
+ value = REAGENT_VALUE_UNCOMMON
var/stored_teleports = 0
- value = 4
/datum/reagent/consumable/ethanol/blazaam/on_mob_life(mob/living/carbon/M)
if(M.drunkenness > 40)
@@ -2211,7 +2116,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "planet_cracker"
glass_name = "Planet Cracker"
glass_desc = "Although historians believe the drink was originally created to commemorate the end of an important conflict in man's past, its origins have largely been forgotten and it is today seen more as a general symbol of human supremacy."
- value = 1
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/consumable/ethanol/mauna_loa
name = "Mauna Loa"
@@ -2223,6 +2128,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "mauna_loa"
glass_name = "Mauna Loa"
glass_desc = "Lavaland in a drink... mug... volcano... thing."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/mauna_loa/on_mob_life(mob/living/carbon/M)
// Heats the user up while the reagent is in the body. Occasionally makes you burst into flames.
@@ -2236,13 +2142,14 @@ All effects don't start immediately, but rather get worse over time; the rate is
name = "Commander and Chief"
description = "A cocktail for the captain on the go."
color = "#ffffc9"
+ can_synth = FALSE
boozepwr = 50
quality = DRINK_FANTASTIC
taste_description = "duty and responsibility"
glass_icon_state = "commander_and_chief"
glass_name = "Commander and Chief"
glass_desc = "The gems of this majestic chalice represent the departments and their Heads."
- value = 10
+ value = REAGENT_VALUE_AMAZING
/datum/reagent/consumable/ethanol/commander_and_chief/on_mob_life(mob/living/carbon/M)
if(M.mind && HAS_TRAIT(M.mind, TRAIT_CAPTAIN_METABOLISM))
@@ -2281,6 +2188,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "hellfire"
glass_name = "Hellfire"
glass_desc = "An amber colored drink that isn't quite as hot as it looks."
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/hellfire/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(30 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 30)
@@ -2296,6 +2204,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "sins_delight"
glass_name = "Sin's Delight"
glass_desc = "You can smell the seven sins rolling off the top of the glass."
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/ethanol/strawberry_daiquiri
name = "Strawberry Daiquiri"
@@ -2328,6 +2237,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "miami_vice"
glass_name = "Miami Vice"
glass_desc = "Strawberries and coconut, like yin and yang."
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/ethanol/malibu_sunset
name = "Malibu Sunset"
@@ -2350,6 +2260,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "hotlime_miami"
glass_name = "Hotlime Miami"
glass_desc = "This looks very aesthetically pleasing."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ethanol/hotlime_miami/on_mob_life(mob/living/carbon/M)
M.set_drugginess(50)
@@ -2580,7 +2491,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
var/list/names = list("null fruit" = 1) //Names of the fruits used. Associative list where name is key, value is the percentage of that fruit.
var/list/tastes = list("bad coding" = 1) //List of tastes. See above.
pH = 4
- value = 4
/datum/reagent/consumable/ethanol/fruit_wine/on_new(list/data)
names = data["names"]
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index ebbce61c57..62aea28009 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -165,6 +165,7 @@
metabolization_rate = INFINITY
color = "#FF4DD2"
taste_description = "laughter"
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/laughter/on_mob_life(mob/living/carbon/M)
M.emote("laugh")
@@ -177,6 +178,7 @@
metabolization_rate = 1.5 * REAGENTS_METABOLISM
color = "#FF4DD2"
taste_description = "laughter"
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/superlaughter/on_mob_life(mob/living/carbon/M)
if(prob(30))
@@ -210,6 +212,7 @@
glass_name = "glass of milk"
glass_desc = "White and nutritious goodness!"
pH = 6.5
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M)
if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER))
@@ -231,6 +234,7 @@
glass_icon_state = "glass_white"
glass_name = "glass of soy milk"
glass_desc = "White and nutritious soy goodness!"
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/M)
if(M.getBruteLoss() && prob(20))
@@ -324,17 +328,18 @@
glass_icon_state = "lemonpitcher"
glass_name = "pitcher of lemonade"
glass_desc = "This drink leaves you feeling nostalgic for some reason."
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/tea/arnold_palmer
name = "Arnold Palmer"
description = "Encourages the patient to go golfing."
color = "#FFB766"
quality = DRINK_NICE
- nutriment_factor = 2
taste_description = "bitter tea"
glass_icon_state = "arnold_palmer"
glass_name = "Arnold Palmer"
glass_desc = "You feel like taking a few golf swings after a few swigs of this."
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/carbon/M)
if(prob(5))
@@ -384,6 +389,7 @@
/datum/reagent/consumable/space_cola
name = "Cola"
description = "A refreshing beverage."
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#100800" // rgb: 16, 8, 0
taste_description = "cola"
glass_icon_state = "glass_brown"
@@ -404,6 +410,7 @@
glass_icon_state = "nuka_colaglass"
glass_name = "glass of Nuka Cola"
glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M)
M.Jitter(20)
@@ -418,6 +425,7 @@
/datum/reagent/consumable/spacemountainwind
name = "SM Wind"
description = "Blows right through you like a space wind."
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#102000" // rgb: 16, 32, 0
taste_description = "sweet citrus soda"
glass_icon_state = "Space_mountain_wind_glass"
@@ -435,6 +443,7 @@
/datum/reagent/consumable/dr_gibb
name = "Dr. Gibb"
description = "A delicious blend of 42 different flavours."
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#102000" // rgb: 16, 32, 0
taste_description = "cherry soda" // FALSE ADVERTISING
glass_icon_state = "dr_gibb_glass"
@@ -449,6 +458,7 @@
/datum/reagent/consumable/space_up
name = "Space-Up"
description = "Tastes like a hull breach in your mouth."
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#00FF00" // rgb: 0, 255, 0
taste_description = "cherry soda"
glass_icon_state = "space-up_glass"
@@ -463,6 +473,7 @@
/datum/reagent/consumable/lemon_lime
name = "Lemon Lime"
description = "A tangy substance made of 0.5% natural citrus!"
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#8CFF00" // rgb: 135, 255, 0
taste_description = "tangy lime and lemon soda"
glass_icon_state = "glass_yellow"
@@ -476,6 +487,7 @@
/datum/reagent/consumable/pwr_game
name = "Pwr Game"
description = "The only drink with the PWR that true gamers crave."
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#9385bf" // rgb: 58, 52, 75
taste_description = "sweet and salty tang"
glass_icon_state = "glass_red"
@@ -489,6 +501,7 @@
/datum/reagent/consumable/shamblers
name = "Shambler's Juice"
description = "~Shake me up some of that Shambler's Juice!~"
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#f00060" // rgb: 94, 0, 38
taste_description = "carbonated metallic soda"
glass_icon_state = "glass_red"
@@ -502,6 +515,7 @@
/datum/reagent/consumable/buzz_fuzz
name = "Buzz Fuzz"
description = "~A Hive of Flavour!~ NOTICE: Addicting."
+ nutriment_factor = 0
addiction_threshold = 26 //A can and a sip
color = "#8CFF00" // rgb: 135, 255, 0
taste_description = "carbonated honey and pollen"
@@ -552,6 +566,7 @@
glass_icon_state = "grey_bull_glass"
glass_name = "glass of Grey Bull"
glass_desc = "Surprisingly it isnt grey."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/L)
..()
@@ -572,6 +587,7 @@
/datum/reagent/consumable/sodawater
name = "Soda Water"
description = "A can of club soda. Why not make a scotch and soda?"
+ nutriment_factor = 0
color = "#619494" // rgb: 97, 148, 148
taste_description = "carbonated water"
glass_icon_state = "glass_clear"
@@ -604,6 +620,7 @@
/datum/reagent/consumable/ice
name = "Ice"
description = "Frozen water, your dentist wouldn't like you chewing this."
+ nutriment_factor = 0 //Its water why would this even geive nutriments?
reagent_state = SOLID
color = "#619494" // rgb: 97, 148, 148
taste_description = "ice"
@@ -624,6 +641,7 @@
glass_icon_state = "soy_latte"
glass_name = "soy latte"
glass_desc = "A nice and refreshing beverage while you're reading."
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M)
M.dizziness = max(0,M.dizziness-5)
@@ -645,6 +663,7 @@
glass_icon_state = "cafe_latte"
glass_name = "cafe latte"
glass_desc = "A nice, strong and refreshing beverage while you're reading."
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M)
M.dizziness = max(0,M.dizziness-5)
@@ -666,6 +685,7 @@
glass_icon_state = "doctorsdelightglass"
glass_name = "Doctor's Delight"
glass_desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-0.5, 0)
@@ -688,6 +708,7 @@
glass_icon_state = "chocolatepudding"
glass_name = "chocolate pudding"
glass_desc = "Tasty."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/vanillapudding
name = "Vanilla Pudding"
@@ -699,50 +720,55 @@
glass_icon_state = "vanillapudding"
glass_name = "vanilla pudding"
glass_desc = "Tasty."
+ value = REAGENT_VALUE_UNCOMMON //real vanilla.
/datum/reagent/consumable/cherryshake
name = "Cherry Shake"
description = "A cherry flavored milkshake."
color = "#FFB6C1"
quality = DRINK_VERYGOOD
- nutriment_factor = 4 * REAGENTS_METABOLISM
+ nutriment_factor = 2 * REAGENTS_METABOLISM
taste_description = "creamy cherry"
glass_icon_state = "cherryshake"
glass_name = "cherry shake"
glass_desc = "A cherry flavored milkshake."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/bluecherryshake
name = "Blue Cherry Shake"
description = "An exotic milkshake."
color = "#00F1FF"
quality = DRINK_VERYGOOD
- nutriment_factor = 4 * REAGENTS_METABOLISM
+ nutriment_factor = 2 * REAGENTS_METABOLISM
taste_description = "creamy blue cherry"
glass_icon_state = "bluecherryshake"
glass_name = "blue cherry shake"
glass_desc = "An exotic blue milkshake."
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/consumable/pumpkin_latte
name = "Pumpkin Latte"
description = "A mix of pumpkin juice and coffee."
color = "#F4A460"
quality = DRINK_VERYGOOD
- nutriment_factor = 3 * REAGENTS_METABOLISM
+ nutriment_factor = 2 * REAGENTS_METABOLISM
taste_description = "creamy pumpkin"
glass_icon_state = "pumpkin_latte"
glass_name = "pumpkin latte"
glass_desc = "A mix of coffee and pumpkin juice."
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/gibbfloats
name = "Gibb Floats"
description = "Ice cream on top of a Dr. Gibb glass."
color = "#B22222"
quality = DRINK_NICE
- nutriment_factor = 3 * REAGENTS_METABOLISM
+ nutriment_factor = 1 * REAGENTS_METABOLISM
taste_description = "creamy cherry"
glass_icon_state = "gibbfloats"
glass_name = "Gibbfloat"
glass_desc = "Dr. Gibb with ice cream on top."
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/pumpkinjuice
name = "Pumpkin Juice"
@@ -755,6 +781,7 @@
description = "Juiced from real blumpkin."
color = "#00BFFF"
taste_description = "a mouthful of pool water"
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/triple_citrus
name = "Triple Citrus"
@@ -784,6 +811,7 @@
color = "#7D4E29"
quality = DRINK_NICE
taste_description = "chocolate milk"
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/menthol
name = "Menthol"
@@ -812,6 +840,7 @@
color = "#FFA500"
taste_description = "parsnip"
glass_name = "glass of parsnip juice"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink
name = "Peach Juice"
@@ -837,6 +866,7 @@
glass_icon_state = "cream_soda"
glass_name = "Cream Soda"
glass_desc = "A classic space-American vanilla flavored soft drink."
+ value = REAGENT_VALUE_VERY_COMMON //just a little vanilla
/datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
@@ -845,6 +875,7 @@
/datum/reagent/consumable/sol_dry
name = "Sol Dry"
description = "A soothing, mellow drink made from ginger."
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
color = "#f7d26a"
quality = DRINK_NICE
taste_description = "sweet ginger spice"
@@ -864,6 +895,7 @@
glass_icon_state = "red_queen"
glass_name = "Red Queen"
glass_desc = "DRINK ME."
+ value = REAGENT_VALUE_COMMON //growth serum.
var/current_size = RESIZE_DEFAULT_SIZE
/datum/reagent/consumable/red_queen/on_mob_life(mob/living/carbon/H)
@@ -889,10 +921,11 @@
description = "A drink of a bygone era of milk and artificial sweetener back on a rock."
color = "#f76aeb"//rgb(247, 106, 235)
glass_icon_state = "pinkmilk"
- quality = DRINK_FANTASTIC //Love drink
+ quality = DRINK_VERYGOOD
taste_description = "sweet strawberry and milk cream"
glass_name = "tall glass of strawberry milk"
glass_desc = "Delicious flavored strawberry syrup mixed with milk."
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/consumable/tea/pinkmilk/on_mob_life(mob/living/carbon/M)
if(prob(15))
@@ -905,7 +938,7 @@
description = "A timeless classic!"
color = "#f76aeb"//rgb(247, 106, 235)
glass_icon_state = "pinktea"
- quality = DRINK_FANTASTIC //Love drink
+ quality = DRINK_VERYGOOD
taste_description = "sweet tea with a hint of strawberry"
glass_name = "mug of strawberry tea"
glass_desc = "Delicious traditional tea flavored with strawberries."
@@ -948,6 +981,7 @@
glass_icon_state = "monkey_energy_glass"
glass_name = "glass of Monkey Energy"
glass_desc = "You can unleash the ape, but without the pop of the can?"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M)
M.Jitter(20)
@@ -965,3 +999,4 @@
glass_icon_state = "glass_yellow"
glass_name = "glass of bungo juice"
glass_desc = "Exotic! You feel like you are on vacation already."
+ value = REAGENT_VALUE_COMMON
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index c96feec4e2..ef4b7f3a53 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -1,6 +1,5 @@
/datum/reagent/drug
name = "Drug"
- value = 12
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "bitterness"
var/trippy = TRUE //Does this drug make you trip?
@@ -11,7 +10,7 @@
/datum/reagent/drug/space_drugs
name = "Space drugs"
- value = 6
+ value = REAGENT_VALUE_VERY_COMMON
description = "An illegal chemical compound used as drug."
color = "#60A584" // rgb: 96, 165, 132
overdose_threshold = 30
@@ -38,7 +37,6 @@
/datum/reagent/drug/nicotine
name = "Nicotine"
- value = 0
description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
@@ -66,6 +64,7 @@
overdose_threshold = 20
addiction_threshold = 10
pH = 10
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/drug/crank/on_mob_life(mob/living/carbon/M)
if(prob(5))
@@ -112,6 +111,7 @@
overdose_threshold = 20
addiction_threshold = 15
pH = 9
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/drug/krokodil/on_mob_life(mob/living/carbon/M)
@@ -167,6 +167,7 @@
var/jitter = TRUE
var/confusion = TRUE
pH = 5
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L)
..()
@@ -196,7 +197,7 @@
. = 1
/datum/reagent/drug/methamphetamine/overdose_process(mob/living/M)
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i in 1 to 4)
step(M, pick(GLOB.cardinals))
if(prob(20))
@@ -223,7 +224,7 @@
..()
/datum/reagent/drug/methamphetamine/addiction_act_stage3(mob/living/M)
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 4, i++)
step(M, pick(GLOB.cardinals))
M.Jitter(15)
@@ -233,7 +234,7 @@
..()
/datum/reagent/drug/methamphetamine/addiction_act_stage4(mob/living/carbon/human/M)
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 8, i++)
step(M, pick(GLOB.cardinals))
M.Jitter(20)
@@ -250,6 +251,7 @@
overdose_threshold = 35
jitter = FALSE
brain_damage = FALSE
+ value = REAGENT_VALUE_RARE
/datum/reagent/drug/bath_salts
name = "Bath Salts"
@@ -261,6 +263,7 @@
taste_description = "salt" // because they're bathsalts?
var/datum/brain_trauma/special/psychotic_brawling/bath_salts/rage
pH = 8.2
+ value = REAGENT_VALUE_RARE
/datum/reagent/drug/bath_salts/on_mob_metabolize(mob/living/L)
..()
@@ -285,7 +288,7 @@
M.adjustStaminaLoss(-5, 0)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4)
M.hallucination += 5
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
step(M, pick(GLOB.cardinals))
step(M, pick(GLOB.cardinals))
..()
@@ -293,7 +296,7 @@
/datum/reagent/drug/bath_salts/overdose_process(mob/living/M)
M.hallucination += 5
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i in 1 to 8)
step(M, pick(GLOB.cardinals))
if(prob(20))
@@ -304,7 +307,7 @@
/datum/reagent/drug/bath_salts/addiction_act_stage1(mob/living/M)
M.hallucination += 10
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 8, i++)
step(M, pick(GLOB.cardinals))
M.Jitter(5)
@@ -315,7 +318,7 @@
/datum/reagent/drug/bath_salts/addiction_act_stage2(mob/living/M)
M.hallucination += 20
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 8, i++)
step(M, pick(GLOB.cardinals))
M.Jitter(10)
@@ -327,7 +330,7 @@
/datum/reagent/drug/bath_salts/addiction_act_stage3(mob/living/M)
M.hallucination += 30
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 12, i++)
step(M, pick(GLOB.cardinals))
M.Jitter(15)
@@ -339,7 +342,7 @@
/datum/reagent/drug/bath_salts/addiction_act_stage4(mob/living/carbon/human/M)
M.hallucination += 30
- if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 16, i++)
step(M, pick(GLOB.cardinals))
M.Jitter(50)
@@ -357,6 +360,7 @@
reagent_state = LIQUID
color = "#78FFF0"
pH = 9.2
+ value = REAGENT_VALUE_RARE
/datum/reagent/drug/aranesp/on_mob_life(mob/living/carbon/M)
var/high_message = pick("You feel amped up.", "You feel ready.", "You feel like you can push it to the limit.")
@@ -378,6 +382,7 @@
addiction_threshold = 10
overdose_threshold = 20
pH = 10.5
+ value = REAGENT_VALUE_RARE
/datum/reagent/drug/happiness/on_mob_add(mob/living/L)
..()
@@ -457,10 +462,11 @@
addiction_stage3_end = 40
addiction_stage4_end = 240
pH = 12.5
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/drug/skooma/on_mob_metabolize(mob/living/L)
. = ..()
- L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
+ L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/skooma)
L.next_move_modifier *= 2
if(ishuman(L))
var/mob/living/carbon/human/H = L
@@ -473,7 +479,7 @@
/datum/reagent/drug/skooma/on_mob_end_metabolize(mob/living/L)
. = ..()
- L.remove_movespeed_modifier(type)
+ L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/skooma)
L.next_move_modifier *= 0.5
if(ishuman(L))
var/mob/living/carbon/human/H = L
@@ -521,3 +527,35 @@
if(prob(40))
M.emote(pick("twitch","drool","moan"))
..()
+
+/datum/reagent/syndicateadrenals
+ name = "Syndicate Adrenaline"
+ description = "Regenerates your stamina and increases your reaction time."
+ color = "#E62111"
+ overdose_threshold = 6
+ value = REAGENT_VALUE_VERY_RARE
+
+/datum/reagent/syndicateadrenals/on_mob_life(mob/living/M)
+ M.adjustStaminaLoss(-5*REM)
+ . = ..()
+
+/datum/reagent/syndicateadrenals/on_mob_metabolize(mob/living/M)
+ . = ..()
+ if(istype(M))
+ M.next_move_modifier *= 0.5
+ to_chat(M, "You feel an intense surge of energy rushing through your veins. ")
+
+/datum/reagent/syndicateadrenals/on_mob_end_metabolize(mob/living/M)
+ . = ..()
+ if(istype(M))
+ M.next_move_modifier *= 2
+ to_chat(M, "You feel as though the world around you is going faster. ")
+
+/datum/reagent/syndicateadrenals/overdose_start(mob/living/M)
+ to_chat(M, "You feel an intense pain in your chest... ")
+
+/datum/reagent/syndicateadrenals/overdose_process(mob/living/M)
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ if(!C.undergoing_cardiac_arrest())
+ C.set_heartattack(TRUE)
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 819af8513f..c7ff3f01c9 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -11,7 +11,7 @@
name = "Consumable"
taste_description = "generic food"
taste_mult = 4
- value = 0.1
+ value = REAGENT_VALUE_VERY_COMMON
var/nutriment_factor = 1 * REAGENTS_METABOLISM
var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes
@@ -41,7 +41,7 @@
name = "Nutriment"
description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
reagent_state = SOLID
- nutriment_factor = 15 * REAGENTS_METABOLISM
+ nutriment_factor = 10 * REAGENTS_METABOLISM
color = "#664330" // rgb: 102, 67, 48
var/brute_heal = 1
@@ -90,8 +90,8 @@
/datum/reagent/consumable/nutriment/vitamin
name = "Vitamin"
description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form."
- value = 0.5
-
+ value = REAGENT_VALUE_COMMON
+ nutriment_factor = 15 * REAGENTS_METABOLISM //The are the best food for you!
brute_heal = 1
burn_heal = 1
@@ -105,9 +105,9 @@
description = "A variety of cooking oil derived from fat or plants. Used in food preparation and frying."
color = "#EADD6B" //RGB: 234, 221, 107 (based off of canola oil)
taste_mult = 0.8
- value = 1
+ value = REAGENT_VALUE_COMMON
taste_description = "oil"
- nutriment_factor = 7 * REAGENTS_METABOLISM //Not very healthy on its own
+ nutriment_factor = 5 * REAGENTS_METABOLISM //Not very healthy on its own
metabolization_rate = 10 * REAGENTS_METABOLISM
var/fry_temperature = 450 //Around ~350 F (117 C) which deep fryers operate around in the real world
var/boiling //Used in mob life to determine if the oil kills, and only on touch application
@@ -151,11 +151,11 @@
reagent_state = SOLID
color = "#FFFFFF" // rgb: 255, 255, 255
taste_mult = 1.5 // stop sugar drowning out other flavours
- nutriment_factor = 5 * REAGENTS_METABOLISM
+ nutriment_factor = 3 * REAGENTS_METABOLISM
metabolization_rate = 2 * REAGENTS_METABOLISM
overdose_threshold = 200 // Hyperglycaemic shock
taste_description = "sweetness"
- value = 1
+ value = REAGENT_VALUE_NONE
/datum/reagent/consumable/sugar/overdose_start(mob/living/M)
to_chat(M, "You go into hyperglycaemic shock! Lay off the twinkies! ")
@@ -177,21 +177,21 @@
/datum/reagent/consumable/soysauce
name = "Soysauce"
description = "A salty sauce made from the soy plant."
- nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#792300" // rgb: 121, 35, 0
taste_description = "umami"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/ketchup
name = "Ketchup"
description = "Ketchup, catsup, whatever. It's tomato paste."
- nutriment_factor = 5 * REAGENTS_METABOLISM
+ nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#731008" // rgb: 115, 16, 8
taste_description = "ketchup"
/datum/reagent/consumable/mustard
name = "Mustard"
description = "Mustard, mostly used on hotdogs, corndogs and burgers."
- nutriment_factor = 5 * REAGENTS_METABOLISM
+ nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#DDED26" // rgb: 221, 237, 38
taste_description = "mustard"
@@ -231,7 +231,7 @@
description = "A special oil that noticably chills the body. Extracted from Icepeppers and slimes."
color = "#8BA6E9" // rgb: 139, 166, 233
taste_description = "mint"
- value = 2
+ value = REAGENT_VALUE_COMMON
pH = 13 //HMM! I wonder
/datum/reagent/consumable/frostoil/on_mob_life(mob/living/carbon/M)
@@ -376,14 +376,13 @@
name = "Coco Powder"
description = "A fatty, bitter paste made from coco beans."
reagent_state = SOLID
- nutriment_factor = 5 * REAGENTS_METABOLISM
+ nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
taste_description = "bitterness"
/datum/reagent/consumable/hot_coco
name = "Hot Chocolate"
description = "Made with love! And coco beans."
- nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#660000" // rgb: 221, 202, 134
taste_description = "creamy chocolate"
glass_icon_state = "chocolateglass"
@@ -401,6 +400,7 @@
metabolization_rate = 0.2 * REAGENTS_METABOLISM
taste_description = "mushroom"
pH = 11
+ value = REAGENT_VALUE_COMMON
/datum/reagent/drug/mushroomhallucinogen/on_mob_life(mob/living/carbon/M)
M.slurring = max(M.slurring,50)
@@ -431,6 +431,7 @@
color = "#FEFEFE"
taste_description = "garlic"
metabolization_rate = 0.15 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/garlic/on_mob_life(mob/living/carbon/M)
if(isvampire(M)) //incapacitating but not lethal. Unfortunately, vampires cannot vomit.
@@ -461,7 +462,7 @@
M.emote("scream")
if(prob(min(5, current_cycle)) && iscarbon(M))
var/mob/living/carbon/C
- C.vomit()
+ C.vomit()
if(INJECT)
if(prob(min(20, current_cycle)))
to_chat(M, "You feel like your veins are boiling! ")
@@ -470,10 +471,10 @@
..()
/datum/reagent/consumable/sprinkles
name = "Sprinkles"
- value = 3
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
color = "#FF00FF" // rgb: 255, 0, 255
taste_description = "childhood whimsy"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/sprinkles/on_mob_life(mob/living/carbon/M)
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
@@ -485,15 +486,15 @@
name = "Peanut Butter"
description = "A popular food paste made from ground dry-roasted peanuts."
color = "#C29261"
- value = 3
- nutriment_factor = 15 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_UNCOMMON
+ nutriment_factor = 10 * REAGENTS_METABOLISM
taste_description = "peanuts"
/datum/reagent/consumable/cornoil
name = "Corn Oil"
description = "An oil derived from various types of corn."
- nutriment_factor = 20 * REAGENTS_METABOLISM
- value = 4
+ nutriment_factor = 12 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_UNCOMMON
color = "#302000" // rgb: 48, 32, 0
taste_description = "slime"
@@ -511,7 +512,7 @@
/datum/reagent/consumable/enzyme
name = "Universal Enzyme"
- value = 1
+ value = REAGENT_VALUE_COMMON
description = "A universal enzyme used in the preperation of certain chemicals and foods."
color = "#365E30" // rgb: 54, 94, 48
taste_description = "sweetness"
@@ -547,7 +548,6 @@
/datum/reagent/consumable/flour
name = "Flour"
- value = 0.5
description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 0, 0, 0
@@ -564,19 +564,18 @@
name = "Cherry Jelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
color = "#801E28" // rgb: 128, 30, 40
- value = 1
+ value = REAGENT_VALUE_COMMON
taste_description = "cherry"
/datum/reagent/consumable/bluecherryjelly
name = "Blue Cherry Jelly"
description = "Blue and tastier kind of cherry jelly."
color = "#00F0FF"
- value = 12
+ value = REAGENT_VALUE_UNCOMMON
taste_description = "blue cherry"
/datum/reagent/consumable/rice
name = "Rice"
- value = 0.5
description = "tiny nutritious grains"
reagent_state = SOLID
nutriment_factor = 3 * REAGENTS_METABOLISM
@@ -585,7 +584,7 @@
/datum/reagent/consumable/vanilla
name = "Vanilla Powder"
- value = 1
+ value = REAGENT_VALUE_UNCOMMON
description = "A fatty, bitter paste made from vanilla pods."
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
@@ -594,7 +593,6 @@
/datum/reagent/consumable/eggyolk
name = "Egg Yolk"
- value = 1
description = "It's full of protein."
nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#FFB500"
@@ -602,14 +600,13 @@
/datum/reagent/consumable/corn_starch
name = "Corn Starch"
- value = 2
description = "A slippery solution."
color = "#f7f6e4"
taste_description = "slime"
/datum/reagent/consumable/corn_syrup
name = "Corn Syrup"
- value = 1
+ value = REAGENT_VALUE_UNCOMMON
description = "Decays into sugar."
color = "#fff882"
metabolization_rate = 3 * REAGENTS_METABOLISM
@@ -623,8 +620,8 @@
name = "honey"
description = "Sweet sweet honey that decays into sugar. Has antibacterial and natural healing properties."
color = "#d3a308"
- value = 15
- nutriment_factor = 15 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_COMMON
+ nutriment_factor = 10 * REAGENTS_METABOLISM
metabolization_rate = 1 * REAGENTS_METABOLISM
taste_description = "sweetness"
@@ -651,6 +648,7 @@
color = "#DFDFDF"
value = 5
taste_description = "mayonnaise"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/tearjuice
name = "Tear Juice"
@@ -658,6 +656,7 @@
color = "#c0c9a0"
taste_description = "bitterness"
pH = 5
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/tearjuice/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(!istype(M))
@@ -694,8 +693,9 @@
name = "Stabilized Nutriment"
description = "A bioengineered protien-nutrient structure designed to decompose in high saturation. In layman's terms, it won't get you fat."
reagent_state = SOLID
- nutriment_factor = 15 * REAGENTS_METABOLISM
+ nutriment_factor = 12 * REAGENTS_METABOLISM
color = "#664330" // rgb: 102, 67, 48
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/nutriment/stabilized/on_mob_life(mob/living/carbon/M)
if(M.nutrition > NUTRITION_LEVEL_FULL - 25)
@@ -711,6 +711,7 @@
color = "#1d043d"
taste_description = "bitter mushroom"
pH = 12
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/entpoly/on_mob_life(mob/living/carbon/M)
if(current_cycle >= 10)
@@ -731,6 +732,7 @@
color = "#b5a213"
taste_description = "tingling mushroom"
pH = 11.2
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/tinlux/reaction_mob(mob/living/M)
M.set_light(2)
@@ -745,6 +747,7 @@
nutriment_factor = 3 * REAGENTS_METABOLISM
taste_description = "fruity mushroom"
pH = 10.4
+ value = REAGENT_VALUE_RARE
/datum/reagent/consumable/vitfro/on_mob_life(mob/living/carbon/M)
if(prob(80))
@@ -805,11 +808,12 @@
/datum/reagent/consumable/caramel
name = "Caramel"
description = "Who would have guessed that heated sugar could be so delicious?"
- nutriment_factor = 10 * REAGENTS_METABOLISM
+ nutriment_factor = 4 * REAGENTS_METABOLISM
color = "#D98736"
taste_mult = 2
taste_description = "caramel"
reagent_state = SOLID
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/secretsauce
name = "secret sauce"
@@ -820,6 +824,7 @@
taste_mult = 100
can_synth = FALSE
pH = 6.1
+ value = REAGENT_VALUE_AMAZING
/datum/reagent/consumable/secretsauce/reaction_obj(obj/O, reac_volume)
//splashing any amount above or equal to 1u of secret sauce onto a piece of food turns its quality to 100
@@ -840,6 +845,7 @@
taste_mult = 6
taste_description = "smoke"
overdose_threshold = 25
+ value = REAGENT_VALUE_COMMON
/datum/reagent/consumable/char/overdose_process(mob/living/carbon/M)
if(prob(10))
@@ -852,3 +858,4 @@
color = "#78280A" // rgb: 120 40, 10
taste_mult = 2.5 //sugar's 1.5, capsacin's 1.5, so a good middle ground.
taste_description = "smokey sweetness"
+ value = REAGENT_VALUE_COMMON
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index ecceb6e8bf..e4973dd2d5 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -7,8 +7,8 @@
/datum/reagent/medicine
name = "Medicine"
- value = 2
taste_description = "bitterness"
+ value = REAGENT_VALUE_VERY_COMMON //Low prices, spess medical companies are cheapstakes and products are taxed honk...
/datum/reagent/medicine/on_mob_life(mob/living/carbon/M)
current_cycle++
@@ -19,6 +19,7 @@
description = "Leporazine will effectively regulate a patient's body temperature, ensuring it never leaves safe levels."
pH = 8.4
color = "#82b8aa"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/leporazine/on_mob_life(mob/living/carbon/M)
if(M.bodytemperature > BODYTEMP_NORMAL)
@@ -33,6 +34,7 @@
color = "#ffffff"
can_synth = FALSE
taste_description = "badmins"
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M)
M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1)
@@ -101,6 +103,7 @@
description = "Reduces drowsiness, hallucinations, and Histamine from body."
color = "#EC536D" // rgb: 236, 83, 109
pH = 5.2
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(M.drowsyness-5, 0)
@@ -131,6 +134,7 @@
color = "#0000C8"
taste_description = "sludge"
pH = 11
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/cryoxadone/on_mob_life(mob/living/carbon/M)
var/power = -0.00003 * (M.bodytemperature ** 2) + 3
@@ -152,6 +156,7 @@
taste_description = "muscle"
metabolization_rate = 1.5 * REAGENTS_METABOLISM
pH = 13
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/clonexadone/on_mob_life(mob/living/carbon/M)
if(M.bodytemperature < T0C)
@@ -167,6 +172,7 @@
color = "#f7832a"
taste_description = "spicy jelly"
pH = 12
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/medicine/pyroxadone/on_mob_life(mob/living/carbon/M)
if(M.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT)
@@ -198,7 +204,7 @@
overdose_threshold = 30
taste_description = "fish"
pH = 12.2
- value = 20
+ value = REAGENT_VALUE_RARE
/datum/reagent/medicine/rezadone/on_mob_life(mob/living/carbon/M)
M.setCloneLoss(0) //Rezadone is almost never used in favor of cryoxadone. Hopefully this will change that.
@@ -239,7 +245,13 @@
color = "#ffeac9"
metabolization_rate = 5 * REAGENTS_METABOLISM
overdose_threshold = 50
- value = 3
+
+/datum/reagent/medicine/silver_sulfadiazine/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/stack/medical/gauze))
+ var/obj/item/stack/medical/gauze/G = O
+ reac_volume = min((reac_volume / 10), G.amount)
+ new/obj/item/stack/medical/ointment(get_turf(G), reac_volume)
+ G.use(reac_volume)
/datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M) && M.stat != DEAD)
@@ -277,7 +289,7 @@
metabolization_rate = 0.5 * REAGENTS_METABOLISM
overdose_threshold = 25
pH = 10.7
- value = 4
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/oxandrolone/on_mob_life(mob/living/carbon/M)
if(M.getFireLoss() > 25)
@@ -301,7 +313,6 @@
pH = 6.7
metabolization_rate = 5 * REAGENTS_METABOLISM
overdose_threshold = 50
- value = 3
/datum/reagent/medicine/styptic_powder/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M) && M.stat != DEAD)
@@ -317,6 +328,12 @@
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
..()
+/datum/reagent/medicine/styptic_powder/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/stack/medical/gauze))
+ var/obj/item/stack/medical/gauze/G = O
+ reac_volume = min((reac_volume / 10), G.amount)
+ new/obj/item/stack/medical/bruise_pack(get_turf(G), reac_volume)
+ G.use(reac_volume)
/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-2*REM, 0)
@@ -343,7 +360,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
var/last_added = 0
var/maximum_reachable = BLOOD_VOLUME_NORMAL - 10 //So that normal blood regeneration can continue with salglu active
pH = 5.5
- value = 1
/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/carbon/M)
if((HAS_TRAIT(M, TRAIT_NOMARROW)))
@@ -384,6 +400,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
color = "#6D6374"
metabolization_rate = 0.4 * REAGENTS_METABOLISM
pH = 2.6
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/C)
C.hal_screwyhud = SCREWYHUD_HEALTHY
@@ -424,7 +441,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
pH = 11.5
metabolization_rate = 5 * REAGENTS_METABOLISM
overdose_threshold = 40
- value = 6
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/synthflesh/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M))
@@ -461,7 +478,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "ash"
pH = 5
- value = 1
/datum/reagent/medicine/charcoal/on_mob_life(mob/living/carbon/M)
M.adjustToxLoss(-2*REM, 0)
@@ -480,7 +496,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.25 * REAGENTS_METABOLISM
overdose_threshold = 30
pH = 2
- value = 5
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/medicine/omnizine/on_mob_life(mob/living/carbon/M)
M.adjustToxLoss(-0.5*REM, 0)
@@ -537,6 +553,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
color = "#003153" // RGB 0, 49, 83
metabolization_rate = 0.5 * REAGENTS_METABOLISM
pH = 8.9
+ value = REAGENT_VALUE_COMMON //uncraftable
/datum/reagent/medicine/prussian_blue/on_mob_life(mob/living/carbon/M)
if(M.radiation > 0)
@@ -550,6 +567,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
color = "#E6FFF0"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
pH = 1 //One of the best buffers, NEVERMIND!
+ value = REAGENT_VALUE_UNCOMMON
var/healtoxinlover = FALSE
/datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/M)
@@ -568,6 +586,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
color = "#91D865"
healtoxinlover = TRUE
pH = 12//invert
+ value = REAGENT_VALUE_RARE
/datum/reagent/medicine/sal_acid
name = "Salicyclic Acid"
@@ -577,6 +596,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.5 * REAGENTS_METABOLISM
overdose_threshold = 25
pH = 2.1
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/sal_acid/on_mob_life(mob/living/carbon/M)
@@ -688,6 +708,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
color = "#64FFE6"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
pH = 11.5
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/diphenhydramine/on_mob_life(mob/living/carbon/M)
if(prob(10))
@@ -708,10 +729,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L)
..()
- L.ignore_slowdown(type)
+ L.add_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod))
/datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L)
- L.unignore_slowdown(type)
+ L.remove_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod))
..()
/datum/reagent/medicine/morphine/on_mob_life(mob/living/carbon/M)
@@ -803,6 +824,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.25 * REAGENTS_METABOLISM
overdose_threshold = 35
pH = 12
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/medicine/atropine/on_mob_life(mob/living/carbon/M)
if(M.health < 0)
@@ -867,6 +889,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "magnets"
pH = 0
+ value = REAGENT_VALUE_RARE
/datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(M.stat == DEAD)
@@ -990,14 +1013,15 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.5 * REAGENTS_METABOLISM
overdose_threshold = 60
pH = 8.7
+ value = REAGENT_VALUE_RARE
/datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L)
..()
- L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.5, blacklisted_movetypes=(FLYING|FLOATING))
+ L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants)
ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type)
/datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L)
- L.remove_movespeed_modifier(type)
+ L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants)
REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type)
..()
@@ -1154,6 +1178,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
reagent_state = LIQUID
color = "#91D865"
taste_description = "jelly"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/regen_jelly/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-1.5*REM, FALSE)
@@ -1169,6 +1194,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
reagent_state = SOLID
color = "#555555"
pH = 11
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-5*REM, FALSE) //A ton of healing - this is a 50 telecrystal investment.
@@ -1189,6 +1215,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
reagent_state = SOLID
color = "#555555"
pH = 11
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/medicine/lesser_syndicate_nanites/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-3*REM, FALSE) // hidden gold shh
@@ -1212,6 +1239,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
overdose_threshold = 30
taste_description = "jelly"
pH = 11.8
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/medicine/neo_jelly/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-1.5*REM, FALSE)
@@ -1234,6 +1262,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
color = rgb(255, 175, 0)
overdose_threshold = 25
pH = 11
+ value = REAGENT_VALUE_COMMON //not any higher. Ambrosia is a milestone for hydroponics already.
/datum/reagent/medicine/earthsblood/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-3 * REM, FALSE)
@@ -1261,6 +1290,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
color = "#27870a"
metabolization_rate = 0.4 * REAGENTS_METABOLISM
pH = 4.3
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/medicine/haloperidol/on_mob_life(mob/living/carbon/M)
for(var/datum/reagent/drug/R in M.reagents.reagent_list)
@@ -1283,6 +1313,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
overdose_threshold = 3 //To prevent people stacking massive amounts of a very strong healing reagent
can_synth = FALSE
pH = 14
+ value = REAGENT_VALUE_AMAZING
/datum/reagent/medicine/lavaland_extract/on_mob_life(mob/living/carbon/M)
M.heal_bodypart_damage(5,5)
@@ -1302,6 +1333,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
description = "Reduces the duration of unconciousness, knockdown and stuns. Restores stamina, but deals toxin damage when overdosed."
color = "#918e53"
overdose_threshold = 30
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/medicine/changelingadrenaline/on_mob_metabolize(mob/living/L)
..()
@@ -1329,13 +1361,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
description = "Drastically increases movement speed, but deals toxin damage."
color = "#669153"
metabolization_rate = 1
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L)
..()
- L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
+ L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste)
/datum/reagent/medicine/changelinghaste/on_mob_end_metabolize(mob/living/L)
- L.remove_movespeed_modifier(type)
+ L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste)
..()
/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M)
@@ -1365,14 +1398,15 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/muscle_stimulant
name = "Muscle Stimulant"
description = "A potent chemical that allows someone under its influence to be at full physical ability even when under massive amounts of pain."
+ value = REAGENT_VALUE_RARE
/datum/reagent/medicine/muscle_stimulant/on_mob_metabolize(mob/living/M)
. = ..()
- M.ignore_slowdown(type)
+ M.add_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod))
/datum/reagent/medicine/muscle_stimulant/on_mob_end_metabolize(mob/living/M)
. = ..()
- M.unignore_slowdown(type)
+ M.remove_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod))
/datum/reagent/medicine/modafinil
name = "Modafinil"
@@ -1382,6 +1416,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.1 * REAGENTS_METABOLISM
overdose_threshold = 20 // with the random effects this might be awesome or might kill you at less than 10u (extensively tested)
taste_description = "salt" // it actually does taste salty
+ value = REAGENT_VALUE_RARE
var/overdose_progress = 0 // to track overdose progress
pH = 7.89
@@ -1448,6 +1483,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.25 * REAGENTS_METABOLISM
overdose_threshold = 30
pH = 9.12
+ value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/psicodine/on_mob_add(mob/living/L)
..()
@@ -1480,6 +1516,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
reagent_state = SOLID
color = "#FFFFD0"
metabolization_rate = 1.5 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/medicine/silibinin/on_mob_life(mob/living/carbon/M)
M.adjustOrganLoss(ORGAN_SLOT_LIVER, -2)//Add a chance to cure liver trauma once implemented.
@@ -1494,6 +1531,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
metabolization_rate = 0.25 * REAGENTS_METABOLISM
overdose_threshold = 50
taste_description = "numbing bitterness"
+ value = REAGENT_VALUE_RARE
/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I wanted a collection of small positive effects, this is as hard to obtain as coniine after all.
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -0.25)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index e66ebc5f20..5fb27bd074 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1,7 +1,7 @@
/datum/reagent/blood
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_HUMAN, "blood_type"= null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null,"quirks"=null)
name = "Blood"
- value = 1
+ value = REAGENT_VALUE_UNCOMMON // $$$ blood ""donations"" $$$
color = BLOOD_COLOR_HUMAN // rgb: 200, 0, 0
description = "Blood from some creature."
metabolization_rate = 5 //fast rate so it disappears fast.
@@ -140,8 +140,9 @@
data = list("donor"=null,"viruses"=null,"blood_DNA"="REPLICATED", "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
name = "Synthetic Blood"
description = "A synthetically produced imitation of blood."
- taste_description = "oily"
+ taste_description = "oil"
color = BLOOD_COLOR_SYNTHETIC // rgb: 11, 7, 48
+ value = REAGENT_VALUE_NONE
/datum/reagent/blood/jellyblood
data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
@@ -158,6 +159,7 @@
description = "This highly resembles blood, but it doesnt actually function like it, resembling more ketchup, with a more blood-like consistency."
taste_description = "sap" //Like tree sap?
pH = 7.45
+ value = REAGENT_VALUE_NONE
/datum/reagent/blood/jellyblood/on_mob_life(mob/living/carbon/M)
if(prob(10))
@@ -271,9 +273,9 @@
/datum/reagent/water/reaction_obj(obj/O, reac_volume)
O.extinguish()
O.acid_level = 0
- // Monkey cube
- if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube))
- var/obj/item/reagent_containers/food/snacks/monkeycube/cube = O
+ // cubes
+ if(istype(O, /obj/item/reagent_containers/food/snacks/cube))
+ var/obj/item/reagent_containers/food/snacks/cube/cube = O
cube.Expand()
// Dehydrated carp
@@ -387,6 +389,7 @@
description = "Something that shouldn't exist on this plane of existence."
taste_description = "suffering"
pH = 6.5
+ value = REAGENT_VALUE_RARE
/datum/reagent/fuel/unholywater/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
@@ -423,6 +426,7 @@
name = "Hell Water"
description = "YOUR FLESH! IT BURNS!"
taste_description = "burning"
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/hellwater/on_mob_life(mob/living/carbon/M)
M.fire_stacks = min(5,M.fire_stacks + 3)
@@ -437,6 +441,7 @@
name = "Zelus Oil"
description = "Oil blessed by a greater being."
taste_description = "metallic oil"
+ value = REAGENT_VALUE_RARE
/datum/reagent/fuel/holyoil/on_mob_life(mob/living/carbon/M)
if(is_servant_of_ratvar(M))
@@ -475,6 +480,7 @@
name = "Godblood"
description = "Slowly heals all damage types. Has a rather high overdose threshold. Glows with mysterious power."
overdose_threshold = 150
+ value = REAGENT_VALUE_RARE
/datum/reagent/lube
name = "Space Lube"
@@ -591,6 +597,7 @@
color = "#5EFF3B" //RGB: 94, 255, 59
metabolization_rate = INFINITY //So it instantly removes all of itself
taste_description = "slime"
+ value = REAGENT_VALUE_RARE
var/datum/species/race = /datum/species/human
var/mutationtext = "The pain subsides. You feel... human. "
@@ -750,6 +757,7 @@
color = "#5EFF3B" //RGB: 94, 255, 59
taste_description = "slime"
metabolization_rate = 0.2
+ value = REAGENT_VALUE_RARE
/datum/reagent/slime_toxin/on_mob_life(mob/living/carbon/human/H)
..()
@@ -786,6 +794,7 @@
color = "#5EFF3B" //RGB: 94, 255, 59
metabolization_rate = INFINITY
taste_description = "slime"
+ value = REAGENT_VALUE_RARE
/datum/reagent/mulligan/on_mob_life(mob/living/carbon/human/H)
..()
@@ -800,6 +809,7 @@
description = "An advanced corruptive toxin produced by slimes."
color = "#13BC5E" // rgb: 19, 188, 94
taste_description = "slime"
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/aslimetoxin/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
if(method != TOUCH)
@@ -811,6 +821,7 @@
color = "#5EFF3B" //RGB: 94, 255, 59
can_synth = FALSE
taste_description = "decay"
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/gluttonytoxin/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
L.ForceContractDisease(new /datum/disease/transformation/morph(), FALSE, TRUE)
@@ -1034,6 +1045,14 @@
// +20% success propability on each step, useful while operating in less-than-perfect conditions
..()
+/datum/reagent/space_cleaner/sterilizine/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/stack/medical/gauze))
+ var/obj/item/stack/medical/gauze/G = O
+ reac_volume = min((reac_volume / 10), G.amount)
+ new/obj/item/stack/medical/gauze/adv(get_turf(G), reac_volume)
+ G.use(reac_volume)
+
+
/datum/reagent/iron
name = "Iron"
description = "Pure iron is a metal."
@@ -1113,6 +1132,7 @@
color = "#0000CC"
taste_description = "fizzling blue"
pH = 12
+ value = REAGENT_VALUE_RARE
/datum/reagent/bluespace/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
@@ -1239,6 +1259,7 @@
metabolization_rate = 1.5 * REAGENTS_METABOLISM
taste_description = "acid"
pH = 2
+ value = REAGENT_VALUE_RARE
/datum/reagent/space_cleaner/ez_clean/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(3.33)
@@ -1290,6 +1311,7 @@
color = "#535E66" // rgb: 83, 94, 102
can_synth = FALSE
taste_description = "sludge"
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/nanomachines/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
@@ -1301,6 +1323,7 @@
color = "#535E66" // rgb: 83, 94, 102
can_synth = FALSE
taste_description = "sludge"
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/xenomicrobes/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
@@ -1313,6 +1336,7 @@
can_synth = FALSE
taste_description = "slime"
pH = 11
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/fungalspores/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
@@ -1340,6 +1364,7 @@
color = "#664B63" // rgb: 102, 75, 99
taste_description = "metal"
pH = 11.8
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/ammonia
name = "Ammonia"
@@ -1417,6 +1442,7 @@
metabolization_rate = 1.5 * REAGENTS_METABOLISM
color = "E1A116"
taste_description = "sourness"
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/stimulum/on_mob_metabolize(mob/living/L)
..()
@@ -1442,13 +1468,14 @@
color = "90560B"
taste_description = "burning"
pH = 2
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/nitryl/on_mob_metabolize(mob/living/L)
..()
- L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
+ L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl)
/datum/reagent/nitryl/on_mob_end_metabolize(mob/living/L)
- L.remove_movespeed_modifier(type)
+ L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl)
..()
/////////////////////////Coloured Crayon Powder////////////////////////////
@@ -1463,6 +1490,7 @@
color = "#FFFFFF" // rgb: 207, 54, 0
taste_description = "the back of class"
no_mob_color = TRUE
+ value = REAGENT_VALUE_NONE
/datum/reagent/colorful_reagent/crayonpowder/New()
description = "\an [colorname] powder made by grinding down crayons, good for colouring chemical reagents."
@@ -1633,6 +1661,7 @@
color = "#FFFF00"
var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700")
taste_description = "rainbows"
+ value = REAGENT_VALUE_RARE
var/no_mob_color = FALSE
/datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/M)
@@ -1662,6 +1691,7 @@
color = "#ff00dd"
var/list/potential_colors = list("0ad","a0f","f73","d14","d14","0b5","0ad","f73","fc2","084","05e","d22","fa0") // fucking hair code
taste_description = "sourness"
+ value = REAGENT_VALUE_RARE
/datum/reagent/hair_dye/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
@@ -1677,6 +1707,7 @@
reagent_state = LIQUID
color = "#fac34b"
taste_description = "sourness"
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/barbers_aid/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
@@ -1694,6 +1725,7 @@
reagent_state = LIQUID
color = "#ffaf00"
taste_description = "sourness"
+ value = REAGENT_VALUE_RARE
/datum/reagent/concentrated_barbers_aid/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
@@ -1726,6 +1758,7 @@
color = "#A70FFF"
taste_description = "dryness"
pH = 10.7
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/drying_agent/reaction_turf(turf/open/T, reac_volume)
if(istype(T))
@@ -1863,6 +1896,7 @@
color = "#00ff80"
taste_description = "strange honey"
pH = 3
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/carbon/M)
if(prob(2))
@@ -1884,6 +1918,7 @@
can_synth = FALSE
taste_description = "brains"
pH = 0.5
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/romerol/reaction_mob(mob/living/carbon/human/H, method=TOUCH, reac_volume)
// Silently add the zombie infection organ to be activated upon death
@@ -1897,6 +1932,7 @@
description = "An experimental serum which causes rapid muscular growth in Hominidae. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas."
reagent_state = LIQUID
color = "#00f041"
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/magillitis/on_mob_life(mob/living/carbon/M)
..()
@@ -1908,6 +1944,7 @@
description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant
color = "#ff0000"//strong red. rgb 255, 0, 0
var/current_size = RESIZE_DEFAULT_SIZE
+ value = REAGENT_VALUE_COMMON
taste_description = "bitterness" // apparently what viagra tastes like
/datum/reagent/growthserum/on_mob_life(mob/living/carbon/H)
@@ -1978,6 +2015,7 @@
color = "#AAAAAA55"
taste_description = "water"
metabolization_rate = 0.25 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_RARE
pH = 15
/datum/reagent/pax/on_mob_metabolize(mob/living/L)
@@ -1994,6 +2032,7 @@
color = "#FAFF00"
taste_description = "acrid cinnamon"
metabolization_rate = 0.2 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/bz_metabolites/on_mob_metabolize(mob/living/L)
..()
@@ -2014,18 +2053,20 @@
name = "synth-pax"
description = "A colorless liquid that suppresses violence on the subjects. Cheaper to synthetize, but wears out faster than normal Pax."
metabolization_rate = 1.5 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_COMMON
/datum/reagent/peaceborg_confuse
name = "Dizzying Solution"
description = "Makes the target off balance and dizzy"
metabolization_rate = 1.5 * REAGENTS_METABOLISM
taste_description = "dizziness"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/peaceborg_confuse/on_mob_life(mob/living/carbon/M)
if(M.confused < 6)
- M.confused = CLAMP(M.confused + 3, 0, 5)
+ M.confused = clamp(M.confused + 3, 0, 5)
if(M.dizziness < 6)
- M.dizziness = CLAMP(M.dizziness + 3, 0, 5)
+ M.dizziness = clamp(M.dizziness + 3, 0, 5)
if(prob(20))
to_chat(M, "You feel confused and disorientated.")
..()
@@ -2035,6 +2076,7 @@
description = "An extremely weak stamina-toxin that tires out the target. Completely harmless."
metabolization_rate = 1.5 * REAGENTS_METABOLISM
taste_description = "tiredness"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/peaceborg_tire/on_mob_life(mob/living/carbon/M)
var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS.
@@ -2050,6 +2092,7 @@
color = "#9A6750" //RGB: 154, 103, 80
taste_description = "inner peace"
can_synth = FALSE
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/tranquility/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
@@ -2060,6 +2103,7 @@
description = "The primary precursor for an ancient feline delicacy known as skooma. While it has no notable effects on it's own, mixing it with morphine in a chilled container may yield interesting results."
color = "#FAEAFF"
taste_description = "synthetic catnip"
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/moonsugar/on_mob_life(mob/living/carbon/M)
if(prob(20))
@@ -2076,6 +2120,7 @@
var/datum/dna/original_dna
var/reagent_ticks = 0
chemical_flags = REAGENT_INVISIBLE
+ value = REAGENT_VALUE_GLORIOUS
/datum/reagent/changeling_string/on_mob_metabolize(mob/living/carbon/C)
if(ishuman(C) && C.dna && data["desired_dna"])
@@ -2111,6 +2156,7 @@
taste_description = "grass"
description = "A colorless liquid that makes people more peaceful and felines more happy."
metabolization_rate = 1.75 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_COMMON
/datum/reagent/pax/catnip/on_mob_life(mob/living/carbon/M)
if(prob(20))
diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
index 939d5c9707..67ff61610d 100644
--- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
@@ -5,6 +5,7 @@
reagent_state = SOLID
color = "#550000"
taste_description = "sweet tasting metal"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/thermite/reaction_turf(turf/T, reac_volume)
if(reac_volume >= 1)
@@ -21,13 +22,14 @@
description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
color = "#808080" // rgb: 128, 128, 128
taste_description = "oil"
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/stabilizing_agent
name = "Stabilizing Agent"
description = "Keeps unstable chemicals stable. This does not work on everything."
reagent_state = LIQUID
color = "#FFFF00"
- value = 3
+ value = REAGENT_VALUE_VERY_COMMON
taste_description = "metal"
/datum/reagent/clf3
@@ -37,6 +39,7 @@
color = "#FFC8C8"
metabolization_rate = 4
taste_description = "burning"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/clf3/on_mob_life(mob/living/carbon/M)
M.adjust_fire_stacks(2)
@@ -79,13 +82,14 @@
reagent_state = LIQUID
color = "#5A64C8"
taste_description = "air and bitterness"
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/liquid_dark_matter
name = "Liquid Dark Matter"
description = "Sucks everything into the detonation point."
reagent_state = LIQUID
color = "#210021"
- value = 10
+ value = REAGENT_VALUE_UNCOMMON
taste_description = "compressed bitterness"
/datum/reagent/blackpowder
@@ -93,9 +97,9 @@
description = "Explodes. Violently."
reagent_state = LIQUID
color = "#000000"
- value = 5
metabolization_rate = 0.05
taste_description = "salt"
+ value = REAGENT_VALUE_RARE
/datum/reagent/blackpowder/on_mob_life(mob/living/carbon/M)
..()
@@ -115,6 +119,7 @@
reagent_state = LIQUID
color = "#C8C8C8"
taste_description = "salt"
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/smoke_powder
name = "Smoke Powder"
@@ -122,6 +127,7 @@
reagent_state = LIQUID
color = "#C8C8C8"
taste_description = "smoke"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/sonic_powder
name = "Sonic Powder"
@@ -129,6 +135,7 @@
reagent_state = LIQUID
color = "#C8C8C8"
taste_description = "loud noises"
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/phlogiston
name = "Phlogiston"
@@ -136,6 +143,7 @@
reagent_state = LIQUID
color = "#FA00AF"
taste_description = "burning"
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/phlogiston/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
M.adjust_fire_stacks(1)
@@ -156,8 +164,8 @@
description = "Very flammable."
reagent_state = LIQUID
color = "#FA00AF"
- value = 1
taste_description = "burning"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/napalm/on_mob_life(mob/living/carbon/M)
M.adjust_fire_stacks(1)
@@ -174,7 +182,7 @@
color = "#0000DC"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "bitterness"
-
+ value = REAGENT_VALUE_COMMON
/datum/reagent/cryostylane/on_mob_life(mob/living/carbon/M) //TODO: code freezing into an ice cube
if(M.reagents.has_reagent(/datum/reagent/oxygen))
@@ -193,6 +201,7 @@
color = "#64FAC8"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "bitterness"
+ value = REAGENT_VALUE_COMMON
/datum/reagent/pyrosium/on_mob_life(mob/living/carbon/M)
if(M.reagents.has_reagent(/datum/reagent/oxygen))
@@ -208,6 +217,7 @@
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "charged metal"
var/shock_timer = 0
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/teslium/on_mob_life(mob/living/carbon/M)
shock_timer++
@@ -242,6 +252,7 @@
reagent_state = LIQUID
color = "#A6FAFF55"
taste_description = "the inside of a fire extinguisher"
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/firefighting_foam/reaction_turf(turf/open/T, reac_volume)
if (!istype(T))
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index bd79ed5fb8..3169d2d3aa 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -7,6 +7,7 @@
color = "#CF3600" // rgb: 207, 54, 0
taste_description = "bitterness"
taste_mult = 1.2
+ value = REAGENT_VALUE_COMMON //Encouraging people to mix toxins for reasons beyond harming each other or mixing reagents such as pen acid.
var/toxpwr = 1.5
/datum/reagent/toxin/on_mob_life(mob/living/carbon/M)
@@ -21,6 +22,7 @@
color = "#792300" // rgb: 121, 35, 0
toxpwr = 2.5
taste_description = "mushroom"
+ value = REAGENT_VALUE_UNCOMMON
pH = 13
/datum/reagent/toxin/mutagen
@@ -30,6 +32,7 @@
toxpwr = 0
taste_description = "slime"
taste_mult = 0.9
+ value = REAGENT_VALUE_VERY_COMMON
pH = 2.3
/datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume)
@@ -60,6 +63,7 @@
color = "#8228A0"
toxpwr = 3
pH = 4
+ value = REAGENT_VALUE_RARE //sheets are worth more
/datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C)
if(holder.has_reagent(/datum/reagent/medicine/epinephrine))
@@ -92,6 +96,7 @@
toxpwr = 0
taste_description = "acid"
pH = 1.2
+ value = REAGENT_VALUE_RARE
/datum/reagent/toxin/lexorin/on_mob_life(mob/living/carbon/C)
. = TRUE
@@ -114,6 +119,7 @@
taste_description = "slime"
taste_mult = 1.3
pH = 10
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/toxin/slimejelly/on_mob_life(mob/living/carbon/M)
if(prob(10))
@@ -132,6 +138,7 @@
toxpwr = 0
taste_description = "mint"
pH = 8
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/toxin/minttoxin/on_mob_life(mob/living/carbon/M)
if(HAS_TRAIT(M, TRAIT_FAT))
@@ -145,6 +152,7 @@
toxpwr = 2
taste_description = "fish"
pH = 12
+ value = REAGENT_VALUE_RARE
/datum/reagent/toxin/zombiepowder
name = "Zombie Powder"
@@ -155,6 +163,7 @@
taste_description = "death"
var/fakedeath_active = FALSE
pH = 13
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/L)
..()
@@ -193,6 +202,7 @@
toxpwr = 0.8
taste_description = "death"
pH = 14.5
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/toxin/ghoulpowder/on_mob_metabolize(mob/living/L)
..()
@@ -214,6 +224,7 @@
toxpwr = 0
taste_description = "sourness"
pH = 11
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M)
M.hallucination += 5
@@ -226,6 +237,7 @@
toxpwr = 1
taste_mult = 1
pH = 2.7
+ value = REAGENT_VALUE_NONE
/datum/reagent/toxin/plantbgone/reaction_obj(obj/O, reac_volume)
if(istype(O, /obj/structure/alien/weeds))
@@ -250,6 +262,7 @@
description = "A harmful toxic mixture to kill weeds. Do not ingest!"
color = "#4B004B" // rgb: 75, 0, 75
pH = 3
+ value = REAGENT_VALUE_NONE
/datum/reagent/toxin/pestkiller
name = "Pest Killer"
@@ -257,6 +270,7 @@
color = "#4B004B" // rgb: 75, 0, 75
toxpwr = 1
pH = 3.2
+ value = REAGENT_VALUE_NONE
/datum/reagent/toxin/pestkiller/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
..()
@@ -270,6 +284,7 @@
color = "#9ACD32"
toxpwr = 1
pH = 11
+ value = REAGENT_VALUE_RARE
/datum/reagent/toxin/spore/on_mob_life(mob/living/carbon/C)
C.damageoverlaytemp = 60
@@ -284,6 +299,7 @@
toxpwr = 0.5
taste_description = "burning"
pH = 13
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/spore_burning/on_mob_life(mob/living/carbon/M)
M.adjust_fire_stacks(2)
@@ -323,6 +339,7 @@
glass_name = "glass of beer"
glass_desc = "A freezing pint of beer."
pH = 2
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/fakebeer/on_mob_life(mob/living/carbon/M)
switch(current_cycle)
@@ -340,6 +357,7 @@
color = "#5B2E0D" // rgb: 91, 46, 13
toxpwr = 0.5
pH = 4.2
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/toxin/teapowder
name = "Ground Tea Leaves"
@@ -348,6 +366,7 @@
color = "#7F8400" // rgb: 127, 132, 0
toxpwr = 0.5
pH = 4.9
+ value = REAGENT_VALUE_VERY_COMMON
/datum/reagent/toxin/mutetoxin //the new zombie powder.
name = "Mute Toxin"
@@ -367,6 +386,7 @@
color = "#6E2828"
data = 15
toxpwr = 0
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M)
M.adjustStaminaLoss(REM * data, 0)
@@ -381,6 +401,7 @@
color = "#787878"
metabolization_rate = 0.125 * REAGENTS_METABOLISM
toxpwr = 0
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/polonium/on_mob_life(mob/living/carbon/M)
M.radiation += 4
@@ -394,6 +415,7 @@
metabolization_rate = 0.25 * REAGENTS_METABOLISM
overdose_threshold = 30
toxpwr = 0
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/toxin/histamine/on_mob_life(mob/living/carbon/M)
if(prob(50))
@@ -441,6 +463,7 @@
color = "#F0FFF0"
metabolization_rate = 0.25 * REAGENTS_METABOLISM
toxpwr = 0
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/venom/on_mob_life(mob/living/carbon/M)
toxpwr = 0.2*volume
@@ -476,6 +499,7 @@
color = "#00B4FF"
metabolization_rate = 0.125 * REAGENTS_METABOLISM
toxpwr = 1.25
+ value = REAGENT_VALUE_UNCOMMON
/datum/reagent/toxin/cyanide/on_mob_life(mob/living/carbon/M)
if(prob(5))
@@ -494,6 +518,7 @@
metabolization_rate = 0.25 * REAGENTS_METABOLISM
toxpwr = 0.5
taste_description = "bad cooking"
+ value = REAGENT_VALUE_NONE
/datum/reagent/toxin/condensed_cooking_oil
name = "Condensed Cooking Oil"
@@ -504,6 +529,7 @@
toxpwr = 0
taste_mult = -2
taste_description = "awful cooking"
+ value = REAGENT_VALUE_NONE
/datum/reagent/toxin/condensed_cooking_oil/on_mob_life(mob/living/carbon/M)
if(prob(5))
@@ -551,6 +577,7 @@
color = "#7F10C0"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
toxpwr = 2.5
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/toxin/initropidril/on_mob_life(mob/living/carbon/C)
if(prob(25))
@@ -582,6 +609,7 @@
metabolization_rate = 0.25 * REAGENTS_METABOLISM
toxpwr = 0
taste_mult = 0 // undetectable, I guess?
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/pancuronium/on_mob_life(mob/living/carbon/M)
if(current_cycle >= 10)
@@ -598,6 +626,7 @@
color = "#6496FA"
metabolization_rate = 0.75 * REAGENTS_METABOLISM
toxpwr = 0
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/sodium_thiopental/on_mob_life(mob/living/carbon/M)
if(current_cycle >= 10)
@@ -626,6 +655,7 @@
color = "#FFFFFF"
toxpwr = 0
metabolization_rate = 0.5 * REAGENTS_METABOLISM
+ value = REAGENT_VALUE_RARE
/datum/reagent/toxin/amanitin/on_mob_end_metabolize(mob/living/M)
var/toxdamage = current_cycle*3*REM
@@ -656,6 +686,7 @@
color = "#7DC3A0"
metabolization_rate = 0.06 * REAGENTS_METABOLISM
toxpwr = 1.75
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/toxin/coniine/on_mob_life(mob/living/carbon/M)
M.losebreath += 5
@@ -670,6 +701,7 @@
overdose_threshold = 29
toxpwr = 0
taste_description = "vomit"
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/spewium/on_mob_life(mob/living/carbon/C)
.=..()
@@ -693,6 +725,7 @@
color = "#191919"
metabolization_rate = 0.125 * REAGENTS_METABOLISM
toxpwr = 1
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/curare/on_mob_life(mob/living/carbon/M)
if(current_cycle >= 11)
@@ -708,6 +741,7 @@
color = "#C8C8C8" //RGB: 200, 200, 200
metabolization_rate = 0.2 * REAGENTS_METABOLISM
toxpwr = 0
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/heparin/on_mob_life(mob/living/carbon/M)
if(ishuman(M))
@@ -726,6 +760,7 @@
metabolization_rate = 0.6 * REAGENTS_METABOLISM
toxpwr = 0.5
taste_description = "spinning"
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M)
if(M.hud_used)
@@ -752,6 +787,7 @@
metabolization_rate = 0.8 * REAGENTS_METABOLISM
toxpwr = 0.25
taste_description = "skewing"
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/toxin/skewium/on_mob_life(mob/living/carbon/M)
/*
@@ -788,6 +824,7 @@
color = "#3C5133"
metabolization_rate = 0.08 * REAGENTS_METABOLISM
toxpwr = 0.15
+ value = REAGENT_VALUE_VERY_RARE
/datum/reagent/toxin/anacea/on_mob_life(mob/living/carbon/M)
var/remove_amt = 5
@@ -809,6 +846,7 @@
taste_description = "acid"
self_consuming = TRUE
pH = 2.75
+ value = REAGENT_VALUE_NONE
/datum/reagent/toxin/acid/reaction_mob(mob/living/carbon/C, method=TOUCH, reac_volume)
if(!istype(C))
@@ -840,6 +878,7 @@
color = "#5050FF"
toxpwr = 2
acidpwr = 42.0
+ value = REAGENT_VALUE_COMMON
/datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/carbon/M)
M.adjustFireLoss(current_cycle/10, 0)
@@ -853,6 +892,7 @@
metabolization_rate = 0 //stays in the system until active.
var/actual_metaboliztion_rate = REAGENTS_METABOLISM
toxpwr = 0
+ value = REAGENT_VALUE_VERY_RARE
var/actual_toxpwr = 5
var/delay = 30
@@ -871,6 +911,7 @@
color = "#F0F8FF" // rgb: 240, 248, 255
toxpwr = 0
taste_description = "stillness"
+ value = REAGENT_VALUE_RARE
/datum/reagent/toxin/mimesbane/on_mob_metabolize(mob/living/L)
ADD_TRAIT(L, TRAIT_EMOTEMUTE, type)
@@ -885,6 +926,7 @@
toxpwr = 0
taste_description = "bone hurting"
overdose_threshold = 20
+ value = REAGENT_VALUE_VERY_RARE //because it's very funny.
/datum/reagent/toxin/bonehurtingjuice/on_mob_add(mob/living/carbon/M)
M.say("oof ouch my bones", forced = /datum/reagent/toxin/bonehurtingjuice)
@@ -944,6 +986,7 @@
toxpwr = 0
taste_description = "brain hurting"
metabolization_rate = 5
+ value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/toxin/brainhurtingjuice/on_mob_life(mob/living/carbon/M)
if(prob(50))
@@ -962,6 +1005,7 @@
metabolization_rate = 0.5 * REAGENTS_METABOLISM
toxpwr = 0
taste_description = "tannin"
+ value = REAGENT_VALUE_RARE
/datum/reagent/toxin/bungotoxin/on_mob_life(mob/living/carbon/M)
M.adjustOrganLoss(ORGAN_SLOT_HEART, 3)
diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm
index 0b32952d20..9cf9acb424 100644
--- a/code/modules/reagents/chemistry/recipes/medicine.dm
+++ b/code/modules/reagents/chemistry/recipes/medicine.dm
@@ -105,7 +105,7 @@
if(St.purity < 1)
St.volume *= St.purity
St.purity = 1
- var/amount = CLAMP(0.002, 0, N.volume)
+ var/amount = clamp(0.002, 0, N.volume)
N.volume -= amount
St.data["grown_volume"] = St.data["grown_volume"] + added_volume
St.name = "[initial(St.name)] [round(St.data["grown_volume"], 0.1)]u colony"
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
index 2c8be10ace..8782d65f76 100644
--- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
@@ -195,7 +195,7 @@
return
holder.remove_reagent(/datum/reagent/sorium, multiplier*4)
var/turf/T = get_turf(holder.my_atom)
- var/range = CLAMP(sqrt(multiplier*4), 1, 6)
+ var/range = clamp(sqrt(multiplier*4), 1, 6)
goonchem_vortex(T, 1, range)
/datum/chemical_reaction/sorium_vortex
@@ -206,7 +206,7 @@
/datum/chemical_reaction/sorium_vortex/on_reaction(datum/reagents/holder, multiplier)
var/turf/T = get_turf(holder.my_atom)
- var/range = CLAMP(sqrt(multiplier), 1, 6)
+ var/range = clamp(sqrt(multiplier), 1, 6)
goonchem_vortex(T, 1, range)
/datum/chemical_reaction/liquid_dark_matter
@@ -220,7 +220,7 @@
return
holder.remove_reagent(/datum/reagent/liquid_dark_matter, multiplier*3)
var/turf/T = get_turf(holder.my_atom)
- var/range = CLAMP(sqrt(multiplier*3), 1, 6)
+ var/range = clamp(sqrt(multiplier*3), 1, 6)
goonchem_vortex(T, 0, range)
/datum/chemical_reaction/ldm_vortex
@@ -231,7 +231,7 @@
/datum/chemical_reaction/ldm_vortex/on_reaction(datum/reagents/holder, multiplier)
var/turf/T = get_turf(holder.my_atom)
- var/range = CLAMP(sqrt(multiplier/2), 1, 6)
+ var/range = clamp(sqrt(multiplier/2), 1, 6)
goonchem_vortex(T, 0, range)
/datum/chemical_reaction/flash_powder
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index eb473950d5..ead47e2a42 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -42,7 +42,7 @@
/datum/chemical_reaction/slime/slimemonkey/on_reaction(datum/reagents/holder)
for(var/i in 1 to 3)
- new /obj/item/reagent_containers/food/snacks/monkeycube(get_turf(holder.my_atom))
+ new /obj/item/reagent_containers/food/snacks/cube/monkey(get_turf(holder.my_atom))
..()
//Green
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 89de7c409d..f326b94e44 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -185,7 +185,7 @@
START_PROCESSING(SSobj, src)
else if((reagents.pH < -3) || (reagents.pH > 17))
visible_message("[icon2html(src, viewers(src))] \The [src] is damaged by the super pH and begins to deform! ")
- reagents.pH = CLAMP(reagents.pH, -3, 17)
+ reagents.pH = clamp(reagents.pH, -3, 17)
container_HP -= 1
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 800d66969d..368f476183 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -245,7 +245,6 @@
icon_state = "beakerbluespace"
custom_materials = list(/datum/material/glass = 5000, /datum/material/plasma = 3000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000)
volume = 300
- material_flags = MATERIAL_NO_EFFECTS
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300)
container_HP = 5
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 9555f5b64b..b24e6ab733 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -207,8 +207,8 @@
#define DELUXE_SELF_SPRAY 10
#define DELUXE_SELF_INJECT 10
-#define COMBAT_WAIT_SPRAY 0
-#define COMBAT_WAIT_INJECT 0
+#define COMBAT_WAIT_SPRAY 15
+#define COMBAT_WAIT_INJECT 15
#define COMBAT_SELF_SPRAY 0
#define COMBAT_SELF_INJECT 0
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 62ca5d658e..7fea8250d9 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -66,7 +66,7 @@
/obj/item/reagent_containers/spray/proc/spray(atom/A)
- var/range = CLAMP(get_dist(src, A), 1, current_range)
+ var/range = clamp(get_dist(src, A), 1, current_range)
var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src))
D.create_reagents(amount_per_transfer_from_this, NONE, NO_REAGENTS_VALUE)
var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index b8957775b1..1a2742d2a6 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -180,7 +180,7 @@
///Used by update_icon() and update_overlays()
/obj/item/reagent_containers/syringe/proc/get_rounded_vol()
if(reagents && reagents.total_volume)
- return CLAMP(round((reagents.total_volume / volume * 15),5), 1, 15)
+ return clamp(round((reagents.total_volume / volume * 15),5), 1, 15)
else
return 0
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 1e687816ff..54ec327fdb 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -211,7 +211,6 @@
/obj/structure/reagent_dispensers/keg
name = "keg"
desc = "A keg."
- icon = 'modular_citadel/icons/obj/objects.dmi'
icon_state = "keg"
/obj/structure/reagent_dispensers/keg/mead
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index d6ad1bf042..b47f0de032 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -57,7 +57,7 @@
return ..()
/obj/structure/bigDelivery/relay_container_resist(mob/living/user, obj/O)
- if(ismovableatom(loc))
+ if(ismovable(loc))
var/atom/movable/AM = loc //can't unwrap the wrapped container if it's inside something.
AM.relay_container_resist(user, O)
return
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index f3ac118134..cfb6d92723 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -36,6 +36,9 @@ other types of metals and chemistry for reagents).
var/dangerous_construction = FALSE //notify and log for admin investigations if this is printed.
var/departmental_flags = ALL //bitflags for deplathes.
var/list/datum/techweb_node/unlocked_by = list()
+ ///minimum and security levels the design can be printed on. Currently only available for rnd production machinery and mechfab.
+ var/min_security_level = SEC_LEVEL_GREEN
+ var/max_security_level = SEC_LEVEL_DELTA
var/research_icon //Replaces the item icon in the research console
var/research_icon_state
var/icon_cache
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm
index ee9ee14e4a..f8cf5c1d84 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm
@@ -112,8 +112,8 @@
/datum/design/rcd_ammo_large
name = "Large Compressed Matter Cartridge"
id = "rcd_ammo_large"
- build_type = AUTOLATHE | PROTOLATHE
+ build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 48000, /datum/material/glass = 32000)
build_path = /obj/item/rcd_ammo/large
- category = list("Tool Designs")
+ category = list("hacked", "Construction", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm
index 86e11010bc..78b0a365c5 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm
@@ -74,3 +74,19 @@
materials = list(/datum/material/glass = 20)
build_path = /obj/item/stock_parts/cell/emergency_light
category = list("initial", "Electronics")
+
+/datum/design/electrochromatic_control
+ name = "Electrochromatic Control Circuit"
+ id = "electrochromatic_control_circuit"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 100)
+ build_path = /obj/item/assembly/control/electrochromatic
+ category = list("initial", "Electronics")
+
+/datum/design/electrochromatic_kit
+ name = "Electrochromatic Upgrade Kit"
+ id = "electrochromatic_kit"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 2010, /datum/material/glass = 5)
+ build_path = /obj/item/electronics/electrochromatic_kit
+ category = list("initial", "Electronics")
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
index b62f30e041..76ec6224b8 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
@@ -8,7 +8,7 @@
/datum/design/kitchen_knife
name = "Kitchen Knife"
id = "kitchen_knife"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 12000)
build_path = /obj/item/kitchen/knife
category = list("initial","Dinnerware")
@@ -140,7 +140,7 @@
/datum/design/healthanalyzer
name = "Health Analyzer"
id = "healthanalyzer"
- build_type = AUTOLATHE | PROTOLATHE
+ build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 500, /datum/material/glass = 50)
build_path = /obj/item/healthanalyzer
category = list("initial", "Medical")
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
index 173240e196..20a5370793 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
@@ -36,7 +36,7 @@
/datum/design/large_welding_tool
name = "Industrial Welding Tool"
id = "large_welding_tool"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 70, /datum/material/glass = 60)
build_path = /obj/item/weldingtool/largetank
category = list("hacked", "Tools")
@@ -44,7 +44,7 @@
/datum/design/flamethrower
name = "Flamethrower"
id = "flamethrower"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 500)
build_path = /obj/item/flamethrower/full
category = list("hacked", "Security")
@@ -52,7 +52,7 @@
/datum/design/rcd
name = "Rapid Construction Device (RCD)"
id = "rcd"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 30000)
build_path = /obj/item/construction/rcd
category = list("hacked", "Construction")
@@ -60,7 +60,7 @@
/datum/design/rpd
name = "Rapid Pipe Dispenser (RPD)"
id = "rpd"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500)
build_path = /obj/item/pipe_dispenser
category = list("hacked", "Construction")
@@ -68,7 +68,7 @@
/datum/design/handcuffs
name = "Handcuffs"
id = "handcuffs"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 500)
build_path = /obj/item/restraints/handcuffs
category = list("hacked", "Security")
@@ -76,7 +76,7 @@
/datum/design/receiver
name = "Modular Receiver"
id = "receiver"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 15000)
build_path = /obj/item/weaponcrafting/receiver
category = list("hacked", "Security")
@@ -84,7 +84,7 @@
/datum/design/shotgun_slug
name = "Shotgun Slug"
id = "shotgun_slug"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun
category = list("hacked", "Security")
@@ -92,7 +92,7 @@
/datum/design/buckshot_shell
name = "Buckshot Shell"
id = "buckshot_shell"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun/buckshot
category = list("hacked", "Security")
@@ -100,7 +100,7 @@
/datum/design/shotgun_dart
name = "Shotgun Dart"
id = "shotgun_dart"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun/dart
category = list("hacked", "Security")
@@ -108,7 +108,7 @@
/datum/design/incendiary_slug
name = "Incendiary Slug"
id = "incendiary_slug"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun/incendiary
category = list("hacked", "Security")
@@ -116,7 +116,7 @@
/datum/design/riot_dart
name = "Foam Riot Dart"
id = "riot_dart"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 1125) //Discount for making individually - no box = less metal!
build_path = /obj/item/ammo_casing/caseless/foam_dart/riot
category = list("hacked", "Security")
@@ -124,7 +124,7 @@
/datum/design/riot_darts
name = "Foam Riot Dart Box"
id = "riot_darts"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 50000) //Comes with 40 darts
build_path = /obj/item/ammo_box/foambox/riot
category = list("hacked", "Security")
@@ -132,7 +132,7 @@
/datum/design/a357
name = "Revolver Bullet (.357)"
id = "a357"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/a357
category = list("hacked", "Security")
@@ -140,7 +140,7 @@
/datum/design/a762
name = "Rifle Bullet (7.62mm)"
id = "a762"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 5000) //need seclathe for clips
build_path = /obj/item/ammo_casing/a762
category = list("hacked", "Security")
@@ -148,7 +148,7 @@
/datum/design/c10mm
name = "Ammo Box (10mm)"
id = "c10mm"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 30000)
build_path = /obj/item/ammo_box/c10mm
category = list("hacked", "Security")
@@ -156,7 +156,7 @@
/datum/design/c45
name = "Ammo Box (.45)"
id = "c45"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 30000)
build_path = /obj/item/ammo_box/c45
category = list("hacked", "Security")
@@ -164,7 +164,7 @@
/datum/design/c9mm
name = "Ammo Box (9mm)"
id = "c9mm"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 30000)
build_path = /obj/item/ammo_box/c9mm
category = list("hacked", "Security")
@@ -172,7 +172,7 @@
/datum/design/electropack
name = "Electropack"
id = "electropack"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 10000, /datum/material/glass = 2500)
build_path = /obj/item/electropack
category = list("hacked", "Security")
@@ -180,7 +180,7 @@
/datum/design/cleaver
name = "Butcher's Cleaver"
id = "cleaver"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 18000)
build_path = /obj/item/kitchen/knife/butcher
category = list("hacked", "Dinnerware")
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm
index 8288ceff23..f6c31a9808 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm
@@ -49,7 +49,7 @@
/datum/design/multitool
name = "Multitool"
id = "multitool"
- build_type = AUTOLATHE | PROTOLATHE
+ build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 50, /datum/material/glass = 20)
build_path = /obj/item/multitool
category = list("initial","Tools","Tool Designs")
@@ -75,7 +75,7 @@
/datum/design/weldingtool
name = "Welding Tool"
id = "welding_tool"
- build_type = AUTOLATHE
+ build_type = AUTOLATHE | NO_PUBLIC_LATHE
materials = list(/datum/material/iron = 70, /datum/material/glass = 20)
build_path = /obj/item/weldingtool
category = list("initial","Tools","Tool Designs")
@@ -97,6 +97,7 @@
build_path = /obj/item/screwdriver
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
+
/datum/design/wirecutters
name = "Wirecutters"
id = "wirecutters"
diff --git a/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm
index 7811cfdaad..c2076db121 100644
--- a/code/modules/research/designs/autoylathe_designs.dm
+++ b/code/modules/research/designs/autoylathe_designs.dm
@@ -1,5 +1,5 @@
/datum/design/autoylathe
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
/datum/design/autoylathe/mech
category = list("initial", "Figurines")
@@ -558,15 +558,16 @@
/datum/design/foam_x9
name = "Foam Force X9 Rifle"
id = "foam_x9"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
build_path = /obj/item/gun/ballistic/automatic/x9/toy
category = list("initial", "Rifles")
+ build_type = TOYLATHE | NO_PUBLIC_LATHE
/datum/design/foam_dart
name = "Box of Foam Darts"
id = "foam_dart"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 500, /datum/material/iron = 100)
build_path = /obj/item/ammo_box/foambox
category = list("initial", "Misc")
@@ -574,7 +575,7 @@
/datum/design/foam_magpistol
name = "Foam Force Magpistol"
id = "magfoam_launcher"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250)
build_path = /obj/item/gun/ballistic/shotgun/toy/mag
category = list("initial", "Pistols")
@@ -582,15 +583,16 @@
/datum/design/foam_magrifle
name = "Foam Force MagRifle"
id = "foam_magrifle"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
build_path = /obj/item/gun/ballistic/automatic/toy/magrifle
category = list("initial", "Rifles")
+ build_type = TOYLATHE | NO_PUBLIC_LATHE
/datum/design/foam_hyperburst
name = "MagTag Hyper Rifle"
id = "foam_hyperburst"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 2000, /datum/material/glass = 1000)
build_path = /obj/item/gun/energy/laser/practice/hyperburst
category = list("initial", "Rifles")
@@ -598,7 +600,7 @@
/datum/design/foam_sp
name = "Foam Force Stealth Pistol"
id = "foam_sp"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 1000)
build_path = /obj/item/gun/ballistic/automatic/toy/pistol/stealth
category = list("initial", "Pistols")
@@ -606,7 +608,7 @@
/datum/design/toyray
name = "RayTag Gun"
id = "toyray"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 1000, /datum/material/glass = 1000)
build_path = /obj/item/gun/energy/laser/practice/raygun
category = list("initial", "Pistols")
@@ -614,15 +616,16 @@
/datum/design/am4c
name = "Foam Force AM4-C Rifle"
id = "foam_am4c"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
build_path = /obj/item/gun/ballistic/automatic/AM4C
category = list("initial", "Rifles")
+ build_type = TOYLATHE | NO_PUBLIC_LATHE
/datum/design/foam_f3
name = "Replica F3 Justicar"
id = "foam_f3"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250)
build_path = /obj/item/toy/gun/justicar
category = list("initial", "Pistols")
@@ -630,7 +633,7 @@
/datum/design/toy_blaster
name = "pump-action plastic blaster"
id = "toy_blaster"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 750, /datum/material/glass = 1000)
build_path = /obj/item/gun/energy/pumpaction/toy
category = list("initial", "Rifles")
@@ -638,7 +641,7 @@
/datum/design/capammo
name = "Box of Caps"
id = "capammo"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/iron = 10, /datum/material/glass = 10)
build_path = /obj/item/toy/ammo/gun
category = list("initial", "Misc")
@@ -646,15 +649,16 @@
/datum/design/foam_smg
name = "Foam Force SMG"
id = "foam_smg"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250)
build_path = /obj/item/gun/ballistic/automatic/toy/unrestricted
category = list("initial", "Pistols")
+ build_type = TOYLATHE | NO_PUBLIC_LATHE
/datum/design/foam_pistol
name = "Foam Force Pistol"
id = "foam_pistol"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250)
build_path = /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted
category = list("initial", "Pistols")
@@ -662,7 +666,7 @@
/datum/design/foam_shotgun
name = "Foam Force Shotgun"
id = "foam_shotgun"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
build_path = /obj/item/gun/ballistic/shotgun/toy/unrestricted
category = list("initial", "Rifles")
@@ -670,7 +674,7 @@
/datum/design/foam_dartred
name = "Box of Lastag Red Foam Darts"
id = "redfoam_dart"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 500, /datum/material/iron = 100)
build_path = /obj/item/ammo_box/foambox/tag/red
category = list("initial", "Misc")
@@ -678,7 +682,7 @@
/datum/design/foam_dartblue
name = "Box of Lastag Blue Foam Darts"
id = "bluefoam_dart"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 500, /datum/material/iron = 100)
build_path = /obj/item/ammo_box/foambox/tag/blue
category = list("initial", "Misc")
@@ -686,7 +690,7 @@
/datum/design/foam_bow
name = "Foam Force Crossbow"
id = "foam_bow"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250)
build_path = /obj/item/gun/ballistic/shotgun/toy/crossbow
category = list("initial", "Pistols")
@@ -694,15 +698,17 @@
/datum/design/foam_c20
name = "Donksoft C20R"
id = "foam_c20"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
build_path = /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted
category = list("hacked", "Rifles")
+ build_type = TOYLATHE | NO_PUBLIC_LATHE
/datum/design/foam_l6
name = "Donksoft LMG"
id = "foam_LMG"
- build_type = AUTOYLATHE
+ build_type = TOYLATHE
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
build_path = /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted
category = list("hacked", "Rifles")
+ build_type = TOYLATHE | NO_PUBLIC_LATHE
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index e82dffbe07..2cf9df6d50 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -2,6 +2,9 @@
///////Biogenerator Designs ///////
///////////////////////////////////
+//Please be wary to not add inorganic items to the results such as generic glass bottles and metal.
+//as they kind of defeat the design of this feature.
+
/datum/design/milk
name = "10u Milk"
id = "milk"
@@ -18,22 +21,6 @@
make_reagents = list(/datum/reagent/consumable/cream = 10)
category = list("initial","Food")
-/datum/design/milk_carton
- name = "Milk Carton"
- id = "milk_carton"
- build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 100)
- build_path = /obj/item/reagent_containers/food/condiment/milk
- category = list("initial","Food")
-
-/datum/design/cream_carton
- name = "Cream Carton"
- id = "cream_carton"
- build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 300)
- build_path = /obj/item/reagent_containers/food/drinks/bottle/cream
- category = list("initial","Food")
-
/datum/design/black_pepper
name = "10u Black Pepper"
id = "black_pepper"
@@ -42,15 +29,6 @@
make_reagents = list(/datum/reagent/consumable/blackpepper = 10)
category = list("initial","Food")
-/datum/design/pepper_mill
- name = "Pepper Mill"
- id = "pepper_mill"
- build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 50)
- build_path = /obj/item/reagent_containers/food/condiment/peppermill
- make_reagents = list()
- category = list("initial","Food")
-
/datum/design/enzyme
name = "10u Universal Enzyme"
id = "enzyme"
@@ -59,20 +37,12 @@
make_reagents = list(/datum/reagent/consumable/enzyme = 10)
category = list("initial","Food")
-/datum/design/flour_sack
- name = "Flour Sack"
- id = "flour_sack"
- build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 150)
- build_path = /obj/item/reagent_containers/food/condiment/flour
- category = list("initial","Food")
-
/datum/design/monkey_cube
name = "Monkey Cube"
id = "mcube"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass = 250)
- build_path = /obj/item/reagent_containers/food/snacks/monkeycube
+ build_path = /obj/item/reagent_containers/food/snacks/cube/monkey
category = list("initial", "Food")
/datum/design/smeat
@@ -84,43 +54,43 @@
category = list("initial", "Food")
/datum/design/ez_nut
- name = "E-Z Nutrient"
+ name = "10u E-Z Nutrient"
id = "ez_nut"
build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 10)
- build_path = /obj/item/reagent_containers/glass/bottle/nutrient/ez
+ materials = list(/datum/material/biomass = 2)
+ make_reagents = list(/datum/reagent/plantnutriment/eznutriment = 10)
category = list("initial","Botany Chemicals")
/datum/design/l4z_nut
- name = "Left 4 Zed"
+ name = "10u Left 4 Zed"
id = "l4z_nut"
build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 20)
- build_path = /obj/item/reagent_containers/glass/bottle/nutrient/l4z
+ materials = list(/datum/material/biomass = 4)
+ make_reagents = list(/datum/reagent/plantnutriment/left4zednutriment = 10)
category = list("initial","Botany Chemicals")
/datum/design/rh_nut
- name = "Robust Harvest"
+ name = "10u Robust Harvest"
id = "rh_nut"
build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 25)
- build_path = /obj/item/reagent_containers/glass/bottle/nutrient/rh
+ materials = list(/datum/material/biomass = 5)
+ make_reagents = list(/datum/reagent/plantnutriment/robustharvestnutriment = 10)
category = list("initial","Botany Chemicals")
/datum/design/weed_killer
name = "Weed Killer"
id = "weed_killer"
build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 50)
- build_path = /obj/item/reagent_containers/glass/bottle/killer/weedkiller
+ materials = list(/datum/material/biomass = 10)
+ make_reagents = list(/datum/reagent/toxin/plantbgone/weedkiller = 10)
category = list("initial","Botany Chemicals")
/datum/design/pest_spray
name = "Pest Killer"
id = "pest_spray"
build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 50)
- build_path = /obj/item/reagent_containers/glass/bottle/killer/pestkiller
+ materials = list(/datum/material/biomass = 10)
+ make_reagents = list(/datum/reagent/toxin/pestkiller = 10)
category = list("initial","Botany Chemicals")
/datum/design/ammonia
@@ -139,13 +109,13 @@
make_reagents = list(/datum/reagent/saltpetre = 10)
category = list("initial","Botany Chemicals")
-/datum/design/botany_bottle
- name = "Empty Bottle"
- id = "botany_bottle"
+/datum/design/empty_carton
+ name = "Small Empty Carton Box"
+ id = "empty_carton"
build_type = BIOGENERATOR
- materials = list(/datum/material/biomass = 5)
- build_path = /obj/item/reagent_containers/glass/bottle/nutrient/empty
- category = list("initial", "Botany Chemicals")
+ materials = list(/datum/material/biomass = 15)
+ build_path = /obj/item/reagent_containers/food/drinks/bottle/bio_carton
+ category = list("initial", "Organic Materials")
/datum/design/cloth
name = "Roll of Cloth"
diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm
index 6d63df7d4b..06cdef5ecc 100644
--- a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm
+++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm
@@ -111,6 +111,6 @@
name = "Machine Design (Autoylathe)"
desc = "The circuit board for an autoylathe."
id = "autoylathe"
- build_path = /obj/item/circuitboard/machine/autoylathe
+ build_path = /obj/item/circuitboard/machine/autolathe/toy
departmental_flags = DEPARTMENTAL_FLAG_ALL
category = list("Misc. Machinery")
diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm
index 04b7bbc668..e407277ebf 100644
--- a/code/modules/research/designs/misc_designs.dm
+++ b/code/modules/research/designs/misc_designs.dm
@@ -635,3 +635,27 @@
build_path = /obj/item/circuitboard/computer/sat_control
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
+
+
+
+/////////////////////////////////////////
+////////////Tackle Gloves////////////////
+/////////////////////////////////////////
+
+/datum/design/tackle_dolphin
+ name = "Dolphin Gloves"
+ id = "tackle_dolphin"
+ build_type = PROTOLATHE
+ materials = list(/datum/material/plastic = 2500)
+ build_path = /obj/item/clothing/gloves/tackler/dolphin
+ category = list("Equipment")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/tackle_rocket
+ name = "Rocket Gloves"
+ id = "tackle_rocket"
+ build_type = PROTOLATHE
+ materials = list(/datum/material/plasma = 1000, /datum/material/plastic = 2000)
+ build_path = /obj/item/clothing/gloves/tackler/rocket
+ category = list("Equipment")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm
index c72ee4fb8c..b157d0c349 100644
--- a/code/modules/research/designs/nanite_designs.dm
+++ b/code/modules/research/designs/nanite_designs.dm
@@ -529,7 +529,6 @@
////////////////////NANITE PROTOCOLS//////////////////////////////////////
//Note about the category name: The UI cuts the last 8 characters from the category name to remove the " Nanites" in the other categories
//Because of this, Protocols was getting cut down to "P", so i had to add some padding
-/*
/datum/design/nanites/kickstart
name = "Kickstart Protocol"
desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation."
@@ -557,4 +556,10 @@
id = "offline_nanites"
program_type = /datum/nanite_program/protocol/offline
category = list("Protocols_Nanites")
-*/
+
+/datum/design/nanites/synergy
+ name = "Synergy Protocol"
+ desc = "Replication Protocol: the nanites syncronize their tasks and processes within a host, leading to an increase in replication speed proportional to the current nanite volume."
+ id = "synergy_nanites"
+ program_type = /datum/nanite_program/protocol/synergy
+ category = list("Protocols_Nanites")
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 44b71a025f..93168e17c7 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -135,6 +135,15 @@
//Ammo Shells/
//////////////
+/datum/design/shell_clip
+ name = "stripper clip (shotgun shells)"
+ id = "sec_shellclip"
+ build_type = PROTOLATHE
+ materials = list(/datum/material/iron = 5000)
+ build_path = /obj/item/ammo_box/shotgun
+ category = list("Ammo")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
/datum/design/beanbag_slug/sec
id = "sec_beanbag"
build_type = PROTOLATHE
@@ -166,7 +175,7 @@
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/incendiary_slug/sec
- id = "sec_Islug"
+ id = "sec_islug"
build_type = PROTOLATHE
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 42b8a4dcbb..cc02e271f9 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -101,7 +101,7 @@ Note: Must be placed within 3 tiles of the R&D Console
if(!istype(loaded_item) || !istype(linked_console))
return FALSE
- if (id && id != RESEARCH_MATERIAL_RECLAMATION_ID)
+ if (id && id != RESEARCH_MATERIAL_RECLAMATION_ID && id != RESEARCH_DEEP_SCAN_ID)
var/datum/techweb_node/TN = SSresearch.techweb_node_by_id(id)
if(!istype(TN))
return FALSE
@@ -125,7 +125,7 @@ Note: Must be placed within 3 tiles of the R&D Console
if(destroy_item(loaded_item))
linked_console.stored_research.boost_with_path(SSresearch.techweb_node_by_id(TN.id), dpath)
- else
+ else if(id == RESEARCH_MATERIAL_RECLAMATION_ID)
var/list/point_value = techweb_item_point_check(loaded_item)
if(linked_console.stored_research.deconstructed_items[loaded_item.type])
point_value = list()
@@ -143,6 +143,15 @@ Note: Must be placed within 3 tiles of the R&D Console
if(destroy_item(loaded_item))
linked_console.stored_research.add_point_list(point_value)
linked_console.stored_research.deconstructed_items[loaded_type] = point_value
+ else if(id == RESEARCH_DEEP_SCAN_ID)
+ var/list/return_list = list()
+ . = SEND_SIGNAL(loaded_item, COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN, src, user, return_list)
+ flick("d_analyzer_process", src)
+ if(. & COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION)
+ say("New information uncovered from item deep scan[length(return_list)? ": [english_list(return_list)]" : ""].")
+ else
+ say("Item deep scan uncovered no new information.")
+
return TRUE
/obj/machinery/rnd/destructive_analyzer/proc/unload_item()
diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm
index 41ed6a556e..a5df3f4d12 100644
--- a/code/modules/research/machinery/_production.dm
+++ b/code/modules/research/machinery/_production.dm
@@ -3,7 +3,8 @@
desc = "Makes researched and prototype items with materials and energy."
layer = BELOW_OBJ_LAYER
var/consoleless_interface = TRUE //Whether it can be used without a console.
- var/efficiency_coeff = 1 //Materials needed / coeff = actual.
+ var/offstation_security_levels = TRUE
+ var/print_cost_coeff = 1 //Materials needed * coeff = actual.
var/list/categories = list()
var/datum/component/remote_materials/materials
var/allowed_department_flags = ALL
@@ -60,7 +61,8 @@
popup.open()
/obj/machinery/rnd/production/proc/calculate_efficiency()
- efficiency_coeff = 1
+ var/total_manip_rating = 0
+ var/manips = 0
if(reagents) //If reagents/materials aren't initialized, don't bother, we'll be doing this again after reagents init anyways.
reagents.maximum_volume = 0
for(var/obj/item/reagent_containers/glass/G in component_parts)
@@ -71,17 +73,16 @@
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
total_storage += M.rating * 75000
materials.set_local_size(total_storage)
- var/total_rating = 0
for(var/obj/item/stock_parts/manipulator/M in component_parts)
- total_rating += M.rating
- total_rating = max(1, total_rating)
- efficiency_coeff = total_rating
+ total_manip_rating += M.rating
+ manips++
+ print_cost_coeff = STANDARD_PART_LEVEL_LATHE_COEFFICIENT(total_manip_rating / (manips? manips : 1))
/obj/machinery/rnd/production/examine(mob/user)
. = ..()
var/datum/component/remote_materials/materials = GetComponent(/datum/component/remote_materials)
if(in_range(user, src) || isobserver(user))
- . += "The status display reads: Storing up to [materials.local_size] material units locally. Material usage efficiency at [efficiency_coeff*100]% . "
+ . += "The status display reads: Storing up to [materials.local_size] material units locally. Material usage cost at [print_cost_coeff*100]% . "
//we eject the materials upon deconstruction.
/obj/machinery/rnd/production/on_deconstruction()
@@ -94,10 +95,9 @@
message_admins("[ADMIN_LOOKUPFLW(user)] has built [amount] of [path] at a [src]([type]).")
for(var/i in 1 to amount)
var/obj/O = new path(get_turf(src))
- if(efficient_with(O.type) && isitem(O))
- var/obj/item/I = O
- I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this.
- I.set_custom_materials(matlist.Copy())
+ if(efficient_with(O.type))
+ O.set_custom_materials(matlist.Copy())
+ O.rnd_crafted(src)
SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]"))
investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH)
@@ -112,8 +112,8 @@
// these types don't have their .materials set in do_print, so don't allow
// them to be constructed efficiently
- var/ef = efficient_with(being_built.build_path) ? efficiency_coeff : 1
- return round(A / max(1, all_materials[mat] / ef))
+ var/ef = efficient_with(being_built.build_path) ? print_cost_coeff : 1
+ return round(A / max(1, all_materials[mat] * ef))
/obj/machinery/rnd/production/proc/efficient_with(path)
return !ispath(path, /obj/item/stack/sheet) && !ispath(path, /obj/item/stack/ore/bluespace_crystal)
@@ -134,6 +134,12 @@
if(D.build_type && !(D.build_type & allowed_buildtypes))
say("This machine does not have the necessary manipulation systems for this design. Please contact Nanotrasen Support!")
return FALSE
+ if(!(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z)))
+ if(GLOB.security_level < D.min_security_level)
+ say("Minimum security alert level required to print this design not met, please contact the command staff.")
+ return FALSE
+ if(GLOB.security_level > D.max_security_level)
+ say("Exceeded maximum security alert level required to print this design, please contact the command staff.")
if(!materials.mat_container)
say("No connection to material storage, please contact the quartermaster.")
return FALSE
@@ -141,32 +147,32 @@
say("Mineral access is on hold, please contact the quartermaster.")
return FALSE
var/power = 1000
- amount = CLAMP(amount, 1, 50)
+ amount = clamp(amount, 1, 50)
for(var/M in D.materials)
power += round(D.materials[M] * amount / 35)
power = min(3000, power)
use_power(power)
- var/coeff = efficient_with(D.build_path) ? efficiency_coeff : 1
+ var/coeff = efficient_with(D.build_path) ? print_cost_coeff : 1
var/list/efficient_mats = list()
for(var/MAT in D.materials)
- efficient_mats[MAT] = D.materials[MAT]/coeff
+ efficient_mats[MAT] = D.materials[MAT] * coeff
if(!materials.mat_container.has_materials(efficient_mats, amount))
say("Not enough materials to complete prototype[amount > 1? "s" : ""].")
return FALSE
for(var/R in D.reagents_list)
- if(!reagents.has_reagent(R, D.reagents_list[R]*amount/coeff))
+ if(!reagents.has_reagent(R, D.reagents_list[R] * amount * coeff))
say("Not enough reagents to complete prototype[amount > 1? "s" : ""].")
return FALSE
materials.mat_container.use_materials(efficient_mats, amount)
materials.silo_log(src, "built", -amount, "[D.name]", efficient_mats)
for(var/R in D.reagents_list)
- reagents.remove_reagent(R, D.reagents_list[R]*amount/coeff)
+ reagents.remove_reagent(R, D.reagents_list[R] * amount * coeff)
busy = TRUE
if(production_animation)
flick(production_animation, src)
- var/timecoeff = D.lathe_time_factor / efficiency_coeff
- addtimer(CALLBACK(src, .proc/reset_busy), (30 * timecoeff * amount) ** 0.5)
- addtimer(CALLBACK(src, .proc/do_print, D.build_path, amount, efficient_mats, D.dangerous_construction, usr), (32 * timecoeff * amount) ** 0.8)
+ var/timecoeff = D.lathe_time_factor * print_cost_coeff
+ addtimer(CALLBACK(src, .proc/reset_busy), (20 * timecoeff * amount) ** 0.5)
+ addtimer(CALLBACK(src, .proc/do_print, D.build_path, amount, efficient_mats, D.dangerous_construction, usr), (20 * timecoeff * amount) ** 0.5)
return TRUE
/obj/machinery/rnd/production/proc/search(string)
@@ -241,7 +247,7 @@
/obj/machinery/rnd/production/proc/ui_screen_search()
var/list/l = list()
- var/coeff = efficiency_coeff
+ var/coeff = print_cost_coeff
l += "Search Results: "
l += "