diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b6de6f38459..ba97650547b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -99,3 +99,18 @@ There is no strict process when it comes to merging pull requests, pull requests
* If you are proposing multiple changes, which change many different aspects of the code, you are expected to section them off into different pull requests in order to make it easier to review them and to deny/accept the changes that are deemed acceptable.
* If your pull request is accepted, the code you add is no longer exclusively yours but everyones, everyone is free to work on it but you are also free to object to any changes being made, which will be noted by a Project Lead or Project Manager. It is a shame this has to be explicitly told but there have been cases where this would've saved some trouble.
+
+##Developing Secure Code
+
+* Player input must always be escaped safely, we recommend you use stripped_input in all cases where you would use input. Essentially, just always treat input from players as inherently malicious and design with that use case in mind
+
+* Calls to the database must be escaped properly - use sanitizeSQL to escape database entries from players or admins
+
+* All calls to topics must be checked for correctness, topic href calls can be generated maliciously, so you should ensure that the call is valid for the state the item is in. Do not rely on the UI code to provide only valid topic calls
+
+* Information that players could use to metagame (that is to identify the round type and or the antags via information that would not be available to them in character) should be kept as administrator only
+
+* It is recommended as well you do not expose information about the players - even something as simple as the number of people who have readied up at the start of the round can and has been used to try to identify the round type
+
+* Where you have code that can cause large scale modification and *FUN* make sure you start it out locked behind one of the default admin roles - use common sense to determine which role fits the level of damage a function could do
+
diff --git a/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm b/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm
index 24f3313094b..7a9a947f916 100644
--- a/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm
+++ b/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm
@@ -428,7 +428,7 @@
"ail" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fore)
"aim" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"})
"ain" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"})
-"aio" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fore)
+"aio" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/obj/item/clothing/shoes/jackboots,/turf/simulated/floor/plating,/area/maintenance/fore)
"aip" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fore)
"aiq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plating{burnt = 1; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/maintenance/fore)
"air" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/stack/rods,/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fore)
@@ -1351,8 +1351,8 @@
"azY" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fore)
"azZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/storage/tech)
"aAa" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/storage/tech)
-"aAb" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/storage/tech)
-"aAc" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/storage/tech)
+"aAb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/storage/tech)
+"aAc" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 1},/turf/simulated/floor/plasteel,/area/storage/tech)
"aAd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fore)
"aAe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24"},/turf/simulated/floor/plating,/area/atmos)
"aAf" = (/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/atmos)
@@ -2043,7 +2043,7 @@
"aNo" = (/turf/simulated/floor/plasteel{tag = "icon-purple (NORTH)"; icon_state = "purple"; dir = 1},/area/hallway/primary/central)
"aNp" = (/turf/simulated/floor/plasteel{tag = "icon-purple (NORTHEAST)"; icon_state = "purple"; dir = 5},/area/hallway/primary/central)
"aNq" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/hallway/primary/central)
-"aNr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/assembly/robotics)
+"aNr" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/assembly/robotics)
"aNs" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/assembly/chargebay)
"aNt" = (/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/hallway/primary/starboard)
"aNu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/hallway/primary/starboard)
@@ -2130,7 +2130,7 @@
"aOX" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/stack/rods,/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"})
"aOY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"})
"aOZ" = (/obj/item/stack/cable_coil/cut{amount = 2; icon_state = "coil_red2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating{broken = 1; icon_state = "platingdmg2"; tag = "icon-platingdmg2"},/area/maintenance/fpmaint{name = "Medical Maintenance"})
-"aPa" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"})
+"aPa" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/item/clothing/shoes/jackboots,/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"})
"aPb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/syringe,/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"})
"aPc" = (/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"})
"aPd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/l3closet/general,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"})
@@ -2224,7 +2224,7 @@
"aQN" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/atmos)
"aQO" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/atmos)
"aQP" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 5},/area/atmos)
-"aQQ" = (/obj/structure/disposalpipe/trunk,/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/disposal/deliveryChute{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/disposal)
+"aQQ" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/disposal)
"aQR" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal)
"aQS" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal)
"aQT" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/recycler,/obj/structure/sign/securearea{name = "\improper STAY CLEAR HEAVY MACHINERY"; pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/disposal)
@@ -2644,7 +2644,7 @@
"aYR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/checkpoint/engineering)
"aYS" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint/engineering)
"aYT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/security/checkpoint/engineering)
-"aYU" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Security Post - Engineering"; dir = 8; network = list("SS13")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/checkpoint/engineering)
+"aYU" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Security Post - Engineering"; dir = 8; network = list("SS13")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/computer/monitor,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/checkpoint/engineering)
"aYV" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/break_room)
"aYW" = (/turf/simulated/wall,/area/engine/break_room)
"aYX" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/janitor)
@@ -3052,7 +3052,7 @@
"bgJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/icecream_vat,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/kitchen)
"bgK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 22},/obj/machinery/camera{c_tag = "Kitchen Cold Room"},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/kitchen)
"bgL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/kitchen)
-"bgM" = (/obj/structure/table,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/kitchen)
+"bgM" = (/obj/structure/table,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/item/weapon/storage/belt/bandolier,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/kitchen)
"bgN" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/kitchen)
"bgO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Clown"},/turf/simulated/floor/plasteel{tag = "icon-redbluefull"; icon_state = "redbluefull"},/area/crew_quarters/theatre)
"bgP" = (/obj/structure/mirror{pixel_x = 28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-redbluefull"; icon_state = "redbluefull"},/area/crew_quarters/theatre)
@@ -3206,7 +3206,7 @@
"bjH" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "warehouse shutters"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/storage)
"bjI" = (/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/simulated/wall,/area/quartermaster/storage)
"bjJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/quartermaster/storage)
-"bjK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
+"bjK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/storage)
"bjL" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/aft)
"bjM" = (/obj/item/weapon/paper,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library)
"bjN" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Librarian"},/turf/simulated/floor/wood,/area/library)
@@ -3470,7 +3470,7 @@
"boL" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #2"},/obj/machinery/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage)
"boM" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
"boN" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/pen/red,/turf/simulated/floor/plasteel,/area/quartermaster/storage)
-"boO" = (/obj/machinery/computer/ordercomp,/turf/simulated/floor/plasteel,/area/quartermaster/storage)
+"boO" = (/obj/machinery/computer/ordercomp,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/storage)
"boP" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
"boQ" = (/obj/structure/window/fulltile,/obj/structure/grille,/turf/simulated/floor/plating,/area/quartermaster/storage)
"boR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft)
@@ -3751,7 +3751,7 @@
"bug" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/quartermaster/storage)
"buh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/quartermaster/storage)
"bui" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
-"buj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
+"buj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/storage)
"buk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
"bul" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Aft Port Primary Hallway Central"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/hallway/primary/aft)
"bum" = (/turf/simulated/wall,/area/security/detectives_office)
@@ -3873,9 +3873,9 @@
"bwy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "31"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/quartermaster/storage)
"bwz" = (/turf/simulated/wall,/area/quartermaster/qm)
"bwA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/quartermaster/qm)
-"bwB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/simulated/floor/plasteel,/area/quartermaster/qm)
+"bwB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/qm)
"bwC" = (/turf/simulated/wall,/area/security/checkpoint/supply{name = "Security Post - Cargo"})
-"bwD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/checkpoint/supply{name = "Security Post - Cargo"})
+"bwD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/checkpoint/supply{name = "Security Post - Cargo"})
"bwE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/checkpoint/supply{name = "Security Post - Cargo"})
"bwF" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/hallway/primary/aft)
"bwG" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/hallway/primary/aft)
@@ -4420,7 +4420,7 @@
"bGZ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/security/warden)
"bHa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/security/warden)
"bHb" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/security/warden)
-"bHc" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden)
+"bHc" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/obj/item/clothing/shoes/jackboots,/turf/simulated/floor/plating,/area/maintenance/starboard)
"bHd" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
"bHe" = (/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
"bHf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"})
@@ -4684,7 +4684,7 @@
"bMd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/hos)
"bMe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-darkred (WEST)"; icon_state = "darkred"; dir = 8},/area/security/hos)
"bMf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/fancy/carpet,/area/security/hos)
-"bMg" = (/obj/item/weapon/folder/red,/obj/item/weapon/stamp/hos,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/security/hos)
+"bMg" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/obj/item/weapon/storage/belt/bandolier,/obj/item/weapon/storage/belt/bandolier,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden)
"bMh" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Head of Security"},/turf/simulated/floor/fancy/carpet,/area/security/hos)
"bMi" = (/obj/machinery/computer/secure_data,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor/fancy/carpet,/area/security/hos)
"bMj" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/storage/box/ids,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge)
@@ -5194,10 +5194,10 @@
"bVT" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating,/area/maintenance/port{name = "Chapel Maintenance"})
"bVU" = (/obj/effect/decal/cleanable/robot_debris,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating{broken = 1; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/maintenance/port{name = "Chapel Maintenance"})
"bVV" = (/obj/machinery/light,/obj/machinery/driver_button{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = 0; pixel_y = -25},/obj/machinery/camera{c_tag = "Chapel South"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
-"bVW" = (/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
+"bVW" = (/obj/item/weapon/folder/red,/obj/item/weapon/stamp/hos,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/wood,/obj/item/clothing/mask/cigarette/cigar/cohiba,/turf/simulated/floor/fancy/carpet,/area/security/hos)
"bVX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bVY" = (/obj/machinery/power/apc{dir = 4; name = "Escape APC"; pixel_x = 25; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
-"bVZ" = (/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison)
+"bVZ" = (/obj/item/weapon/beach_ball/holoball,/turf/simulated/floor/plating,/area/security/prison)
"bWa" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison)
"bWb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bWc" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
@@ -5238,7 +5238,7 @@
"bWL" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison)
"bWM" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison)
"bWN" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
-"bWO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
+"bWO" = (/turf/simulated/floor/plasteel,/area/security/prison)
"bWP" = (/obj/machinery/vending/sustenance,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bWQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 8},/area/hallway/secondary/entry{name = "Arrivals"})
"bWR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
@@ -5274,8 +5274,8 @@
"bXv" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bXw" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/washing_machine,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison)
"bXx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison)
-"bXy" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
-"bXz" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
+"bXy" = (/obj/structure/stool,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = -28; prison_radio = 1},/turf/simulated/floor/plating,/area/security/prison)
+"bXz" = (/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/obj/structure/stool,/turf/simulated/floor/plasteel{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bXA" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bXB" = (/obj/item/seeds/ambrosiavulgarisseed,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bXC" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
@@ -5300,12 +5300,12 @@
"bXV" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bXW" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison)
"bXX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison)
-"bXY" = (/obj/structure/table,/obj/item/weapon/pen,/mob/living/simple_animal/cat{name = "Jerry"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
-"bXZ" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
+"bXY" = (/obj/machinery/shower{dir = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison)
+"bXZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plating,/area/security/prison)
"bYa" = (/obj/structure/table,/obj/machinery/librarycomp{pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bYb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 8},/area/hallway/secondary/entry{name = "Arrivals"})
"bYc" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor,/area/space)
-"bYd" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/turf/simulated/shuttle/floor,/area/space)
+"bYd" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/turf/simulated/floor/plasteel,/area/security/prison)
"bYe" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"})
"bYf" = (/obj/item/weapon/paper/pamphlet,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/turf/simulated/floor/plasteel,/area/gateway)
"bYg" = (/obj/machinery/recharger,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/structure/table,/turf/simulated/floor/plasteel,/area/gateway)
@@ -5339,11 +5339,11 @@
"bYI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bYJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bYK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
-"bYL" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/hydroponics/soil,/turf/simulated/floor/plasteel{dir = 9; icon_state = "green"},/area/security/prison)
-"bYM" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/hydroponics/soil,/obj/item/seeds/grassseed,/turf/simulated/floor/plasteel{dir = 1; icon_state = "green"},/area/security/prison)
+"bYL" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/security/prison)
+"bYM" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/mob/living/simple_animal/cat{desc = "Security's infamous cat. Probably insane."; name = "Jerry"},/turf/simulated/floor/plasteel,/area/security/prison)
"bYN" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/prison)
-"bYO" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/hydroponics/soil,/obj/item/weapon/minihoe,/turf/simulated/floor/plasteel{dir = 1; icon_state = "green"},/area/security/prison)
-"bYP" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/hydroponics/soil,/turf/simulated/floor/plasteel{dir = 5; icon_state = "green"},/area/security/prison)
+"bYO" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/simulated/floor/plasteel,/area/security/prison)
+"bYP" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/hydroponics/soil,/turf/simulated/floor/fancy/grass,/area/security/prison)
"bYQ" = (/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/wall/r_wall,/area/security/prison)
"bYR" = (/obj/machinery/camera{c_tag = "Arrivals Bay 1 West"; dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bYS" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/shuttle/floor,/area/space)
@@ -5359,7 +5359,7 @@
"bZc" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Escape South"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bZd" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bZe" = (/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
-"bZf" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
+"bZf" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/hydroponics/soil,/obj/item/seeds/grassseed,/turf/simulated/floor/fancy/grass,/area/security/prison)
"bZg" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bZh" = (/obj/item/weapon/minihoe,/turf/simulated/floor/plating,/area/security/prison)
"bZi" = (/obj/item/seeds/potatoseed,/turf/simulated/floor/plating,/area/security/prison)
@@ -5380,10 +5380,10 @@
"bZx" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"bZy" = (/obj/machinery/biogenerator,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bZz" = (/obj/machinery/seed_extractor,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
-"bZA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/hydroponics/soil,/obj/item/seeds/glowshroom,/turf/simulated/floor/plasteel{dir = 10; icon_state = "green"},/area/security/prison)
-"bZB" = (/obj/machinery/hydroponics/soil,/turf/simulated/floor/plasteel{dir = 2; icon_state = "green"},/area/security/prison)
+"bZA" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/hydroponics/soil,/obj/item/weapon/minihoe,/turf/simulated/floor/fancy/grass,/area/security/prison)
+"bZB" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel,/area/security/prison)
"bZC" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plating,/area/security/prison)
-"bZD" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/hydroponics/soil,/obj/item/seeds/carrotseed,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 6},/area/security/prison)
+"bZD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/hydroponics/soil,/obj/item/seeds/glowshroom,/turf/simulated/floor/fancy/grass,/area/security/prison)
"bZE" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bZF" = (/obj/structure/closet/wardrobe/green,/turf/simulated/shuttle/floor,/area/space)
"bZG" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor,/area/space)
@@ -5512,6 +5512,8 @@
"cbZ" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_sw"; name = "southwest of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
"cca" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_s"; name = "south of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
"ccb" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
+"ccc" = (/obj/machinery/hydroponics/soil,/turf/simulated/floor/fancy/grass,/area/security/prison)
+"ccd" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/hydroponics/soil,/obj/item/seeds/carrotseed,/turf/simulated/floor/fancy/grass,/area/security/prison)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -5591,9 +5593,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccactaccaacaacaaaaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaacabEabEacuacvacwacxacyaczacAacBacCabNacDacEacFabNabNaacaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacGacHacIacIacIacIacIacIacIacIacIacIacIacIacIacJaaaaaaaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaacabEacKacLabEabEacMacNacOacPacQacRacSacRacTabNaacaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUacVacWacXacYacZadaadbadcacYaddacYacYadeadfacUaacaaaaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaacaacadgadhadiadjadgadkadladmadnadkadkadoaacaacaacaacaacaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpadqadradradradradradradradradradradradpacUaacaacaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaBaacaaaadgadsadtaduadvadwadxadyadzadAadAadAaacaaaaacaaaaacaaBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpadBadradCadDadDadDadEadDadDadDadDadradFacUaacaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaadgadGadHadIadgadJadKadLadMadNadOadNaacadPaacaaaaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacacUadpadQadradRadDadDadDadSadDadDadDadDadradTacUaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaadgadgadgadgadgadUadVadWadXadYadAadZaacaaaaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpadqadradradradradradradradradradradradpacUaacaacaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaBaacaaaadgadsadtaduadvadwadxadyadzadAadAadAabDaaaaacaaaaacaaBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpadBadradCadDadDadDadEadDadDadDadDadradFacUaacaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaacaacadgadGadHadIadgadJadKadLadMadNadOadNabDadPaacaacaacaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacacUadpadQadradRadDadDadDadSadDadDadDadDadradTacUaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaadgadgadgadgadgadUadVadWadXadYadAadZabDaaaaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUaeaaebadraecadDadDadDadDadDaedaeeaefadradpacUaaaaaaaaaaaaaacaacaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaegaehaeiaejaekaelaaaaaaaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUaemaenadradraeoadDadDadDadDaepaeoadradraeqacUaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaegaeraesaesaetaesaeuaevaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaegaewaexaaaaeyaaaaezaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUaeAaeBadraeCaeDaeEaeFaeGaeHaeIaeJaeKadradpacUaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaacaeLaeMaeNaeOaeOaeOaePaeQaeRaeRaeRaeSaeRaeRaeRaeSaeRaeRaeRaeSaeRaeRaeRaeSaeRaeRaeRaeSaeRaeRaeRaeSaeRaeRaeTaeUaeOaeOaeVaegaeWaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -5670,30 +5672,30 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaacaaAaaabxNbAqbwzbArbAsbAtbAubAvbAwbwCbAxbAybAzbAAbABbwCbhzaVxbwGbACbADbAEbAFbAGbAHbupbAIbzxbzDbAJbAKbALbAMbANbAObAPbzDbAQbARbASbATbAUbAUbzDbAVbAWbAXbAYbzFbsabAZbBabBbbBcbuFbBdbBebBfbBgbBhbBibxjbBjbwgbwgbxlbBkbyBbBlbBmbBnbBobBpbBqbBrbBsbBtbBubBvbBwbBxbBybBvbBvbBzblEbBAbBBbBCbBDbBEbjzbBFbrwbrwbrwbtYbBGbBHbsPbyVbyWbBIbBJbBKbBLbzbbsSaacaaaaaaaacbBMbBNbBOaacaacbvoaacaaaaaabjzbqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaabxNbBPbBQbBQbBQbBRbBQbBSbBTbBUbBVbwCbBWbwCbwCbwCbBXbBYbBZbupbupbupbupbupbupbupbCabzxbCbbCcbCdbCebCfbCebCebCgbzDbAQbChbCibCjbCkbAUbzDbClbCmbCnbCobCpbsabCqbCrbCsbCtbCubCvbCwbCxbCybxhbxibCzbCAbwgbwgbxlbCBbzSbxpbCCbCDbwibCEbCFbCGbCHbCIbnhbCJbCKbnhbCLbCJbCJbyLbnhbnhbCMbjybjzbjzbjzbjzbjzbCNbCNbjzbCObCPbwvbjzbCQbCRbCSbCTbCTbCUbsSaacaaabCVaacaacaacaacaacaaaaaabCWaaaaaabjzbqkaacafnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbCXbCYbCZbDabDbbDcbDdbDebDfbDgbDhbDibDjbDkbDlbDmbDnbDobDpbDqbDrbDrbDqbDsbDtbDubDvbDwbDxbDybCebCebDzbCebDAbDBbCbbDCbDDbDEbDFbDGbDHbzDbDIbDJbDJbDKbDLbsabDMbDNbDObDPbuFbDQbDRbDSbDTbuCbDUbxjbDVbwgbwgbxlbDWbyBbDXbDYbDZbwibEabEbbjwbEcbjwbjwbEdbEebjwbfVbEfbjwbEgbEhbEibEjbEkbjzbElbElbElbEmbyYbyYbjzbEnbEobwvbowbjzbwwbjzbjzbsSbsSbsSaacaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaabjzbjzaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaAaaAaaAaaAaaAaaAahJaaAaaAaacaacaacaacaacaacaacaacaacbEpbEpbEqbErbEpbxNbEpbEsbEpbEtbEubEubEubEubEubEvbEubEwbExaVxbEybEzbEzbEAbwPbwPbEBbECbEDbEEbEFbEGbEGbEHbEIbEJbEIbEKbELbEMbENbEObEPbEQbzDbwVbwVbwVbERbESbsabETbBabDObEUbuFbuCbuCbEVbuCbuCbuFbuFbEWbwgbwgbyAbEXbEYbEZbFabFbbFcbFdbFebjwbfVbFfbjwbFgbsDbjwbFhbFibjwbFjbikbFkbFlbFmbjzbElbFnbFnbEmbyYbFobjzbFpbrwbFqbFrbFsbFtbFubsQbsRbsSbsSaacbvoaaaaaabvoaaaaaaaaaaaabvoaacaaaaaabjzbqkaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaAaaAaaAaaAaaAaaAahJaaAaaAaacaacaacaacaacaacaacaacaacbEpbEpbEqbErbEpbxNbEpbEsbEpbEtbEubEubEubEubEubEvbEubEwbExaVxbEybEzbEzbEAbwPbwPbEBbECbEDbEEbEFbEGbEGbEHbEIbEJbEIbEKbELbEMbENbEObEPbEQbzDbwVbwVbwVbERbESbsabETbBabDObEUbuFbuCbuCbEVbuCbuCbuFbuFbEWbwgbwgbyAbEXbEYbEZbFabFbbFcbFdbFebjwbfVbFfbjwbFgbHcbjwbFhbFibjwbFjbikbFkbFlbFmbjzbElbFnbFnbEmbyYbFobjzbFpbrwbFqbFrbFsbFtbFubsQbsRbsSbsSaacbvoaaaaaabvoaaaaaaaaaaaabvoaacaaaaaabjzbqkaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaacaaaaaaaaaaacaacaaaaacaacaaaaaaaaaaaaaacaaaaaAaaaaaaaaaaacaacaaaaaaaaaaacbFvbFwbFxbFybEpbFzbFAbFBbFCbFDbEubFEbFFbFGbFHbFIbFJaVxaVxbFKbFLbykbykbFLbyibyjbyjbFMbFNbFObFPbCebCebFQbFRbFSbFTbFUbFVbFWbFXbFYbDGbFZbzDbGabGbbGcbGdbGebsabGfbBabGgbyvbyvbyvbGhbGibGjbGkbGlbGmbwfbwgbwgbxlbGnbGobGpbxpbGqbwibGrbGsbjwbGtbGubjwbjwbjwbjwbjwbjwbjwbjwbjwbjwbGvbGwbjzbFnbFnbFnbGxbyYbGybjzbGzbrwbrwbuabrwbGAbGBbsQbGCbsSaaaaacaacaacaacaacaacaacaacaacaacaacaaaaaabjzbqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbGEbGFaaabGDbGEbGFaaabGDbGEbGFaaabGDbGEbGFaaaahJaacaaaaaaaacaaaaaaaaaaaaaacbFvbGGbEqbGHbEpbGIbGJbGKbGLbGMbEubGNbGObGPbFHbGQbFJaVxaVxbGRbGSbGTbGTbGTbGTbGTbGTbGUbGVbzDbGWbGXbzAbGYbzAbzCbzDbzDbzDbFWbGZbHabHbbHcbzDbHdbHebGcbHfbHgbsabHhbHibHjbHkbHlbHmbHnbHobHpbHpbHqbHrbxkbHsbHtbwibwibwibwibwibwibwibHubHvbjwbjwbjwbjwbHwbsDbBDbHxbHybHzbHAbHBbHAbHCbHDbjzbjzbjzbjzbjzbjzbjzbjzbHEbrwbsLbHFbHGbqabsPbsQbsRbsSaaaaaaaacaaaaaaaaaaaabHHaaaaaaaacaaaaaabqfbjzbqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbGEbGFaaabGDbGEbGFaaabGDbGEbGFaaabGDbGEbGFaaaahJaacaaaaaaaacaaaaaaaaaaaaaacbFvbGGbEqbGHbEpbGIbGJbGKbGLbGMbEubGNbGObGPbFHbGQbFJaVxaVxbGRbGSbGTbGTbGTbGTbGTbGTbGUbGVbzDbGWbGXbzAbGYbzAbzCbzDbzDbzDbFWbGZbHabHbbMgbzDbHdbHebGcbHfbHgbsabHhbHibHjbHkbHlbHmbHnbHobHpbHpbHqbHrbxkbHsbHtbwibwibwibwibwibwibwibHubHvbjwbjwbjwbjwbHwbsDbBDbHxbHybHzbHAbHBbHAbHCbHDbjzbjzbjzbjzbjzbjzbjzbjzbHEbrwbsLbHFbHGbqabsPbsQbsRbsSaaaaaaaacaaaaaaaaaaaabHHaaaaaaaacaaaaaabqfbjzbqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaaaaAaacaacaaaaacaaaaaaaaaaaaaaabFvbHJbEqbEpbEpbxNbHKbHLbHMbHNbHObHPbHQbHRbHSbHTbEuaVxaVxbwGbGSbHUbHVbHWbHXbHYbHZbIabIbbIcbIdbIebIebIfbIgbIhbIibIjbIkbIlbImbInbFWbIobzDbIpbIqbIrbHfbIsbsabItbBabIubIvbIwbIxbHnbHobIybHpbIzbIAbIBbICbICbICbICbICbICbICblEbIDbIEbIFbIGbIHbIIbIJbIJbIKbfVbfVbjwbILbIMbIMbjwbwnbINbIObIPbIObIObIObIObIQbIRbISbITbIUbIVbIWbrwbrzbjzbjzbjzbIXaaabIYbqfbqfbqfbqfbqfbqfbqfbIYbqfbIZbjzbjzbqkaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFaacbGDbJabGFaaaaaAaaaaacaacaacaaaaaaaaaaaaaaabEpbEpbJbbEpbJcbJdbJebJfbJgbJhbEubJibJjbJkbJlbJmbJnbJobbabwGbGSbHUbJpbJqbJrbJsbGTbJtbJubJvbJwbJxbJybJzbJAbJBbJBbJCbzDbzDbJDbJEbzDbzDbzDbsabsabsabJFbsabsabHnbBabIubHmbJGbHmbHnbHobJHbHpbJIbJJbJKbJLbJMbJNbJObJNbJPbJQbJRbHAbJSbJTbJUbJVbJWbjwbjwbJXbjwbIMbjwbJYbJZbKabjwbKbbHAbHAbHAbKcbKdbKebKfbKgbnnbKhbKibKjbKkbKlbKmbqbbKnbKobKnbKpbqfbKqbqfboBboCbKrboCboEbqfbKqbqfboFbjzbqkaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaacaaAaaaaaaaaaaacaacaacaaaaaaaaaaacbEpbKsbEpbKtbKubKvbKvbKvbKvbKvbKvbKwbKvbKvbKvbKvbKxaVxbwGbGSbHUbJpbKybJrbKzbKAbKBbKCbKDbKEbKFbKGbKHbJBbJBbKIbKJbKKbKLbKMbKNbKObKPbKKbKQbHnbKRbKSbKTbKUbKVbKWbKXbyvbyvbyvbKYbKZbLabLbbLcbGmbwfbLdbLebLebLebLebLfbwgbLgbLgbLgbLhbLgbLibLjbjwbLkbLlbLmbLnbLobLpbLqbLrbjwbLsbLtbLubLvbLwbLxbLybLzbLzbjzbjzbLAbLBbjzbjzbjzbjzbjzbLCbjzbqhboCbLDboCbqjbjzbjzbjzbqhboCbqjboFboFbjzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbGDbJabGFaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFafnaacaaaaaaaaaaaaaaaaacaacaacaaaaaabEpbLEbEpbLFbKubLGbLHbLIbLJbLKbLLbLMbLNbLNbLObLPbKxaVxbLQbGSbHUbLRbLSbLTbLUbLVbLWbLXbLYbJBbLZbMabMbbJBbJBbJBbMcbMdbMebMfbMgbMhbMibKKbMjbHnbMkbMlbMmbMmbMmbMnbMobMpbMqbMrbMrbMrbMsbMrbMrbMrbwfbLdbMtbMubMvbMwbLfbwgbMxbMybMzbMAbMBbMCbMDbjwbMEbMFbMGbMHbMIbMJbMKbMLbjwbjwbjwbjwbMMbMMbMMbjwbLzaacaacbsSbMNbMObMPbsSaacaacbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbGDbJabGFaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFafnaacaaaaaaaaaaaaaaaaacaacaacaaaaaabEpbLEbEpbLFbKubLGbLHbLIbLJbLKbLLbLMbLNbLNbLObLPbKxaVxbLQbGSbHUbLRbLSbLTbLUbLVbLWbLXbLYbJBbLZbMabMbbJBbJBbJBbMcbMdbMebMfbVWbMhbMibKKbMjbHnbMkbMlbMmbMmbMmbMnbMobMpbMqbMrbMrbMrbMsbMrbMrbMrbwfbLdbMtbMubMvbMwbLfbwgbMxbMybMzbMAbMBbMCbMDbjwbMEbMFbMGbMHbMIbMJbMKbMLbjwbjwbjwbjwbMMbMMbMMbjwbLzaacaacbsSbMNbMObMPbsSaacaacbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbGDbJabGFaaabGDbJabGFaacbGDbJabGFaaabGDbJabGFaaaaacaacaacaacaacaaaaacbEpbEpbEpbEpbEpbEqbEpbMQbMRbMSbMTbMUbMVbMUbMWbMXbLNbLNbMYbLPbMZbrPbNabNbbHZbHZbNcbHZbNdbGTbNebNfbNgbNhbNibNibNjbNkbNkbNlbNmbNnbNobNpbNqbNpbNrbKKbNsbHnbNtbNubNvbNwbNxbNybNzbHnbNAbMrbNBbNCbNDbNEbNFbMrbwfbLdbNGbNHbNHbNIbLfbNJbMxbNKbNLbNMbLgbNNbjybjwbjwbjwbjwbjwbNObNPbLnbNQbNRbMMaaaaacaacaacaaaaacaacaacaacbsSbNSbNTbyYbsSaacaacaacaacaaaaaaaacaacaaaaacaacaaaaaaaaaaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAafnaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFaaabGDbJabGFaacaacaacaacbNUbNVbNVbNVbNVbNWbNXbNYbNZbOabObbOcbMRbOdbMTbLIbLJbLIbOebOfbLNbLNbOgbLPbKxaVxbOhbGSbOibOjbOkbOlbOmbOnbKBbOobOpbOqbOrbOsbOtbOubOvbOwbOxbMdbOybNpbOzbNpbNpbOAbOBbHnbNtbOCbODbOEbOFbOGbOHbOIbOIbOJbOKbOLbOMbONbOObMrbOPbLdbOQbNHbNHbOQbLfbNJbORbOSbOTbOUbLgbOVbjybOWbNRbOXbOYbjwbOZbPabPbbPbbPcbMMaaaaaaaacaaaaacagkaaaaaaaacbPdbPebPfbPgbPhaacafnaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaabGDbJabGFaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFaacaaabNUbNUbNUbPibPjbPkbPlbEqbPmbPnbPobMTbMTbPpbMRbPqbMTbMUbPrbPsbLNbLNbLNbLNbLNbPtbKxaVxbhAbGSbPubPvbPvbPvbPwbPxbPxbPybPzbPAbPxbPxbPxbPxbPxbPxbPxbKKbPBbPCbPDbNpbPEbKKbPFbPGbMkbPHbPIbPJbPIbPKbPLbPMbPNbPObPPbPQbPRbPSbPTbMrbwfbLdbNGbPUbPVbNIbLfbNJbMxbPWbNLbPXbLgbPYbjybPZbQabQbbiibjwbQcbQdbQebQfbNRbMMaacaaaaaaaaaaaaaaaaaaaaaaacbQgbQhbQiaekaelaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbQjbQkbQlbQmbQnbQlbQmbQmbQnbQlbQmbQmbQnbQlbQmbQmbQnbQlbQmbQobQpbQqbQpbQrbQsbQtbQubQvbMTbMTbMTbMTbQwbQxbQybQzbMTbLIbQAbLNbLNbLNbQBbQCbQCbQDbQEbQFbQGbGSbOibOibOibQHbQIbPxbQJbQKbQLbQMbQNbQObQObQPbQQbQRbQSbKKbKKbKKbKKbQTbQUbKKbQVbQWbHnbQXbHnbQYbHnbHnbQZbRabRbbMrbRcbRdbRebPSbPTbMrbwfbLdbNGbRfbRgbNIbLfbwgbMxbRhbRibRjbRkbRlbjybRmbRnbRobRnbRpbRqbRrbRrbRsbRtbMMaacaacaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacbGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaabGDbRwbGFaacaaabNUbNUbNUbRxbRybRzbNVbRAbMTbRBbRCbRDbREbRFbRGbRHbRIbRJbRKbRLbRMbRNbRObLNbOgbLPbKxbRPbqxbGSbGSbGSbGSbGSbGTbPxbRQbRRbRSbRTbRUbRVbRWbRXbRYbRZbSabSbbScbSdbKKbSebSfbKKbSgbShbSibSjbSkbHnbSlbSmbSnbSobSpbMrbSqbSrbMrbMrbMrbMrbSsbStbSubSubSubSubSvbSwbLgbLgbSxbLgbLgbSybjybSzbSAbSBbSCbjwbSDbSEbSFbSGbSHbMMaacaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaacaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaacaacaacaacbNUbNVbNVbNVbNVbSIbMTbSJbSKbMTbSLbSMbSNbSObMTbSPbLJbSQbSRbSSbLNbLNbMYbLPbKxaVxbqxbSTaaaaacaaabSUbScbPxbPxbSVbSWbPxbSXbSYbSWbSWbSXbSZbSWbSUbTabScbKKbKKbKKbKKbTbbTcbTdbTebTfbTgbThbTibTjbTkbTbbTlbTmbTnbTobTpbTobTqbwgbwgbTrbwgbwgbwgbwgbwgbTqbTobTsbjwbTtbTubTvblEblEblEblEblEbTwbjwbjwbMMbMMbMMaacaacaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbGDbRwbGFaaabGDbRwbGFafnbGDbRwbGFaacbGDbRwbGFaaaaacaacaacaacaacaaaaacbEpbEqbMTbTxbTybMTbTzbTAbTBbTCbTDbTEbTFbTGbTHbTIbLNbLNbMYbLPbKxaVxbTJbSTaacaacaaabSUbPxbPxbTKbTLbTMbPxbTNbTObTPbSWbTQbTObTRbSUbScbScbScbTSbScbPxbTTbTUbTVbTWbTXbTYbTZbUabUbbUcbUdbTlbUebUfbwgbUgbwgbwgbwgbwgbUhbUibUibUibUjbUkbUkbUlbUmbUnbUobUpbUqbUrbUsbUtbijbfVbUubMMaacaacaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaabUvbRvaaaaacbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaabGDbRwbGFaacaacaaaafnaaaaaaaaaaaabEpbEqbMTbMTbUwbMTbMTbMTbUxbUxbMTbLIbUybUzbUAbUAbUBbUBbUAbUAbUCbUDbUEbUzbUzaacaacbSUbUFbPxbUGbUHbUIbPxbUGbTObUJbSWbUGbTObUKbSUbULbUMbUNbSUbUObPxaaaaacaaabUPbUbbUcbUbbUdaacaaaaaabLebUebUfbUQbURbUSbUTbUUbUVbUWbUXbUYbUTbUZbUTbVabUfbVbbVcbVdbVebVfbVgbVhbVibVibVibVjbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaacaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaacaacaacaacbNUbNVbNVbNVbNVbSIbMTbSJbSKbMTbSLbSMbSNbSObMTbSPbLJbSQbSRbSSbLNbLNbMYbLPbKxaVxbqxbSTaaaaacaaabSUbVZbPxbPxbSVbSWbPxbSXbSYbSWbSWbSXbSZbSWbSUbTabScbKKbKKbKKbKKbTbbTcbTdbTebTfbTgbThbTibTjbTkbTbbTlbTmbTnbTobTpbTobTqbwgbwgbTrbwgbwgbwgbwgbwgbTqbTobTsbjwbTtbTubTvblEblEblEblEblEbTwbjwbjwbMMbMMbMMaacaacaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbGDbRwbGFaaabGDbRwbGFafnbGDbRwbGFaacbGDbRwbGFaaaaacaacaacaacaacaaaaacbEpbEqbMTbTxbTybMTbTzbTAbTBbTCbTDbTEbTFbTGbTHbTIbLNbLNbMYbLPbKxaVxbTJbSTaacaacaaabSUbPxbPxbTKbTLbTMbPxbTNbWObTPbSWbTQbTObTRbSUbScbScbScbTSbScbPxbTTbTUbTVbTWbTXbTYbTZbUabUbbUcbUdbTlbUebUfbwgbUgbwgbwgbwgbwgbUhbUibUibUibUjbUkbUkbUlbUmbUnbUobUpbUqbUrbUsbUtbijbfVbUubMMaacaacaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaabUvbRvaaaaacbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaabGDbRwbGFaacaacaaaafnaaaaaaaaaaaabEpbEqbMTbMTbUwbMTbMTbMTbUxbUxbMTbLIbUybUzbUAbUAbUBbUBbUAbUAbUCbUDbUEbUzbUzaacaacbSUbUFbPxbUGbUHbUIbPxbUGbTObUJbSWbXybTObUKbSUbULbUMbUNbSUbUObPxaaaaacaaabUPbUbbUcbUbbUdaacaaaaaabLebUebUfbUQbURbUSbUTbUUbUVbUWbUXbUYbUTbUZbUTbVabUfbVbbVcbVdbVebVfbVgbVhbVibVibVibVjbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbVkbGFaaabGDbVkbGFaacbGDbVkbGFaaabGDbVkbGFaaaaaAaaaaaaaaaaaaaaaaaabEpbVlbNZbVmbOabVnbVobVpbMYbMYbMYbMUbVqbUzbVrbVsbVtbVtbVtbVtbVubVvbVwbVxbUzaacaaabSUbVybPxbPxbVzbPxbPxbPxbVAbPxbSWbPxbVBbPxbSUaUnbVCaUnbSUbTSbPxaaaaacaaaaacaaaaacaaaaaaaacaaaaaabLebUebUfbVDbTlbTlbTlbVEbVEbVEbVEbVEbTlbTlbTlbVFbUfbVGbVHbVIbVJbVKbVLbVMbVNbVNbVNbVObViaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaaaaAaaaaaaaaaaaaaaaaacbEpbVPbVQbVRbVSbVTbVUbKvbMYbMYbVVbLIbUybUzbVWbVvbVvbVvbVvbVvbVubVvbVXbVYbUzaaaaaabSUbVZbWabTObUHbWbbTObTObTObTObWcbTObTObWdbSUaUnbWeaUnbSUabDbWfaaaaacafnaaaaaaaacaaaaaaaacaaaaaabLebWgbWhbWibVEaaabWjbWkbWlbWlbWlbWmbWnaaabVEbWobWpbWqbVibWrbWsbWtbWubWvbWwbWxbWybVNbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvbRvaaaaacbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaaaaaAaaaaaaaaaaaaaaaaacbEpbEpbEpbWzbWAbWzbEpbKvbKvbWBbKvbWCbWDbWEbWFbWGbVvbVvbVvbVvbWHbWIbWJbWKbUzaaaaaabSUbWLbWMbTObUHbTObTObWNbTObTObWObTObTObWPbSUaWybdaaWzaaaabDaacaaaaacaaaaaaaaaaaaaaaafnaaaaaaaacbLebWQbWRbWSbVEbVEbWTaSlbWUbWUbWUaSobWVbVEbVEbWSbWWbVGbWXbWYbWsbWZbXabXbbXcbXdbXebVNbViaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaaabGDbXfbGFaaabGDbXfbGFaacbGDbXfbGFaaabGDbXfbGFaaaaaAaacaaaaaaaacaacaacaacaacbEpbXgbXhbXgbEpaacbKvbXibXjbXkbXlbUzbXmbXnbXobXpbXqbXrbXsbXtbXubXvbUzaacaacbSUbSUbSUbXwbXxbTObTObXybXzbXAbTObXBbTObXCbSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbVEbWQbUfbXDbXEbXDbXFaTzaTzaTzaTzaTzbXFbXDbXEbXDbUfbVGbWXbWsbXGbWsbWsbXHbXIbXJbXKbVNbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaacaacaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaAaacaacaacaacaaaaaaaaaaacbEpbEpbEpbEpbEpaaabKvbXLbXjbXjbXjbUzbXMbXNbXObXPbXQbXRbXSbXTbXUbXVbUzaaaaacbWfaacbSUbXWbXXbTObXAbXYbXZbTObTObXAbYabSUbSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVEbYbbWRbVEbVEbVEaVAaTzbYcbYcbYcbYdaVAbVEbVEbVEbWWbYebVibYfbYgbYhbYibYjbYkbYlbVNbVNbViaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaAaaAahJahJaaAaaAaaAahJaacaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaacaaaaaabUzbXMbVvbVvbVvbVvbYmbVvbVvbVvbYnbUzaacagkaacaiabSUbYobYpbTObTObYqbTObTObTObTObYrbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbYtbYubYvbVEaTAbYwaTzaTzaTzbYxaTAbVEbYybYubYzbYAbVibVibVibVibVibVibVibVibVibVibViaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYBbYCbYDbYEbYFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaaaaaaaaaacaaaaaabUzbYGbVvbVvbVvbVvbVvbVvbVvbVvbYHbYIaaaaaaaacaiabSUbYJbYKbTObTObYLbYMbYNbYObYPbSUbYQaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbUfbwgbYRbVEaSmbYSbYcbYcbYcaTzaSmbVEbYTbwgbUfbwgbUgbwgbYUbwgbYVbYWbTlaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYXbYYbYZbZabZbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaabUzbZcbVvbZdbVvbZdbZebZdbZdbZdbYHbYIaacaacaacaaabSUbZfbZgbTObTObZhbZibScbScbZjbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbLebZkbZlbwgbZmbVEaSmbZnaTzbZoaTzaTzaSmbVEbZpbwgbZlbwgbUgbUTbUTbwgbUTbZqbTlaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaAaaBaacbZrbZsbZtbZubZraacaaBaaAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUzbYIbZvbZwbZxbYIbYIbYIbYIbZwbZxbYIaaaaaaaacaaabSUbSUbZybZzbTObZAbZBbZCbZBbZDbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbUQbUTbZEbVEaVAbZFbYcbYcbYcbZGaVAbVEbZHbUTbVabZIbZJbVEbVEbZKbVEbVEbTlaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaaaacaaabZrbZLbZMbZNbZObZPaacaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaaaaAaaaaaaaaaaaaaaaaacbEpbVPbVQbVRbVSbVTbVUbKvbMYbMYbVVbLIbUybUzbXzbVvbVvbVvbVvbVvbVubVvbVXbVYbUzaaaaaabSUbXYbWabWObUHbWbbTObTObTObTObWcbTObWObWdbSUaUnbWeaUnbSUabDbWfaaaaacafnaaaaaaaacaaaaaaaacaaaaaabLebWgbWhbWibVEaaabWjbWkbWlbWlbWlbWmbWnaaabVEbWobWpbWqbVibWrbWsbWtbWubWvbWwbWxbWybVNbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvbRvaaaaacbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaaaaaAaaaaaaaaaaaaaaaaacbEpbEpbEpbWzbWAbWzbEpbKvbKvbWBbKvbWCbWDbWEbWFbWGbVvbVvbVvbVvbWHbWIbWJbWKbUzaaaaaabSUbWLbWMbTObUHbTObTObWNbTObTObXZbTObTObWPbSUaWybdaaWzaaaabDaacaaaaacaaaaaaaaaaaaaaaafnaaaaaaaacbLebWQbWRbWSbVEbVEbWTaSlbWUbWUbWUaSobWVbVEbVEbWSbWWbVGbWXbWYbWsbWZbXabXbbXcbXdbXebVNbViaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaaabGDbXfbGFaaabGDbXfbGFaacbGDbXfbGFaaabGDbXfbGFaaaaaAaacaaaaaaaacaacaacaacaacbEpbXgbXhbXgbEpaacbKvbXibXjbXkbXlbUzbXmbXnbXobXpbXqbXrbXsbXtbXubXvbUzaacaacbSUbSUbSUbXwbXxbTObTObYdbYLbXAbTObXBbTObXCbSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbVEbWQbUfbXDbXEbXDbXFaTzaTzaTzaTzaTzbXFbXDbXEbXDbUfbVGbWXbWsbXGbWsbWsbXHbXIbXJbXKbVNbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaacaacaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaAaacaacaacaacaaaaaaaaaaacbEpbEpbEpbEpbEpaaabKvbXLbXjbXjbXjbUzbXMbXNbXObXPbXQbXRbXSbXTbXUbXVbUzaaaaacbWfaacbSUbXWbXXbTObXAbYMbYObTObTObXAbYabSUbSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVEbYbbWRbVEbVEbVEaVAaTzbYcbYcbYcaTzaVAbVEbVEbVEbWWbYebVibYfbYgbYhbYibYjbYkbYlbVNbVNbViaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaAaaAahJahJaaAaaAaaAahJaacaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaacaaaaaabUzbXMbVvbVvbVvbVvbYmbVvbVvbVvbYnbUzaacagkaacaiabSUbYobYpbTObTObYqbTObTObTObWObYrbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbYtbYubYvbVEaTAbYwaTzaTzaTzbYxaTAbVEbYybYubYzbYAbVibVibVibVibVibVibVibVibVibVibViaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYBbYCbYDbYEbYFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaaaaaaaaaacaaaaaabUzbYGbVvbVvbVvbVvbVvbVvbVvbVvbYHbYIaaaaaaaacaiabSUbYJbYKbTObTObYPbZfbYNbZAbYPbSUbYQaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbUfbwgbYRbVEaSmbYSbYcbYcbYcaTzaSmbVEbYTbwgbUfbwgbUgbwgbYUbwgbYVbYWbTlaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYXbYYbYZbZabZbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaabUzbZcbVvbZdbVvbZdbZebZdbZdbZdbYHbYIaacaacaacaaabSUbZBbZgbTObTObZhbZibScbScbZjbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbLebZkbZlbwgbZmbVEaSmbZnaTzbZoaTzaTzaSmbVEbZpbwgbZlbwgbUgbUTbUTbwgbUTbZqbTlaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaAaaBaacbZrbZsbZtbZubZraacaaBaaAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUzbYIbZvbZwbZxbYIbYIbYIbYIbZwbZxbYIaaaaaaaacaaabSUbSUbZybZzbWObZDcccbZCcccccdbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbUQbUTbZEbVEaVAbZFbYcbYcbYcbZGaVAbVEbZHbUTbVabZIbZJbVEbVEbZKbVEbVEbTlaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaaaacaaabZrbZLbZMbZNbZObZPaacaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbYIbZQbYIbZQbYIaacaaaaacbYIbZQbYIaaaaaaaaaafnaacbSUbZRbZSbZTbZSbZTbZSbZTbSUbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVEbYsbZUbVEbVEbVEaTAbZVaTzaTzaTzaTzaTAbVEbVEbVEbZWbZXbVEaacbVEbXEbVEaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabZYbZYbZYbZZcaacabcaccaccaccadbZYaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbYIbZQbYIbZQbYIaacaacaacbYIbZQbYIaaaaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaacaacaacaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaabVEbYsbwgbXDbXEbXDbXFaTzbYcbYcbYcaTzcaebXDbXEbXDbwgbZXbVEaaabWSbZKbVEaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaBaacbZYcafcagcahcaicajbZrcakcalcambZYaacaaBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYIbZvcanbZxbYIaaaaacaaacanbZxbYIaaaaaaaaaaaaaaaaaaaacaacaaaaaaaaaaaaaaaaacaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbUTbWibWSbVEbVEaVAaTzaTzaTzaTzaTzaVAbVEbVEbWSbWobUTbVEaaaaaacaoaaaaaaaaaafnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabZYcapcaqcarcascatcaucavcawcaxbZYaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -5770,3 +5772,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index 7d2e2dfb590..5a0ff4026b1 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -217,7 +217,7 @@
"aei" = (/obj/machinery/camera{c_tag = "Security Escape Pod"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"aej" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space)
"aek" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space)
-"ael" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space)
+"ael" = (/turf/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/space)
"aem" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
"aen" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport)
"aeo" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport)
@@ -298,7 +298,7 @@
"afL" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/security/main)
"afM" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"afN" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space)
-"afO" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space)
+"afO" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space)
"afP" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport)
"afQ" = (/obj/machinery/door/airlock/glass_security{name = "Insanity Ward"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison)
"afR" = (/turf/simulated/wall,/area/security/brig)
@@ -489,7 +489,7 @@
"aju" = (/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 5},/area/crew_quarters/courtroom)
"ajv" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/crew_quarters/courtroom)
"ajw" = (/obj/machinery/door/window/southleft{name = "Court Cell"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom)
-"ajx" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space)
+"ajx" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space)
"ajy" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/security/processing)
"ajz" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/security/processing)
"ajA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/processing)
@@ -719,7 +719,7 @@
"anQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"anR" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"anS" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
-"anT" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/space)
+"anT" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space)
"anU" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating,/area/space)
"anV" = (/obj/machinery/door/airlock/glass_security{name = "N2O Storage"; req_access_txt = "3"},/turf/simulated/floor/plating,/area/security/processing)
"anW" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/security/processing)
@@ -1511,8 +1511,8 @@
"aDc" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/shuttle/floor,/area/space)
"aDd" = (/obj/structure/closet/wardrobe/grey,/turf/simulated/shuttle/floor,/area/space)
"aDe" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = 30},/turf/simulated/shuttle/floor,/area/space)
-"aDf" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
-"aDg" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/space)
+"aDf" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/simulated/shuttle/floor{icon = 'icons/turf/floors.dmi'; icon_state = "dark"},/area/space)
+"aDg" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon = 'icons/turf/floors.dmi'; icon_state = "dark"},/area/space)
"aDh" = (/obj/machinery/power/apc{dir = 4; name = "Entry Hall APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable,/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry)
"aDi" = (/obj/structure/closet,/obj/item/weapon/crowbar,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint2)
"aDj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/security/checkpoint2)
@@ -1573,7 +1573,7 @@
"aEm" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space)
"aEn" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/space)
"aEo" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor,/area/space)
-"aEp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space,/area/space)
+"aEp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/simulated/shuttle/floor{icon = 'icons/turf/floors.dmi'; icon_state = "dark"},/area/space)
"aEq" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry)
"aEr" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light_switch{pixel_x = 6; pixel_y = -25},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/checkpoint2)
"aEs" = (/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/checkpoint2)
@@ -1805,7 +1805,7 @@
"aIK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aIL" = (/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main)
"aIM" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/shuttle/floor,/area/space)
-"aIN" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/space)
+"aIN" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/simulated/shuttle/floor{icon = 'icons/turf/floors.dmi'; icon_state = "dark"},/area/space)
"aIO" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 2},/area/hallway/secondary/entry)
"aIP" = (/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/secondary/entry)
"aIQ" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/secondary/entry)
@@ -6532,11 +6532,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpazuatBavMavMavMavMavMavMatBazuavMaqpazvazwamHazxazyazzazAatGazBayuazCazDazEazFazGazHazCayuazIazJazKawdawdawdawdawdazLazMaxoaafazNazNazOazNazPazNazNaafaxoaxuaxvazQazRazSazTazQaxvazUazVazWazXazYazZaAaaAbaAcaAdaAeaAfayOayOayOaAgayQamwaAhacAaeUapTapTapTapTapTaAiaAjaAkayZayZayZayZayZaAlaAmaAnayZapWapWapWapWaAoaApapWaydaqcaqcaqcaqcaqcaydapWallamlaAqazhallaArallamlamlallamlarjallamlamlallamlamlallarjasjallamlamlallaAsamlarjawSaAtaroaroaroaroaroaroaroaroaroabtabtabtabtabtaafaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaylavMaaIaaIaaIaaIavMaylavMaaaaqpaAuaysaAvaAvaAwaAxaAvaAvaAyayuazCazEaAzaAAazEazEazCayuaqCaABaACaADaADaADaADaADaADaADaAEaaaazNaAFaAGaAHaAIaAJazNaaaaxoaxuaxvazQaAKaALaAMazQaxvawaazLaxxaANaAOaAPaAQaARaAbaASaATayOayOaAUayOaAgayQamwayRacAaeUapTaqOaqPaAVaqRaxOaAWayZaAXaAmaAYaAYayZaAlaAZaAnayZaBaaBbaBcaBdaBeaApaafaBfaBgaBgaBgaBgaBgaBhaaaallamlaBiaBjallallallallallallaBkaBlallallallallallallaBmaBnaBoaBpaBpaBpaBqaBraBsaBtaBuaBvaBwaBxaByaBzaBAaBBaBCaBDaBDaBDaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaajxaekaBEaekaeZaeZaeZaeZaekaBEaBFaelaqpaBGaBHaBIaBJaBKaBLaBMaBNaBOayuazCazEazEaBPazEazEazCayuaBQaBRaBSaBTaBUaBVaBWaBXaBYaBZaAEaafazNaCaaCbaCcaCdaCeazNaafaxoaxuaxvaCfaCgaChaCiaCjaxvapNaCkaxxaClaCmaCnayOaCnaCoaCpaCqaCraAgaxKaCsaxKayQamwayRacAaeUapTarQarRarSaCtarUaCuayZaCvaAmaAmaAmazaaCwaCxaCyayZaCzaCAaCBaCCaCDaApaaaaafaaaaafaaaaafaaaaafaaaallavuaCEaBsaCFaCGallasiamlavuarjamlallaaaallawTaBsaBsaCHaCIaCJaCJaCJaCJaCJaCKaCLaCMaCNaCOaCOaCOaCPaCQaCRaCSaCTaCUaCVaCWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaekaekaCXaCYalQaCZaDaaDbaDcaDdaDealQaDfaDgavMaBGaDhaAvaDiaDjaDkaDlaDmaDnayuaDoazEazEazEazEaDpaDqaDraDsaDtaDuaBYaBYaBYaBYaBYaBYaBYaAEaaaazNaDvaDwaDxaDyaDzazNaaaaxoaxuaxvaDAaDBaDCaDDaDEaxvapNaDFaxxaxxaDGaATaDHaATaDIaxxaxxaDJaDKaxKaDLaxKayQamwayRacAaeUapTapTapTapTapTaDMaDNaDOaDPaDQaDRaDRaDRaDSayZaDTayZaDUaDVaDWaBdaBeaApallallallallallallallallallallallallallaDXallallallallawTaBtaDYaDZaEaaDZaEbaEcaEdaEdaEeaEfaEfaEfaEfaEfaEgaEhaEiaEiaEiaEiaEiaEiaBDaEjaEkaElaBDaBDaBDaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZaEmaEmaEnalQaEoalQaEoalQaEoalQaEoalQaDfaEpavMaBGaEqaAvaEraEsaEtaEuaEvaEwayuaExazEaEyaEzaEzaEAaEBaECaEDaEEaEFaEGaEGaEGaEGaEGaEHaEIaAEaafazNaEJaDwaEKaELaEMazNaafaxoaENaEOaEPaEQaDCaERaESaETaEUaEVaxKaEWaEXaDJaDJaDJaEYaEZaxKaFaaFaaxKaDJaxKaFbaoeaFcacAaeUaeUaeUaeUaeUamXawvaFdaFeaFfaFgaFeaFhaFeaFiaFeaFjayZaFkaFlaFmaBdaFnaFoaFpaFqaFraFsaFtaFuaFuaFuaFuaFvaFwaFuaFuaFxaFyaFzaFAaBpaFBaFCaFDaFEaFFaFEaFGaFHaEfaEfaFIaEfaFJaFKaFLaEfaEiaFMaEiaFNaFOaFPaFQaFRaFSaFTaFUaFVaFWaFXaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZalQalQaGaalQaEoalQaEoaGbaEoalQaEoalQaDfaEpavMaBGaGcaAvaAvaGdaGeaGfaGgaAvayuayuayuayuaGhazEazEaGiayuaGjaGkaBYaBYaBYaGlaBYaBYaBYaGmaAEaaaazNazNaGnaGoaGnazNazNaaaaxoaxuaxvaGpaGqaGraGsaGtaxvapNaGuaxKaGvaEXaDJaDJaDJaEYaGwaxKaAgaAgaxKaCsaxKaGxaGyaGzacAamXacAacAacAacAacAaGAaGBayZaGCaAmayZaGDayZaGEayZaGFayZaGGaGHaFmaBdaGIaGJaGKaGLaGMaGMaGNaGMaGMaGOaGMaGPaGQauwauwauwauwaGRaGSaGTaGUaGVamlaGWaGWaGWaGWaGXaEfaGYaGZaHaaHbaHcaHdaEfaHeaHfaEiaHgaHhaHiaHjaFRaHkaEjaEkaCTaHlaHmaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZaHnaHnaHoalQaEoalQaEoalQaEoalQaEoalQaDfaEpavMaHpaHqaHraHsaHsaHtaHuaxaaHvaHwaHxaHyayuaHzazEazEaHAayuaHBaHCaBYaHDaHEaHFaHGaHHaHIaHJaAEaaaaafaaaaHKaHLaHKaaaaafaaaaxoaxuaxvaDCaHMaHNaHOaHPaxvapNasJaxKaHQaHRaDJaDJaDJaHSaHTaxKaaaaaaaHUaHVaHWaHXaHYaHZaIaaIbaHUaaaaaaaIcaIdaIeaIfayZaIgaAmaAmaAmaCxaAmaAmaAmayZaBdaIhaIiaBdaBdaApaIjaIkaIkaIlaImaInaIkaIoaIkaIpaIqaIpaIraIpaIsaGWaGWaItaGWaGWaGWaGWaIuaIvaGWaGXaEfaGZaIwaIxaIyaIzaIAaEfaIBaICaIDaIEaIFaIGaIHaIIaIJaBAaIKaFVaFWaILaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaekaCXaCYalQalQalQalQalQalQaIMalQaDfaINavMaBGaxaaIOaIPaIPaIPaIPaIPaIPaIPaIQaxaayuaIRaISaIRayuayuaITaIUaIVaADaADaADaADaIVaIWaIXaAEaIYaIZaIZaJaaJbaJaaIZaIZaJcaxoaJdaxvaJeaxvaJfaJfaJgaxvaJhaJiaxKaxKaxKaAgaDHaAgaxKaxKaxKaHUaHUaHUaJjaHYaHYaHYaHYaHYaJkaHUaHUaHUaIcaJlaIeaJmayZayZayZayZayZayZayZayZayZayZaJnaJoaJpaJqaJraJsaJtaJuaIkaJvaImaJwaJxaJwaIpaJyaJzaIpaJAaIpaJBaJCaJDaJEaJFaJFaJFaJGaJHaJIaGWaGXaEfaJJaIwaJKaIyaIzaJLaEfaJMaJNaJOaJPaJQaJRaJSaJTaJUaJVaJWaCTaHlaHmaFYaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaekaekaCXaCYalQaCZaDaaDbaDcaDdaDealQaDgaDfavMaBGaDhaAvaDiaDjaDkaDlaDmaDnayuaDoazEazEazEazEaDpaDqaDraDsaDtaDuaBYaBYaBYaBYaBYaBYaBYaAEaaaazNaDvaDwaDxaDyaDzazNaaaaxoaxuaxvaDAaDBaDCaDDaDEaxvapNaDFaxxaxxaDGaATaDHaATaDIaxxaxxaDJaDKaxKaDLaxKayQamwayRacAaeUapTapTapTapTapTaDMaDNaDOaDPaDQaDRaDRaDRaDSayZaDTayZaDUaDVaDWaBdaBeaApallallallallallallallallallallallallallaDXallallallallawTaBtaDYaDZaEaaDZaEbaEcaEdaEdaEeaEfaEfaEfaEfaEfaEgaEhaEiaEiaEiaEiaEiaEiaBDaEjaEkaElaBDaBDaBDaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZaEmaEmaEnalQaEoalQaEoalQaEoalQaEoalQaDgaEpavMaBGaEqaAvaEraEsaEtaEuaEvaEwayuaExazEaEyaEzaEzaEAaEBaECaEDaEEaEFaEGaEGaEGaEGaEGaEHaEIaAEaafazNaEJaDwaEKaELaEMazNaafaxoaENaEOaEPaEQaDCaERaESaETaEUaEVaxKaEWaEXaDJaDJaDJaEYaEZaxKaFaaFaaxKaDJaxKaFbaoeaFcacAaeUaeUaeUaeUaeUamXawvaFdaFeaFfaFgaFeaFhaFeaFiaFeaFjayZaFkaFlaFmaBdaFnaFoaFpaFqaFraFsaFtaFuaFuaFuaFuaFvaFwaFuaFuaFxaFyaFzaFAaBpaFBaFCaFDaFEaFFaFEaFGaFHaEfaEfaFIaEfaFJaFKaFLaEfaEiaFMaEiaFNaFOaFPaFQaFRaFSaFTaFUaFVaFWaFXaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZalQalQaGaalQaEoalQaEoaGbaEoalQaEoalQaDgaEpavMaBGaGcaAvaAvaGdaGeaGfaGgaAvayuayuayuayuaGhazEazEaGiayuaGjaGkaBYaBYaBYaGlaBYaBYaBYaGmaAEaaaazNazNaGnaGoaGnazNazNaaaaxoaxuaxvaGpaGqaGraGsaGtaxvapNaGuaxKaGvaEXaDJaDJaDJaEYaGwaxKaAgaAgaxKaCsaxKaGxaGyaGzacAamXacAacAacAacAacAaGAaGBayZaGCaAmayZaGDayZaGEayZaGFayZaGGaGHaFmaBdaGIaGJaGKaGLaGMaGMaGNaGMaGMaGOaGMaGPaGQauwauwauwauwaGRaGSaGTaGUaGVamlaGWaGWaGWaGWaGXaEfaGYaGZaHaaHbaHcaHdaEfaHeaHfaEiaHgaHhaHiaHjaFRaHkaEjaEkaCTaHlaHmaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZaHnaHnaHoalQaEoalQaEoalQaEoalQaEoalQaDgaEpavMaHpaHqaHraHsaHsaHtaHuaxaaHvaHwaHxaHyayuaHzazEazEaHAayuaHBaHCaBYaHDaHEaHFaHGaHHaHIaHJaAEaaaaafaaaaHKaHLaHKaaaaafaaaaxoaxuaxvaDCaHMaHNaHOaHPaxvapNasJaxKaHQaHRaDJaDJaDJaHSaHTaxKaaaaaaaHUaHVaHWaHXaHYaHZaIaaIbaHUaaaaaaaIcaIdaIeaIfayZaIgaAmaAmaAmaCxaAmaAmaAmayZaBdaIhaIiaBdaBdaApaIjaIkaIkaIlaImaInaIkaIoaIkaIpaIqaIpaIraIpaIsaGWaGWaItaGWaGWaGWaGWaIuaIvaGWaGXaEfaGZaIwaIxaIyaIzaIAaEfaIBaICaIDaIEaIFaIGaIHaIIaIJaBAaIKaFVaFWaILaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaekaCXaCYalQalQalQalQalQalQaIMalQaDgaINavMaBGaxaaIOaIPaIPaIPaIPaIPaIPaIPaIQaxaayuaIRaISaIRayuayuaITaIUaIVaADaADaADaADaIVaIWaIXaAEaIYaIZaIZaJaaJbaJaaIZaIZaJcaxoaJdaxvaJeaxvaJfaJfaJgaxvaJhaJiaxKaxKaxKaAgaDHaAgaxKaxKaxKaHUaHUaHUaJjaHYaHYaHYaHYaHYaJkaHUaHUaHUaIcaJlaIeaJmayZayZayZayZayZayZayZayZayZayZaJnaJoaJpaJqaJraJsaJtaJuaIkaJvaImaJwaJxaJwaIpaJyaJzaIpaJAaIpaJBaJCaJDaJEaJFaJFaJFaJGaJHaJIaGWaGXaEfaJJaIwaJKaIyaIzaJLaEfaJMaJNaJOaJPaJQaJRaJSaJTaJUaJVaJWaCTaHlaHmaFYaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaJXaekaeZaeZaeZaeZaekaBEaJYafOaqpaJZaxaaKaaKbaKbaKcaKbaKdarpaKeaKfaxaaKgaKhaKiaKiaKjaKiaKkaKlaKiaKiaKiaKiaKiaKiaKiaKmaKnaKoaKpaKqaKqaKraKsaKqaKqaKqaKtaKuaKvaKraKqaKqaKqaKwaGyaKxaHYaKyaKzaHZaIaaIaaIaaHXaHYaHYaKAaHYaKBaKCaKDaKEaKFaKGaKHaKIaHYaHYaKAaKJaKKaKLaKMaKNaKOaKPaKQaHYaKRaHYaBdaKSaKTaKUaJoaKVaKWaKXaKYaKZaLaaIkaLbaLcaLdaLeaLfaIpaLgaJzaLhaLiaIpaGWaLjaLkaLlaLmaLnaLoaLpaLqaLraGWaGXaEfaLsaLtaLuaLvaLwaLxaEfaLyaLzaEiaLAaLAaLAaLAaEiaLBaCRaJWaCTaBDaBDaBDaLCaLCaLCaLDaLDaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaylavMaaIaaIaaIaaIavMaylavMaaaaqpaAuaLEaKaaLFaLGaLHaLHaLIarpaLJaKfaLKaLLaKhaLMaLNaLOaLPaLQaLRaKiaKiaKiaKiaKiaKiaKiaKmaKiaKhaKiaKiaKiaLSaLTaLUaLUaLUaLUaLVaLUaLWaLUaLUaLXaKhaGyaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaKAaHYaLYaLZaMaaMbaMcaMdaMeaMfaHYaHYaKAaHYaHYaHYaHYaHYaHYaHYaHYaHYaMgaHYaBdaKUaKUaKUaMhaMiaMjaMkaMlaMmaMnaIkaMoaImaMpaIkaIkaIpaMqaJzaMraLiaMsaIpaGWaGWaGWaGWaGWaGWaMtaMuaMvaGWaGXaEfaMwaGZaMxaMyaGZaMzaEfaEiaEiaEiaEiaEiaEiaMAaEiaEjaMBaEkaCTaMCaMDaBDaMEaMFaMGaMHaMIaLDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpavMatBavMavMavMavMavMavMatBavMavMaqpaBGaxaaKaaMJaMKaLHaLHaLIarpaMLaKfaxaaLLaKhaKiaMMaMNaMNaMNaMOaMPaMQaMNaMRaMNaMNaMNaMSaMNaMTaMNaMNaMNaMUaMVaMWaMXaMXaMYaMZaNaaNbaNcaKiaNdaKhaGyaHYaNeaHYaNfaNfaNfaNfaNfaNfaNfaNfaNgaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNhaNfaNfaNfaNfaNfaNfaNfaNfaHYaHYaHYaBdaNiaNiaNiaNiaNiaNjaNkaJsaKZaNlaIkaNmaNnaNoaIkaNpaIpaNqaNraNsaLiaNtaIpaGWaNuaNvaNwaNxaNwaNyaNzaNAaGWaGXaEfaNBaNBaNCaNDaNEaNEaNFaEfaNGaNHaNIaBDaNJaNKaNLaEjaEjaNMaNNaBDaNOaBDaNPaNQaNRaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/code/LINDA/LINDA_fire.dm b/code/LINDA/LINDA_fire.dm
index bbf3f717a71..082608ae120 100644
--- a/code/LINDA/LINDA_fire.dm
+++ b/code/LINDA/LINDA_fire.dm
@@ -60,7 +60,7 @@
perform_exposure()
/obj/effect/hotspot/proc/perform_exposure()
- var/turf/simulated/floor/location = loc
+ var/turf/simulated/location = loc
if(!istype(location)) return 0
if(volume > CELL_VOLUME*0.95) bypassing = 1
@@ -89,7 +89,7 @@
just_spawned = 0
return 0
- var/turf/simulated/floor/location = loc
+ var/turf/simulated/location = loc
if(!istype(location))
Kill()
return
diff --git a/code/controllers/subsystem/shuttles/emergency.dm b/code/controllers/subsystem/shuttles/emergency.dm
index 2db8fc516d0..745f23e39a7 100644
--- a/code/controllers/subsystem/shuttles/emergency.dm
+++ b/code/controllers/subsystem/shuttles/emergency.dm
@@ -49,9 +49,9 @@
if(SSshuttle.emergencyAlwaysFakeRecall)
if((seclevel2num(get_security_level()) == SEC_LEVEL_RED))
- SSshuttle.emergencyFakeRecall = rand(0.2, 0.5)
+ SSshuttle.emergencyFakeRecall = rand(2, 5) * 0.1
else
- SSshuttle.emergencyFakeRecall = rand(0.5, 0.8)
+ SSshuttle.emergencyFakeRecall = rand(5, 8) * 0.1
/obj/docking_port/mobile/emergency/cancel(area/signalOrigin)
diff --git a/code/controllers/subsystem/shuttles/supply.dm b/code/controllers/subsystem/shuttles/supply.dm
index 5afbc4b3508..0e1ac879780 100644
--- a/code/controllers/subsystem/shuttles/supply.dm
+++ b/code/controllers/subsystem/shuttles/supply.dm
@@ -292,13 +292,11 @@
temp = "Main Menu
Current approved orders:
"
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
temp += "[SO.object.name] approved by [SO.orderedby] [SO.comment ? "([SO.comment])":""]
"
- temp += "
Main Menu"
else if (href_list["viewrequests"])
- temp = "Current requests:
"
+ temp = "Main Menu
Current requests:
"
for(var/datum/supply_order/SO in SSshuttle.requestlist)
temp += "#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby]
"
- temp += "
Main Menu"
else if (href_list["mainmenu"])
temp = null
@@ -493,12 +491,11 @@
temp += "
Main Menu"
*/
else if (href_list["viewrequests"])
- temp = "Current requests:
"
+ temp = "Main Menu
Current requests:
"
for(var/datum/supply_order/SO in SSshuttle.requestlist)
- temp += "#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby] [SSshuttle.supply.mode != SHUTTLE_IDLE ? "":SSshuttle.supply.getDockedId() == "supply_away" ? "":"Approve Remove"]
"
+ temp += "#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby] [SSshuttle.supply.getDockedId() == "supply_away" ? "Approve Remove" : ""]
"
temp += "
Clear list"
- temp += "
Main Menu"
else if (href_list["rreq"])
var/ordernum = text2num(href_list["rreq"])
diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm
index 065bf9d3ed1..0c230968227 100644
--- a/code/datums/diseases/advance/symptoms/genetics.dm
+++ b/code/datums/diseases/advance/symptoms/genetics.dm
@@ -24,7 +24,7 @@ Bonus
transmittable = -3
level = 6
severity = 3
- var/good_mutations = 0
+ var/list/possible_mutations
var/archived_dna = null
/datum/symptom/genetic_mutation/Activate(var/datum/disease/advance/A)
@@ -34,12 +34,12 @@ Bonus
switch(A.stage)
if(4, 5)
M << "[pick("Your skin feels itchy.", "You feel light headed.")]"
- clean_randmut(M, good_mutations == 1 ? (good_se_blocks | op_se_blocks) : bad_se_blocks, 20) // Give them a random good/bad mutation.
- domutcheck(M, null, 1) // Force the power to manifest
+ clean_randmut(M, possible_mutations) // Give them a random good/bad mutation.
return
// Archive their DNA before they were infected.
/datum/symptom/genetic_mutation/Start(var/datum/disease/advance/A)
+ possible_mutations = (bad_mutations | not_good_mutations) - mutations_list[RACEMUT]
var/mob/living/carbon/M = A.affected_mob
if(M)
if(!check_dna_integrity(M))
@@ -53,7 +53,7 @@ Bonus
if(!check_dna_integrity(M))
return
hardset_dna(M, se = archived_dna)
-
+ domutcheck(M)
/*
//////////////////////////////////////
@@ -79,5 +79,8 @@ Bonus
stage_speed = -7
transmittable = -7
level = 6
- good_mutations = 1
- severity = 0
\ No newline at end of file
+ severity = 0
+
+/datum/symptom/genetic_mutation/powers/Start(var/datum/disease/advance/A)
+ ..()
+ possible_mutations = good_mutations
\ No newline at end of file
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index fdd1842460d..af8be78dce7 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -900,7 +900,7 @@
C.dna = changeling.absorbed_dna[1]
C.real_name = C.dna.real_name
updateappearance(C)
- domutcheck(C, null)
+ domutcheck(C)
else if (href_list["nuclear"])
switch(href_list["nuclear"])
diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm
index 81ba278544f..b5f1279d655 100644
--- a/code/datums/mutations.dm
+++ b/code/datums/mutations.dm
@@ -19,17 +19,22 @@
/datum/mutation/human/proc/force_give(mob/living/carbon/human/owner)
set_block(owner)
- on_acquiring(owner)
+ . = on_acquiring(owner)
-/datum/mutation/human/proc/set_se(se_string)
+/datum/mutation/human/proc/force_lose(mob/living/carbon/human/owner)
+ set_block(owner, 0)
+ . = on_losing(owner)
+
+/datum/mutation/human/proc/set_se(se_string, on = 1)
if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) return
var/before = copytext(se_string, 1, (dna_block * DNA_BLOCK_SIZE) + 1)
- var/injection = num2hex(lowest_value + rand(1, 256 * 6))
+ var/injection = num2hex(lowest_value + (rand(1, 256 * 6) * (on ? 1 : -1)))
var/after = copytext(se_string, (dna_block * DNA_BLOCK_SIZE) + DNA_BLOCK_SIZE + 1)
return before + injection + after
-/datum/mutation/human/proc/set_block(mob/living/carbon/human/owner)
- owner.dna.struc_enzymes = set_se(owner.dna.struc_enzymes)
+/datum/mutation/human/proc/set_block(mob/living/carbon/owner, on = 1)
+ if(owner && istype(owner) && owner.dna)
+ owner.dna.struc_enzymes = set_se(owner.dna.struc_enzymes, on)
/datum/mutation/human/proc/check_block_string(se_string)
if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) return 0
@@ -160,12 +165,10 @@
/datum/mutation/human/x_ray/on_life(mob/living/carbon/human/owner)
owner.sight |= SEE_MOBS|SEE_OBJS|SEE_TURFS
owner.see_in_dark = 8
- owner.see_invisible = SEE_INVISIBLE_LEVEL_TWO
/datum/mutation/human/x_ray/on_losing(mob/living/carbon/human/owner)
if(..()) return
owner.see_in_dark = initial(owner.see_in_dark)
- owner.see_invisible = initial(owner.see_invisible)
owner.sight = initial(owner.sight)
/datum/mutation/human/nearsight
@@ -202,14 +205,18 @@
quality = NEGATIVE
text_indication = "You feel strange."
-/datum/mutation/human/bad_dna/on_acquiring(mob/living/carbon/human/owner)
+/datum/mutation/human/bad_dna/on_acquiring(var/mob/living/carbon/human/owner)
+ var/mob/new_mob
if(prob(95))
if(prob(50))
- randmutb(owner)
+ new_mob = randmutb(owner)
else
- randmuti(owner)
+ new_mob = randmuti(owner)
else
- randmutg(owner)
+ new_mob = randmutg(owner)
+ if(new_mob && ismob(new_mob))
+ owner = new_mob
+ . = owner
on_losing(owner)
/datum/mutation/human/cough
diff --git a/code/game/dna.dm b/code/game/dna.dm
index 12771d535fe..e43a55fe024 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -30,6 +30,15 @@
if(new_holder && istype(new_holder))
holder = new_holder
+/datum/dna/proc/transfer_identity(mob/living/carbon/destination)
+ if(check_dna_integrity(destination))
+ destination.dna.unique_enzymes = unique_enzymes
+ destination.dna.uni_identity = uni_identity
+ destination.dna.blood_type = blood_type
+ destination.dna.species = species
+ destination.dna.real_name = real_name
+ destination.dna.mutations = mutations
+
/datum/dna/proc/add_mutation(mutation_name)
var/datum/mutation/human/HM = mutations_list[mutation_name]
HM.on_acquiring(holder)
@@ -79,7 +88,7 @@
for(var/datum/mutation/human/A in good_mutations + bad_mutations + not_good_mutations)
if(A.name == RACEMUT && istype(character,/mob/living/carbon/monkey))
sorting[A.dna_block] = num2hex(A.lowest_value + rand(0, 256 * 6), DNA_BLOCK_SIZE)
- character.dna.mutations.Add(mutations_list[RACEMUT])
+ character.dna.mutations.Add(A)
else
sorting[A.dna_block] = random_string(DNA_BLOCK_SIZE, L)
@@ -129,7 +138,7 @@
return
/proc/check_dna_integrity(mob/living/carbon/character)
- if(!(istype(character, /mob/living/carbon/human) || istype(character, /mob/living/carbon/monkey))) //Evict xenos from carbon 2012
+ if(!character || !(istype(character, /mob/living/carbon/human) || istype(character, /mob/living/carbon/monkey))) //Evict xenos from carbon 2012
return
if(!character.dna)
if(ready_dna(character))
@@ -159,6 +168,7 @@
/proc/create_dna(mob/living/carbon/C, datum/species/S) //don't use this unless you're about to use hardset_dna or ready_dna
C.dna = new /datum/dna(C)
+ C.dna.holder = C
if(S) C.dna.species = new S() // do not remove; this is here to prevent runtimes
/////////////////////////// DNA DATUM
@@ -193,20 +203,21 @@
/proc/randmut(mob/living/carbon/M, list/candidates, difficulty = 2)
if(!check_dna_integrity(M))
return
- var/num = pick(candidates)
- var/newdna = setblock(M.dna.struc_enzymes, num, construct_block(difficulty,difficulty))
- M.dna.struc_enzymes = newdna
+ var/datum/mutation/human/num = pick(candidates)
+ . = num.force_give(M)
return
/proc/randmutb(mob/living/carbon/M)
- var/datum/mutation/human/HM = pick(bad_mutations | not_good_mutations)
- HM.on_acquiring(M)
- return randmut(M, bad_se_blocks)
+ if(!check_dna_integrity(M))
+ return
+ var/datum/mutation/human/HM = pick((bad_mutations | not_good_mutations) - mutations_list[RACEMUT])
+ . = HM.force_give(M)
/proc/randmutg(mob/living/carbon/M)
+ if(!check_dna_integrity(M))
+ return
var/datum/mutation/human/HM = pick(good_mutations)
- HM.on_acquiring(M)
- return randmut(M, good_se_blocks | op_se_blocks)
+ . = HM.force_give(M)
/proc/randmuti(mob/living/carbon/M)
if(!check_dna_integrity(M)) return
@@ -218,6 +229,7 @@
/proc/clean_dna(mob/living/carbon/M)
if(!check_dna_integrity(M))
return
+ M.dna.remove_all_mutations()
M.dna.struc_enzymes = M.dna.generate_struc_enzymes(M) // Give clean DNA.
/proc/clean_randmut(mob/living/carbon/M, list/candidates, difficulty = 2)
@@ -231,7 +243,7 @@
for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++)
if(prob(probability))
M.dna.struc_enzymes = setblock(M.dna.struc_enzymes, i, random_string(DNA_BLOCK_SIZE, hex_characters))
- domutcheck(M, null)
+ domutcheck(M)
if(ui)
for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++)
if(prob(probability))
@@ -261,7 +273,7 @@
H.update_hair()
return 1
-/proc/domutcheck(mob/living/carbon/M, connected, inj)
+/proc/domutcheck(mob/living/carbon/M)
if(!check_dna_integrity(M))
return 0
@@ -777,7 +789,7 @@
if("se")
if(buffer_slot["SE"])
viable_occupant.dna.struc_enzymes = buffer_slot["SE"]
- domutcheck(viable_occupant, connected)
+ domutcheck(viable_occupant)
if("ui")
if(buffer_slot["UI"])
viable_occupant.dna.uni_identity = buffer_slot["UI"]
@@ -883,7 +895,7 @@
last_change += "->[hex]"
viable_occupant.dna.struc_enzymes = copytext(viable_occupant.dna.struc_enzymes, 1, num) + hex + copytext(viable_occupant.dna.struc_enzymes, num+1, 0)
- domutcheck(viable_occupant, connected)
+ domutcheck(viable_occupant)
else
current_screen = "mainmenu"
diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm
index 1cbf0f81d72..09d63f00e2f 100644
--- a/code/game/gamemodes/blob/blobs/blob_mobs.dm
+++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm
@@ -74,7 +74,10 @@
H.hair_style = null
H.update_hair()
overlays = H.overlays
- overlays += image('icons/mob/blob.dmi', icon_state = "blob_head")
+ var/image/I = image('icons/mob/blob.dmi', icon_state = "blob_head")
+ I.color = color
+ color = initial(color)//looks better.
+ overlays += I
H.loc = src
is_zombie = 1
loc.visible_message(" The corpse of [H.name] suddenly rises!")
@@ -114,8 +117,8 @@
pass_flags = PASSBLOB
health = 240
maxHealth = 240
- melee_damage_lower = 25
- melee_damage_upper = 25
+ melee_damage_lower = 10
+ melee_damage_upper = 10
attacktext = "hits"
attack_sound = 'sound/effects/blobattack.ogg'
faction = list("blob")
@@ -132,14 +135,14 @@
force_threshold = 10
environment_smash = 3
mob_size = 2
+ var/mob/camera/blob/overmind
/mob/living/simple_animal/hostile/blobbernaut/AttackingTarget()
..()
if(isliving(target))
- var/mob/living/L = target
- if(L.reagents)
- L.reagents.add_reagent("spore_burning", 10)
+ if(overmind)
+ overmind.blob_reagent_datum.reaction_mob(target, TOUCH)
/mob/living/simple_animal/hostile/blobbernaut/blob_act()
diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm
index a5c9f6a8d1c..4412b095858 100644
--- a/code/game/gamemodes/blob/blobs/core.dm
+++ b/code/game/gamemodes/blob/blobs/core.dm
@@ -1,7 +1,7 @@
/obj/effect/blob/core
name = "blob core"
icon = 'icons/mob/blob.dmi'
- icon_state = "blob_core"
+ icon_state = "blank_blob"
health = 200
fire_resist = 2
var/mob/camera/blob/overmind = null // the blob core's overmind
@@ -14,10 +14,21 @@
SSobj.processing.Add(src)
if(!overmind)
create_overmind(new_overmind)
+ if(overmind)
+ adjustcolors(overmind.blob_reagent_datum.color)
point_rate = new_rate
..(loc, h)
+/obj/effect/blob/core/adjustcolors(var/a_color)
+ color = null
+ var/image/I = new('icons/mob/blob.dmi', "blob")
+ I.color = a_color
+ overlays += I
+ var/image/C = new('icons/mob/blob.dmi', "blob_core_overlay")
+ overlays += C
+
+
/obj/effect/blob/core/Destroy()
blob_cores -= src
if(overmind)
@@ -51,13 +62,15 @@
if(overmind)
overmind.update_health()
for(var/i = 1; i < 8; i += i)
- Pulse(0, i)
+ Pulse(0, i, overmind.blob_reagent_datum.color)
for(var/b_dir in alldirs)
if(!prob(5))
continue
var/obj/effect/blob/normal/B = locate() in get_step(src, b_dir)
if(B)
B.change_to(/obj/effect/blob/shield)
+ B.color = overmind.blob_reagent_datum.color
+ color = null
..()
@@ -86,6 +99,7 @@
B.key = C.key
B.blob_core = src
src.overmind = B
+ color = overmind.blob_reagent_datum.color
return 1
return 0
diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm
index d5c26dcf904..4badc0cf315 100644
--- a/code/game/gamemodes/blob/blobs/factory.dm
+++ b/code/game/gamemodes/blob/blobs/factory.dm
@@ -7,6 +7,7 @@
var/list/spores = list()
var/max_spores = 3
var/spore_delay = 0
+ var/mob/camera/blob/overmind
/obj/effect/blob/factory/update_icon()
if(health <= 0)
@@ -30,6 +31,8 @@
return 0
spore_delay = world.time + 100 // 10 seconds
PulseAnimation(1)
- new/mob/living/simple_animal/hostile/blobspore(src.loc, src)
+ var/mob/living/simple_animal/hostile/blobspore/BS = new/mob/living/simple_animal/hostile/blobspore(src.loc, src)
+ BS.color = color
+ overmind.blob_mobs.Add(BS)
return 0
diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm
index e2ec5fea7f3..4dee5d6517a 100644
--- a/code/game/gamemodes/blob/blobs/node.dm
+++ b/code/game/gamemodes/blob/blobs/node.dm
@@ -1,9 +1,10 @@
/obj/effect/blob/node
name = "blob node"
icon = 'icons/mob/blob.dmi'
- icon_state = "blob_node"
+ icon_state = "blank_blob"
health = 100
fire_resist = 2
+ var/mob/camera/blob/overmind
/obj/effect/blob/node/New(loc, var/h = 100)
@@ -11,6 +12,14 @@
SSobj.processing.Add(src)
..(loc, h)
+/obj/effect/blob/node/adjustcolors(var/a_color)
+ color = null
+ var/image/I = new('icons/mob/blob.dmi', "blob")
+ I.color = a_color
+ src.overlays += I
+ var/image/C = new('icons/mob/blob.dmi', "blob_node_overlay")
+ src.overlays += C
+
/obj/effect/blob/node/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
return
@@ -21,8 +30,9 @@
/obj/effect/blob/node/Life()
for(var/i = 1; i < 8; i += i)
- Pulse(5, i)
+ Pulse(5, i, overmind.blob_reagent_datum.color)
health = min(initial(health), health + 1)
+ color = null
/obj/effect/blob/node/update_icon()
if(health <= 0)
diff --git a/code/game/gamemodes/blob/blobs/storage.dm b/code/game/gamemodes/blob/blobs/storage.dm
new file mode 100644
index 00000000000..dcfb5ddf1ac
--- /dev/null
+++ b/code/game/gamemodes/blob/blobs/storage.dm
@@ -0,0 +1,21 @@
+/obj/effect/blob/storage
+ name = "storage blob"
+ icon = 'icons/mob/blob.dmi'
+ icon_state = "blob_resource"
+ health = 30
+ fire_resist = 2
+ var/mob/camera/blob/overmind = null
+
+/obj/effect/blob/storage/update_icon()
+ if(health <= 0)
+ overmind.max_blob_points -= 50
+ qdel(src)
+
+/obj/effect/blob/storage/PulseAnimation(var/activate = 0)
+ if(activate)
+ ..()
+ return
+
+/obj/effect/blob/storage/proc/update_max_blob_points(var/new_point_increase)
+ if(overmind)
+ overmind.max_blob_points += new_point_increase
\ No newline at end of file
diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm
index 0823430f4c0..99a5d1e8154 100644
--- a/code/game/gamemodes/blob/overmind.dm
+++ b/code/game/gamemodes/blob/overmind.dm
@@ -15,18 +15,25 @@
var/blob_points = 0
var/max_blob_points = 100
var/last_attack = 0
+ var/datum/reagent/blob_reagent_datum = new/datum/reagent()
+ var/list/blob_mobs = list()
/mob/camera/blob/New()
var/new_name = "[initial(name)] ([rand(1, 999)])"
name = new_name
real_name = new_name
last_attack = world.time
+ var/list/possible_reagents = list()
+ for(var/type in (typesof(/datum/reagent/blob) - /datum/reagent/blob))
+ possible_reagents.Add(new type)
+ blob_reagent_datum = pick(possible_reagents)
..()
/mob/camera/blob/Login()
..()
sync_mind()
src << "You are the overmind!"
+ src << "Your randomly chosen reagent is: [blob_reagent_datum.name]!"
src << "You are the overmind and can control the blob! You can expand, which will attack people, and place new blob pieces such as..."
src << "Normal Blob will expand your reach and allow you to upgrade into special blobs that perform certain functions."
src << "Shield Blob is a strong and expensive blob which can take more damage. It is fireproof and can block air, use this to protect yourself from station fires."
@@ -70,7 +77,7 @@
return
var/message_a = say_quote(message)
- var/rendered = "Blob Telepathy, [name] "
+ var/rendered = "Blob Telepathy, [name]([blob_reagent_datum.name]) "
for (var/mob/M in mob_list)
if(isovermind(M) || isobserver(M))
@@ -83,14 +90,11 @@
return
/mob/camera/blob/Stat()
-
- statpanel("Status")
..()
- if (client.statpanel == "Status")
+ if(statpanel("Status"))
if(blob_core)
stat(null, "Core Health: [blob_core.health]")
stat(null, "Power Stored: [blob_points]/[max_blob_points]")
- return
/mob/camera/blob/Move(var/NewLoc, var/Dir = 0)
var/obj/effect/blob/B = locate() in range("3x3", NewLoc)
diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm
index 8919d3271ac..3c2b72e9b90 100644
--- a/code/game/gamemodes/blob/powers.dm
+++ b/code/game/gamemodes/blob/powers.dm
@@ -54,8 +54,9 @@
if(!can_buy(10))
return
-
+ B.color = blob_reagent_datum.color
B.change_to(/obj/effect/blob/shield)
+
return
@@ -88,7 +89,7 @@
if(!can_buy(40))
return
-
+ B.color = blob_reagent_datum.color
B.change_to(/obj/effect/blob/resource)
var/obj/effect/blob/resource/R = locate() in T
if(R)
@@ -124,8 +125,11 @@
if(!can_buy(60))
return
-
B.change_to(/obj/effect/blob/node)
+ var/obj/effect/blob/node/R = locate() in T
+ if(R)
+ R.adjustcolors(blob_reagent_datum.color)
+ R.overmind = src
return
@@ -157,6 +161,10 @@
return
B.change_to(/obj/effect/blob/factory)
+ B.color = blob_reagent_datum.color
+ var/obj/effect/blob/factory/R = locate() in T
+ if(R)
+ R.overmind = src
return
@@ -185,7 +193,9 @@
var/mob/living/simple_animal/hostile/blobbernaut/blobber = new /mob/living/simple_animal/hostile/blobbernaut (get_turf(B))
if(blobber)
B.Destroy()
-
+ blobber.color = blob_reagent_datum.color
+ blobber.overmind = src
+ blob_mobs.Add(blobber)
return
@@ -264,7 +274,10 @@
if(!can_buy(5))
return
last_attack = world.time
- OB.expand(T, 0)
+ OB.expand(T, 0, blob_reagent_datum.color)
+ for(var/mob/living/L in T)
+ blob_reagent_datum.reaction_mob(L, TOUCH)
+ OB.color = blob_reagent_datum.color
return
@@ -292,3 +305,94 @@
BS.LoseTarget()
BS.Goto(pick(surrounding_turfs), BS.move_to_delay)
return
+
+
+/mob/camera/blob/verb/split_consciousness()
+ set category = "Blob"
+ set name = "Split consciousness (100) (One use)"
+ set desc = "Expend resources to attempt to produce another sentient overmind"
+
+
+ var/client/C = null
+ var/list/candidates = get_candidates(BE_BLOB)
+ if(candidates.len)
+ C = pick(candidates)
+
+ if(C)
+ if(!blob_nodes || !blob_nodes.len)
+ src << "A node is required to birth your offspring..."
+ return
+ var/obj/effect/blob/node/N = locate(/obj/effect/blob) in blob_nodes
+ if(!N)
+ src << "A node is required to birth your offspring..."
+ return
+
+ if(!can_buy(100))
+ return
+
+ verbs -= /mob/camera/blob/verb/split_consciousness //we've used our split_consciousness
+ var/obj/effect/blob/core/new_core = new(get_turf(N), 200, C, blob_core.point_rate)
+ qdel(N)
+ var/mob/camera/blob/B = new(get_turf(new_core))
+ B.key = C.key
+ B.blob_core = new_core
+ new_core.overmind = B
+
+ if(ticker && ticker.mode.name == "blob")
+ var/datum/game_mode/blob/BL = ticker.mode
+ BL.blobwincount = initial(BL.blobwincount) * 2
+
+ else
+ src << "You weren't able to split your consciousness at this time..."
+
+/mob/camera/blob/verb/blob_broadcast()
+ set category = "Blob"
+ set name = "Blob Broadcast"
+ set desc = "Speak with your blob spores and blobbernauts as your mouthpieces. This action is free."
+
+ var/speak_text = input(usr, "What would you like to say with your minions?", "Blob Broadcast", null) as text
+
+ if(!speak_text)
+ return
+ else
+ usr << "You broadcast with your minions, [speak_text]"
+ for(var/mob/living/simple_animal/hostile/blob_minion in blob_mobs)
+ blob_minion.say(speak_text)
+ return
+
+/mob/camera/blob/verb/create_storage()
+ set category = "Blob"
+ set name = "Create Storage Blob (40)"
+ set desc = "Create a storage tower which will store extra resources for you. This increases your max resource cap by 50."
+
+
+ var/turf/T = get_turf(src)
+
+ if(!T)
+ return
+
+ var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
+
+ if(!B)//We are on a blob
+ src << "There is no blob here!"
+ return
+
+ if(!istype(B, /obj/effect/blob/normal))
+ src << "Unable to use this blob, find a normal one."
+ return
+
+ for(var/obj/effect/blob/storage/blob in orange(3, T))
+ src << "There is a storage blob nearby, move more than 4 tiles away from it!"
+ return
+
+ if(!can_buy(40))
+ return
+
+ B.color = blob_reagent_datum.color
+ B.change_to(/obj/effect/blob/storage)
+ var/obj/effect/blob/storage/R = locate() in T
+ if(R)
+ R.overmind = src
+ R.update_max_blob_points(50)
+
+ return
\ No newline at end of file
diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index 357bdd7c195..56e73d4e1bb 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -51,7 +51,8 @@
return
/obj/effect/blob/proc/PulseAnimation()
- flick("[icon_state]_glow", src)
+ if(!istype(src, /obj/effect/blob/core) || !istype(src, /obj/effect/blob/node))
+ flick("[icon_state]_glow", src)
return
/obj/effect/blob/proc/RegenHealth()
@@ -64,7 +65,7 @@
health_timestamp = world.time + 10 // 1 seconds
-/obj/effect/blob/proc/Pulse(var/pulse = 0, var/origin_dir = 0)//Todo: Fix spaceblob expand
+/obj/effect/blob/proc/Pulse(var/pulse = 0, var/origin_dir = 0, var/a_color)//Todo: Fix spaceblob expand
set background = BACKGROUND_ENABLED
@@ -88,9 +89,10 @@
var/turf/T = get_step(src, dirn)
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)
- expand(T)//No blob here so try and expand
+ expand(T,1,a_color)//No blob here so try and expand
return
- B.Pulse((pulse+1),get_dir(src.loc,T))
+ B.color = a_color
+ B.Pulse((pulse+1),get_dir(src.loc,T), a_color)
return
return
@@ -99,7 +101,7 @@
return 0
-/obj/effect/blob/proc/expand(var/turf/T = null, var/prob = 1)
+/obj/effect/blob/proc/expand(var/turf/T = null, var/prob = 1, var/a_color)
if(prob && !prob(health)) return
if(istype(T, /turf/space) && prob(75)) return
if(!T)
@@ -113,6 +115,7 @@
if(!T) return 0
var/obj/effect/blob/normal/B = new /obj/effect/blob/normal(src.loc, min(src.health, 30))
+ B.color = a_color
B.density = 1
if(T.Enter(B,src))//Attempt to move into the tile
B.density = initial(B.density)
@@ -184,9 +187,16 @@
/obj/effect/blob/proc/change_to(var/type)
if(!ispath(type))
ERROR("[type] is an invalid type for the blob.")
- new type(src.loc)
+ var/obj/effect/blob/B = new type(src.loc)
+ if(!istype(type, /obj/effect/blob/core) || !istype(type, /obj/effect/blob/node))
+ B.color = color
+ else
+ B.adjustcolors(color)
qdel(src)
+/obj/effect/blob/proc/adjustcolors(var/a_color)
+ return
+
/obj/effect/blob/normal
icon_state = "blob"
luminosity = 0
diff --git a/code/game/gamemodes/changeling/powers/mimic_voice.dm b/code/game/gamemodes/changeling/powers/mimic_voice.dm
index bb8ed8e6ea6..108e7d5fa01 100644
--- a/code/game/gamemodes/changeling/powers/mimic_voice.dm
+++ b/code/game/gamemodes/changeling/powers/mimic_voice.dm
@@ -16,7 +16,7 @@
user << "We return our vocal glands to their original position."
return
- var/mimic_voice = input("Enter a name to mimic.", "Mimic Voice", null) as text
+ var/mimic_voice = stripped_input(user, "Enter a name to mimic.", "Mimic Voice", null, MAX_NAME_LEN)
if(!mimic_voice)
return
@@ -25,4 +25,4 @@
user << "We shape our glands to take the voice of [mimic_voice], this will stop us from regenerating chemicals while active."
user << "Use this power again to return to our original voice and reproduce chemicals again."
- feedback_add_details("changeling_powers","MV")
\ No newline at end of file
+ feedback_add_details("changeling_powers","MV")
diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm
index b732844dc45..e567eaac5bf 100644
--- a/code/game/gamemodes/changeling/powers/transform.dm
+++ b/code/game/gamemodes/changeling/powers/transform.dm
@@ -20,7 +20,7 @@
user.dna.species = new chosen_dna.species.type(user)
user.dna.mutant_color = chosen_dna.mutant_color
updateappearance(user)
- domutcheck(user, null)
+ domutcheck(user)
feedback_add_details("changeling_powers","TR")
return 1
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 869ba3d9777..9f2cc367787 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -306,15 +306,15 @@
if("summonguns")
feedback_add_details("wizard_spell_learned","SG") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
rightandwrong(0, H, 0)
- uses++
max_uses++
+ uses = uses + 2 //refund plus a free point
active_challenges += "summon guns"
temp = "You have cast summon guns and gained an extra charge for your spellbook."
if("summonmagic")
feedback_add_details("wizard_spell_learned","SU") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
rightandwrong(1, H, 0)
- uses++
max_uses++
+ uses = uses + 2 //refund plus a free point
active_challenges += "summon magic"
temp = "You have cast summon magic and gained an extra charge for your spellbook."
if("summonevents")
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 88e83f4127e..5d68e0878bf 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -152,6 +152,17 @@
src.eject_wait = 0
var/mob/living/carbon/human/H = new /mob/living/carbon/human(src)
+
+ if(efficiency > 2)
+ for(var/A in bad_se_blocks)
+ setblock(H.dna.struc_enzymes, A, construct_block(0,2))
+ if(efficiency > 5 && prob(20))
+ randmutg(H)
+ if(efficiency < 3 && prob(50))
+ var/mob/M = randmutb(H)
+ if(ismob(M))
+ H = M
+
H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment.
occupant = H
@@ -175,14 +186,6 @@
hardset_dna(H, ui, se, null, null, mrace, mcolor)
H.faction |= factions
- if(efficiency > 2)
- for(var/A in bad_se_blocks)
- setblock(H.dna.struc_enzymes, A, construct_block(0,2))
- if(efficiency > 5 && prob(20))
- randmutg(H)
- if(efficiency < 3 && prob(50))
- randmutb(H)
-
H.set_cloned_appearance()
H.suiciding = 0
diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm
index cc2d97ddd95..33da8023ba8 100644
--- a/code/game/machinery/computer/shuttle.dm
+++ b/code/game/machinery/computer/shuttle.dm
@@ -36,29 +36,33 @@
var/choice = alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", "Authorize", "Repeal", "Abort")
if(SSshuttle.emergency.mode != SHUTTLE_DOCKED || user.get_active_hand() != W)
return 0
+
+ var/seconds = SSshuttle.emergency.timeLeft()
+ if(seconds <= 10)
+ return 0
+
switch(choice)
if("Authorize")
- src.authorized |= W:registered_name
- if (src.auth_need - src.authorized.len > 0)
- message_admins("[key_name(user.client)](?) has authorized early shuttle launch in ([x],[y],[z] - JMP)",0,1)
- log_game("[user.ckey]([user]) has authorized early shuttle launch in ([x],[y],[z])")
- minor_announce("[src.auth_need - src.authorized.len] more authorization(s) needed until shuttle is launched early",null,1)
- else
- var/time = SSshuttle.emergency.timeLeft()
- message_admins("[key_name(user.client)](?) has launched the emergency shuttle in ([x],[y],[z] - JMP) [time] seconds before launch.",0,1)
- log_game("[user.ckey]([user]) has launched the emergency shuttle in ([x],[y],[z]) [time] seconds before launch.")
- minor_announce("The emergency shuttle will launch in 10 seconds",null,1)
- SSshuttle.emergency.setTimer(100)
- authorized.Cut()
+ if(!authorized.Find(W:registered_name))
+ authorized += W:registered_name
+ if(auth_need - authorized.len > 0)
+ message_admins("[key_name(user.client)](?) has authorized early shuttle launch in ([x],[y],[z] - JMP)",0,1)
+ log_game("[user.ckey]([user]) has authorized early shuttle launch in ([x],[y],[z])")
+ minor_announce("[auth_need - authorized.len] more authorization(s) needed until shuttle is launched early",null,1)
+ else
+ message_admins("[key_name(user.client)](?) has launched the emergency shuttle in ([x],[y],[z] - JMP) [seconds] seconds before launch.",0,1)
+ log_game("[user.ckey]([user]) has launched the emergency shuttle in ([x],[y],[z]) [seconds] seconds before launch.")
+ minor_announce("The emergency shuttle will launch in 10 seconds",null,1)
+ SSshuttle.emergency.setTimer(100)
if("Repeal")
- src.authorized -= W:registered_name
- minor_announce("[src.auth_need - src.authorized.len] authorizations needed until shuttle is launched early")
+ if(authorized.Remove(W:registered_name))
+ minor_announce("[auth_need - authorized.len] authorizations needed until shuttle is launched early")
if("Abort")
- minor_announce("All authorizations to launch the shuttle early have been revoked.")
- src.authorized.len = 0
- src.authorized = list( )
+ if(authorized.len)
+ minor_announce("All authorizations to launch the shuttle early have been revoked.")
+ authorized.Cut()
/obj/machinery/computer/emergency_shuttle/emag_act(mob/user as mob)
if(!emagged && SSshuttle.emergency.mode == SHUTTLE_DOCKED)
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 050fe2af20d..aedbe164b60 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -31,7 +31,7 @@
s.start()
obj:radiation += 50
randmutb(obj)
- domutcheck(obj,null)
+ domutcheck(obj)
qdel(src)
/obj/effect/mine/proc/triggerstun(obj)
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index 00ea33f28ef..74bc14e63ca 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -158,7 +158,7 @@
*/
/obj/item/device/transfer_valve/proc/toggle_valve()
- if(valve_open==0 && (tank_one && tank_two))
+ if(!valve_open && tank_one && tank_two)
valve_open = 1
var/turf/bombturf = get_turf(src)
var/area/A = get_area(bombturf)
@@ -203,7 +203,7 @@
sleep(10)
src.update_icon()
- else if(valve_open==1 && (tank_one && tank_two))
+ else if(valve_open && tank_one && tank_two)
split_gases()
valve_open = 0
src.update_icon()
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 1184fa296db..c3eb29eea81 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -24,7 +24,7 @@
M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2))
var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]"
for(var/datum/mutation/human/HM in remove_mutations)
- HM.on_losing(M)
+ HM.force_lose(M)
for(var/datum/mutation/human/HM in add_mutations)
if(HM.name == RACEMUT)
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)")
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 8dfd2e32291..5bcefc888eb 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -74,8 +74,8 @@
if(user)
var/obj/item/weapon/twohanded/O = user.get_inactive_hand()
if(istype(O))
- O.unwield()
- return unwield()
+ O.unwield(user)
+ return unwield(user)
/obj/item/weapon/twohanded/update_icon()
return
diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm
index 56c208db908..df7601e52d2 100644
--- a/code/game/turfs/simulated.dm
+++ b/code/game/turfs/simulated.dm
@@ -13,6 +13,8 @@
..()
levelupdate()
+/turf/simulated/proc/burn_tile()
+
/turf/simulated/proc/MakeSlippery(var/wet_setting = 1) // 1 = Water, 2 = Lube
if(wet >= wet_setting)
return
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 4936f59d7dd..348c9d6b21f 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -100,7 +100,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
icon_state = pick(broken_states)
broken = 1
-/turf/simulated/floor/proc/burn_tile()
+/turf/simulated/floor/burn_tile()
if(broken || burnt)
return
if(burnt_states.len)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 70177b99d16..716c923c789 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -684,7 +684,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "confliction")
var/choice = input("The shuttle will just return if you call it. Call anyway?") in list("Confirm", "Cancel")
if(choice == "Confirm")
- SSshuttle.emergencyFakeRecall = rand(0.5,0.9)
+ SSshuttle.emergencyFakeRecall = rand(5,9) * 0.1
else
return
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index eea5a10bb80..c8e2e45e854 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -115,8 +115,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/Stat()
..()
- statpanel("Status")
- if (client.statpanel == "Status")
+ if(statpanel("Status"))
stat(null, "Station Time: [worldtime2text()]")
if(ticker)
if(ticker.mode)
diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm
index a1bf4dc4974..039a69b6e9e 100644
--- a/code/modules/mob/dead/observer/say.dm
+++ b/code/modules/mob/dead/observer/say.dm
@@ -17,5 +17,8 @@
. = src.say_dead(message)
/mob/dead/observer/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq)
+ if(radio_freq)
+ var/atom/movable/virtualspeaker/V = speaker
+ speaker = V.source
src << "(F) [message]"
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index f9dbb63b948..6ad87f9871a 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -150,14 +150,11 @@
return 1 // Aliens can eat, and they can be fed food/drink
/mob/living/carbon/alien/Stat()
-
- statpanel("Status")
- stat(null, "Intent: [a_intent]")
- stat(null, "Move Mode: [m_intent]")
-
..()
- if (client.statpanel == "Status")
+ if(statpanel("Status"))
+ stat(null, "Intent: [a_intent]")
+ stat(null, "Move Mode: [m_intent]")
stat(null, "Plasma Stored: [getPlasma()]/[max_plasma]")
/mob/living/carbon/alien/Stun(amount)
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index 515edc002a3..bee9cacd6e3 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -26,7 +26,8 @@
//This needs to be fixed
/mob/living/carbon/alien/larva/Stat()
..()
- stat(null, "Progress: [amount_grown]/[max_grown]")
+ if(statpanel("Status"))
+ stat(null, "Progress: [amount_grown]/[max_grown]")
/mob/living/carbon/alien/larva/adjustToxLoss(amount)
if(stat != DEAD)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index a3a955c56e0..db452bdd564 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -1,8 +1,3 @@
-/mob/living/carbon/UnarmedAttack(var/atom/A, var/proximity_flag)
- ..()
- for(var/datum/mutation/human/HM in dna.mutations)
- . += HM.on_attack_hand(A, src)
-
/mob/living/carbon/prepare_huds()
..()
prepare_data_huds()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index e0496ef45fc..734d0aef70e 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -27,7 +27,6 @@
internal_organs += new /obj/item/organ/brain
// for spawned humans; overwritten by other code
- create_dna(src)
ready_dna(src)
randomize_human(src)
@@ -52,8 +51,8 @@
/mob/living/carbon/human/Stat()
..()
- statpanel("Status")
- if (client.statpanel == "Status")
+
+ if(statpanel("Status"))
stat(null, "Intent: [a_intent]")
stat(null, "Move Mode: [m_intent]")
if(ticker && ticker.mode && ticker.mode.name == "AI malfunction")
@@ -143,7 +142,7 @@
show_message(" The blob attacks you!")
var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")
var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone))
- apply_damage(rand(20,30), BRUTE, affecting, run_armor_check(affecting, "melee"))
+ apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee"))
return
/mob/living/carbon/human/var/co2overloadtime = null
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index be47a15b67f..39ba01934e5 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -1,6 +1,8 @@
/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user)
- adjustBruteLoss(5)
- Weaken(4)
+ if(user.a_intent == "harm")
+ ..(user, 1)
+ adjustBruteLoss(5)
+ Weaken(4)
/mob/living/carbon/human/attack_hand(mob/living/carbon/human/M)
if(..()) //to allow surgery to return properly.
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index e8d5e681478..69c675dfe46 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -7,7 +7,6 @@
#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully
#define HUMAN_MAX_OXYLOSS 3 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it.
-#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /3) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 100HP to get through, so (1/3)*last_tick_duration per second. Breaths however only happen every 4 ticks.
#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point
#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point
@@ -57,6 +56,10 @@
handle_regular_hud_updates()
+ //Status updates, death etc.
+ //TODO: optimise ~Carn
+ handle_regular_status_updates()
+
//No need to update all of these procs if the guy is dead.
if(stat != DEAD)
for(var/datum/mutation/human/HM in dna.mutations)
@@ -93,8 +96,7 @@
//stuff in the stomach
handle_stomach()
- //Status updates, death etc.
- handle_regular_status_updates() //TODO: optimise ~Carn
+
update_canmove()
//Update our name based on whether our face is obscured/disfigured
@@ -410,13 +412,11 @@
/mob/living/carbon/human/proc/handle_regular_status_updates()
if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP
- eye_blind = max(eye_blind, 1)
silent = 0
else //ALIVE. LIGHTS ARE ON
updatehealth() //TODO
if(health <= config.health_threshold_dead || !getorgan(/obj/item/organ/brain))
death()
- eye_blind = max(eye_blind, 1)
silent = 0
return 1
@@ -425,13 +425,6 @@
if( (getOxyLoss() > 50) || (config.health_threshold_crit >= health) )
Paralyse(3)
- /* Done by handle_breath()
- if( health <= 20 && prob(1) )
- spawn(0)
- emote("gasp")
- if(!reagents.has_reagent("inaprovaline"))
- adjustOxyLoss(1)*/
-
if(hallucination)
spawn handle_hallucinations()
@@ -446,13 +439,11 @@
if(paralysis)
AdjustParalysis(-1)
- eye_blind = max(eye_blind, 1)
stat = UNCONSCIOUS
else if(sleeping)
handle_dreams()
adjustStaminaLoss(-10)
sleeping = max(sleeping-1, 0)
- eye_blind = max(eye_blind, 1)
stat = UNCONSCIOUS
if( prob(10) && health && !hal_crit )
spawn(0)
@@ -462,7 +453,7 @@
stat = CONSCIOUS
//Eyes
- if(disabilities & BLIND) //disabled-blind, doesn't get better on its own
+ if(disabilities & BLIND || stat) //disabled-blind, doesn't get better on its own
eye_blind = max(eye_blind, 1)
else if(eye_blind) //blindness, heals slowly over time
eye_blind = max(eye_blind-1,0)
@@ -549,6 +540,9 @@
CheckStamina()
+ if(dna)
+ dna.species.handle_vision(src)
+
return 1
/mob/living/carbon/human/proc/handle_regular_hud_updates()
@@ -639,7 +633,6 @@
if(!client.adminobs) reset_view(null)
if(dna)
- dna.species.handle_vision(src)
dna.species.handle_hud_icons(src)
return 1
@@ -688,4 +681,3 @@
mind.changeling.regenerate()
#undef HUMAN_MAX_OXYLOSS
-#undef HUMAN_CRIT_MAX_OXYLOSS
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index e80378256ff..97287f2f5e6 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -8,7 +8,7 @@
#define TINT_BLIND 3
#define HUMAN_MAX_OXYLOSS 3
-#define HUMAN_CRIT_MAX_OXYLOSS (SSmob.wait/3)
+#define HUMAN_CRIT_MAX_OXYLOSS (SSmob.wait/30)
#define HEAT_DAMAGE_LEVEL_1 2
#define HEAT_DAMAGE_LEVEL_2 3
@@ -475,11 +475,12 @@
if(H.seer)
H.see_invisible = SEE_INVISIBLE_OBSERVER
- if(H.mind && H.mind.changeling)
- H.hud_used.lingchemdisplay.invisibility = 0
- H.hud_used.lingchemdisplay.maptext = "