diff --git a/_maps/RandomZLevels/away_mission/Academy.dmm b/_maps/RandomZLevels/away_mission/Academy.dmm index de0b7cc430..832e4f23fa 100644 --- a/_maps/RandomZLevels/away_mission/Academy.dmm +++ b/_maps/RandomZLevels/away_mission/Academy.dmm @@ -6,8 +6,12 @@ /turf/closed/wall/r_wall, /area/awaymission/academy/headmaster) "ac" = ( -/mob/living/simple_animal/hostile/carp/ranged{ - faction = list("wizard") +/mob/living/simple_animal/hostile/carp{ + icon_dead = "magicarp_dead"; + icon_gib = "magicarp_gib"; + icon_living = "magicarp"; + icon_state = "magicarp"; + name = "bootleg magicarp" }, /turf/open/space, /area/space/nearstation) @@ -38,6 +42,7 @@ /obj/structure/chair/office/light{ dir = 1 }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "aj" = ( @@ -46,8 +51,6 @@ }, /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -160,6 +163,7 @@ "aB" = ( /obj/structure/bed, /obj/item/bedsheet/purple, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/wood, /area/awaymission/academy/headmaster) "aC" = ( @@ -199,7 +203,7 @@ /area/awaymission/academy/headmaster) "aJ" = ( /obj/structure/destructible/cult/tome, -/obj/item/dice/d20/fate, +/obj/item/dice/d20/fate/one_use, /turf/open/floor/wood, /area/awaymission/academy/headmaster) "aK" = ( @@ -259,6 +263,7 @@ /area/awaymission/academy/headmaster) "aV" = ( /obj/structure/chair/office/dark, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "aW" = ( @@ -315,6 +320,7 @@ /area/awaymission/academy/headmaster) "bg" = ( /obj/structure/table/wood, +/obj/item/flashlight/flashdark, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "bh" = ( @@ -348,6 +354,7 @@ /obj/structure/chair/office/dark{ dir = 1 }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "bm" = ( @@ -699,6 +706,7 @@ /turf/open/floor/plating, /area/awaymission/academy/headmaster) "cw" = ( +/obj/structure/trap/chill, /turf/open/floor/plating, /area/awaymission/academy/headmaster) "cx" = ( @@ -712,6 +720,7 @@ /area/awaymission/academy/headmaster) "cy" = ( /obj/structure/table, +/obj/item/disk/design_disk/adv/cleric_mace, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/academy/headmaster) "cz" = ( @@ -929,7 +938,7 @@ /area/awaymission/academy/classrooms) "dg" = ( /obj/structure/table/wood, -/obj/item/gun/magic/wand/fireball, +/obj/item/gun/magic/wand/teleport, /turf/open/floor/wood, /area/awaymission/academy/classrooms) "dh" = ( @@ -1282,8 +1291,6 @@ }, /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -1935,6 +1942,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/trap/damage, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -2294,7 +2302,6 @@ "gH" = ( /obj/structure/table, /obj/item/paper/fluff/awaymissions/academy/grade/aplus, -/obj/item/gun/ballistic/shotgun/automatic/combat, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -2305,6 +2312,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/item/gun/ballistic/revolver/doublebarrel/improvised, /turf/open/floor/plasteel/dark, /area/awaymission/academy/classrooms) "gI" = ( @@ -2349,6 +2357,7 @@ /area/awaymission/academy/classrooms) "gM" = ( /obj/item/toy/beach_ball/holoball, +/obj/structure/trap/stun, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "gN" = ( @@ -2477,15 +2486,11 @@ /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "ha" = ( -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/academy/classrooms) "hb" = ( /obj/structure/chair/stool, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/academy/classrooms) "hc" = ( /turf/closed/wall/r_wall, @@ -2537,8 +2542,6 @@ }, /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -2641,6 +2644,7 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/structure/trap/damage, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "hD" = ( @@ -2829,6 +2833,19 @@ }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) +"ig" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/trap/chill, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/academy/classrooms) "ih" = ( /obj/structure/rack, /obj/item/stack/sheet/mineral/plasma{ @@ -2853,23 +2870,17 @@ /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "il" = ( -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "im" = ( /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "in" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "io" = ( /obj/structure/rack, @@ -2893,9 +2904,7 @@ /area/awaymission/academy/academyaft) "ir" = ( /obj/structure/mineral_door/iron, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "is" = ( /obj/structure/rack, @@ -2920,17 +2929,13 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iw" = ( /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "ix" = ( /obj/machinery/light{ @@ -2948,18 +2953,14 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iA" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iB" = ( /obj/structure/rack, @@ -2978,9 +2979,7 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iE" = ( /obj/machinery/light{ @@ -3001,9 +3000,7 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iH" = ( /obj/item/paper, @@ -3038,9 +3035,7 @@ dir = 1 }, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iO" = ( /obj/structure/cable{ @@ -3132,7 +3127,7 @@ dir = 1 }, /obj/structure/table, -/obj/item/soulstone, +/obj/item/gun/ballistic/revolver/russian/soul, /turf/open/floor/plasteel/airless{ icon_state = "whitered"; dir = 4 @@ -3226,6 +3221,7 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "jk" = ( @@ -3251,6 +3247,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/plasteel/airless/white{ dir = 4 }, @@ -3565,8 +3562,6 @@ "kh" = ( /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -3577,12 +3572,14 @@ /area/awaymission/academy/academygate) "ki" = ( /obj/item/stack/cable_coil/random, +/obj/effect/landmark/awaystart, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kj" = ( /obj/structure/cable{ icon_state = "0-2" }, +/obj/effect/landmark/awaystart, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kk" = ( @@ -3678,9 +3675,7 @@ /obj/machinery/door/poddoor/shutters{ id = "AcademyGate" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kz" = ( @@ -3728,9 +3723,7 @@ /area/awaymission/academy/headmaster) "kG" = ( /mob/living/simple_animal/hostile/wizard, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "kH" = ( /obj/structure/cable{ @@ -3744,9 +3737,7 @@ /area/awaymission/academy/academyaft) "kI" = ( /obj/structure/cable, -/obj/machinery/gateway/centeraway{ - calibrated = 1 - }, +/obj/machinery/gateway/centeraway, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kJ" = ( @@ -3864,7 +3855,7 @@ /area/awaymission/academy/academycellar) "lg" = ( /obj/structure/table/wood, -/obj/item/guardiancreator/choose, +/obj/item/nullrod/staff, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "lh" = ( @@ -3881,9 +3872,8 @@ /area/awaymission/academy/academycellar) "lk" = ( /obj/structure/safe/floor, -/obj/item/voodoo, -/obj/item/gun/magic/wand/fireball, /obj/item/clothing/suit/space/hardsuit/wizard, +/obj/item/gun/magic/wand/fireball/inert, /turf/open/floor/wood, /area/awaymission/academy/headmaster) "ll" = ( @@ -4051,7 +4041,6 @@ /area/awaymission/academy/academyengine) "lQ" = ( /obj/structure/table, -/obj/item/gun/magic/wand/polymorph, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "lR" = ( @@ -4123,14 +4112,14 @@ /turf/closed/wall/r_wall, /area/awaymission/academy/academyengine) "me" = ( -/obj/structure/constructshell, +/obj/structure/fluff/divine/powerpylon, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "mf" = ( -/obj/structure/constructshell, /obj/machinery/light{ dir = 1 }, +/obj/structure/fluff/divine/defensepylon, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "mg" = ( @@ -4149,14 +4138,14 @@ /area/awaymission/academy/academyengine) "mj" = ( /obj/structure/rack, -/obj/item/book/granter/spell/summonitem, /obj/item/pen/fourcolor, +/obj/item/book/granter/spell/smoke, /turf/open/floor/vault, /area/awaymission/academy/academyengine) "mk" = ( /obj/structure/rack, -/obj/item/claymore, /obj/item/toy/figure/wizard, +/obj/item/claymore/weak/ceremonial, /turf/open/floor/vault, /area/awaymission/academy/academyengine) "ml" = ( @@ -4384,22 +4373,19 @@ }, /area/awaymission/academy/headmaster) "ng" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 8 - }, -/area/awaymission/academy/academyengine) +/obj/structure/trap/stun, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) "nh" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/area/awaymission/academy/academyengine) +/obj/structure/trap/chill, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) "ni" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 4 - }, +/obj/structure/trap/stun, +/turf/open/floor/plating, /area/awaymission/academy/academyengine) "nj" = ( /obj/structure/rack, @@ -4433,6 +4419,108 @@ }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) +"nr" = ( +/obj/structure/trap/stun, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"ox" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"qF" = ( +/obj/structure/trap/fire, +/turf/open/floor/grass, +/area/awaymission/academy/academyaft) +"qO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/headmaster) +"qT" = ( +/obj/structure/trap/fire, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"rz" = ( +/obj/structure/trap/damage, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/academy/academyaft) +"rU" = ( +/obj/structure/trap/fire, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"sI" = ( +/obj/structure/trap/stun, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"tH" = ( +/obj/structure/table/wood, +/obj/item/disk/design_disk/adv/knight_gear, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"yV" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/obj/structure/trap/stun, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"Ao" = ( +/obj/effect/landmark/awaystart, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"Ck" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/trap/chill, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Cu" = ( +/obj/structure/trap/fire, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Dd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/trap/damage, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"Di" = ( +/obj/structure/trap/stun, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"Fh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/trap/damage, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"Im" = ( +/obj/structure/trap/damage, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Kw" = ( +/obj/structure/trap/damage, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"KR" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) "LW" = ( /obj/structure/cable{ icon_state = "4-8" @@ -4443,6 +4531,63 @@ }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) +"Mx" = ( +/obj/structure/trap/chill, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/academyaft) +"Nj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/trap/damage, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/headmaster) +"NK" = ( +/obj/effect/landmark/awaystart, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"Oj" = ( +/obj/structure/trap/fire, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"Oq" = ( +/obj/structure/trap/chill, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"Rg" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/showroomfloor, +/area/awaymission/academy/headmaster) +"RB" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/headmaster) +"Sd" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/classrooms) +"Sz" = ( +/obj/structure/trap/chill, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) "Tk" = ( /obj/structure/cable{ icon_state = "4-8" @@ -4453,6 +4598,25 @@ }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) +"Va" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Wy" = ( +/obj/structure/fluff/divine/defensepylon, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"WZ" = ( +/turf/open/space/basic, +/area/space) +"XX" = ( +/obj/structure/trap/fire, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/academy/academyaft) +"YK" = ( +/obj/structure/trap/chill, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) (1,1,1) = {" aa @@ -5193,7 +5357,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -5816,7 +5980,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -6217,6 +6381,7 @@ aa aa aa aa +ac aa aa aa @@ -6225,8 +6390,7 @@ aa aa aa aa -aa -aa +ac aa aa aa @@ -6310,6 +6474,8 @@ aa aa aa aa +WZ +ac aa aa aa @@ -6322,9 +6488,7 @@ aa aa aa aa -aa -aa -aa +ac aa aa aa @@ -6429,7 +6593,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -6626,7 +6790,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -6653,7 +6817,7 @@ mN mN mN mN -mN +nr mN mN mD @@ -7458,6 +7622,7 @@ aa aa aa aa +ac aa aa aa @@ -7503,8 +7668,7 @@ aa aa aa aa -aa -aa +ac aa aa aa @@ -7804,7 +7968,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -8506,7 +8670,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -9059,7 +9223,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -9101,7 +9265,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -9501,7 +9665,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -10073,7 +10237,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -10186,7 +10350,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -10234,7 +10398,7 @@ ea es bB bB -bB +rU bB es ea @@ -10622,7 +10786,7 @@ de bE eb et -bz +Sz eK eT bz @@ -10739,7 +10903,7 @@ bv bB bB cj -bB +ox bB bB bB @@ -10894,7 +11058,7 @@ ga ga ga ga -ga +Ck ga gZ hc @@ -11001,14 +11165,14 @@ bB bB bB bB -bB +ox cO cZ bz bz cY bz -bz +Cu dT ee ee @@ -11367,7 +11531,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -11460,7 +11624,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -11788,7 +11952,7 @@ df ds dc dc -dc +Oj dV ej ej @@ -11931,7 +12095,7 @@ fz es dc gd -df +tH ds gd df @@ -12174,7 +12338,7 @@ bZ fR cQ dc -dc +Oq dc dc dc @@ -12205,7 +12369,7 @@ fD im il iw -il +rz il il iw @@ -12303,9 +12467,9 @@ bZ bZ cK cQ -dc +Kw dg -ds +yV df ds dc @@ -12434,7 +12598,7 @@ cC cC cR dd -dc +Oj dc dc dc @@ -12455,7 +12619,7 @@ dc dc dc dc -dc +Kw dc fD ho @@ -12767,7 +12931,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -12855,7 +13019,7 @@ ii ii ii ii -ii +qF ii ii ii @@ -12870,7 +13034,7 @@ fF jG gF fN -fN +Mx hc jT jV @@ -12879,10 +13043,10 @@ jY jW jW ki -kf -kf -kf -jW +Ao +Ao +Ao +NK kx jS mE @@ -13012,7 +13176,7 @@ kj km kp ks -kf +Ao kf ky kf @@ -13064,7 +13228,7 @@ aE aJ as ah -ah +cI aQ cI ah @@ -13138,11 +13302,11 @@ jV jY kc jW -kf +Ao kn kI kt -kf +Ao kf ky mF @@ -13187,7 +13351,7 @@ aa kF ae ah -al +nh at az aF @@ -13220,7 +13384,7 @@ ah ah ah ah -el +YK ej el eN @@ -13268,11 +13432,11 @@ jV jY kc jW -kf +Ao ko kr ku -kf +Ao kf ky kf @@ -13332,7 +13496,7 @@ ap ba bh bk -ap +Dd bq ap ap @@ -13398,11 +13562,11 @@ jW ka kc kf -kf -kf -kf -kf -kf +Ao +Ao +Ao +Ao +Ao kf ky mG @@ -13488,7 +13652,7 @@ eV fe ej el -fF +qT fF fF fF @@ -13516,7 +13680,7 @@ fF fD jr jy -fF +qT jH fF fN @@ -13875,7 +14039,7 @@ ej ej eP ej -fg +Fh ej ej bE @@ -13954,7 +14118,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -14118,9 +14282,9 @@ aa ab bM cd -cl +Nj cd -bO +qO cd cT as @@ -14157,7 +14321,7 @@ il iz il il -il +XX iz il fD @@ -14274,7 +14438,7 @@ gm fP fP gI -gO +Sd gJ gO fD @@ -14377,7 +14541,7 @@ aP aP ab bO -cd +RB cl cd cl @@ -14834,6 +14998,7 @@ aa aa aa aa +ac aa aa aa @@ -14844,8 +15009,7 @@ aa aa aa aa -aa -aa +ac aa aa aa @@ -14899,18 +15063,18 @@ ab bT bT bT -bT +Rg bT cg bT as di bz +Va bz bz bz -bz -bz +Im ex eD eD @@ -15399,7 +15563,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -15687,12 +15851,12 @@ bs dm dm dm -dm +KR dR dZ dZ ey -eI +ig eI eI fm @@ -15928,7 +16092,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -16775,7 +16939,7 @@ aG aG mc me -me +Wy me lv mm @@ -16906,7 +17070,7 @@ aG mc mf me -me +Wy lv mm mm @@ -17024,7 +17188,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -17043,7 +17207,7 @@ lv lM mc mw -mq +mI mq mq mq @@ -17164,7 +17328,7 @@ aa aG aG mc -lv +lC lv lv lv @@ -17369,7 +17533,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -17528,7 +17692,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -17898,7 +18062,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -18205,7 +18369,7 @@ aa aG md mg -lt +sI lt lt md @@ -18346,7 +18510,7 @@ mu mu mu mu -ng +lF aa aa aa @@ -18476,7 +18640,7 @@ mu mu mA mu -nh +lF aa aa aa @@ -18606,7 +18770,7 @@ mu my mz mM -nh +lF aa aa aa @@ -18643,7 +18807,7 @@ kW dK dK gN -dK +ng dK le aL @@ -18729,14 +18893,14 @@ aG aG aG mc -mq +Di lJ mu mu mu mC mu -nh +lF aa aa aa @@ -18866,7 +19030,7 @@ mu mu mB mu -nh +lF aa aa aa @@ -18996,7 +19160,7 @@ mu mu mu mu -ni +lF aa aa aa @@ -19305,7 +19469,7 @@ aG lq ly lv -lv +ni lv lU lq @@ -19320,7 +19484,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -19785,7 +19949,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -19986,7 +20150,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -20146,7 +20310,7 @@ aa aa aa aa -aa +ac aa aa aa diff --git a/_maps/RandomZLevels/away_mission/caves.dmm b/_maps/RandomZLevels/away_mission/caves.dmm index 4c9aa8478b..159559d0af 100644 --- a/_maps/RandomZLevels/away_mission/caves.dmm +++ b/_maps/RandomZLevels/away_mission/caves.dmm @@ -12,7 +12,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) @@ -37,7 +36,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_three) @@ -116,7 +114,7 @@ }, /obj/item/veilrender/honkrender, /obj/item/clothing/mask/gas/clown_hat, -/obj/item/organ/heart/demon, +/obj/item/organ/heart/cursed, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -188,9 +186,7 @@ amount = 25 }, /obj/item/coin/antagtoken, -/obj/item/book/granter/spell/summonitem{ - name = "an extremely flamboyant book" - }, +/obj/item/book/granter/spell/smoke, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -239,7 +235,6 @@ /area/awaymission/caves/BMP_asteroid/level_three) "aM" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 1; id = "minedeep" }, @@ -266,7 +261,6 @@ /area/awaymission/caves/BMP_asteroid/level_three) "aP" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 1; id = "dungeon"; name = "rusty ladder" @@ -317,7 +311,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) @@ -356,7 +349,11 @@ /area/awaymission/caves/BMP_asteroid/level_four) "ba" = ( /obj/structure/destructible/cult/talisman, -/obj/item/book/granter/martial/plasma_fist, +/obj/item/storage/belt/champion, +/obj/item/melee/sabre{ + icon_state = "cultblade"; + name = "blood-red sabre" + }, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -446,12 +443,11 @@ }, /area/awaymission/caves/BMP_asteroid/level_four) "bo" = ( -/obj/structure/flora/rock, -/obj/item/soulstone/anybody, -/turf/open/floor/plating/asteroid/basalt{ +/obj/structure/trap/chill, +/turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, -/area/awaymission/caves/BMP_asteroid/level_three) +/area/awaymission/caves/BMP_asteroid/level_four) "bp" = ( /obj/machinery/gateway{ dir = 10 @@ -516,8 +512,8 @@ }, /area/awaymission/caves/BMP_asteroid/level_three) "by" = ( -/obj/item/mjollnir, /mob/living/simple_animal/hostile/poison/giant_spider/nurse, +/obj/item/nullrod/hammmer, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -531,8 +527,8 @@ /area/awaymission/caves/BMP_asteroid/level_four) "bA" = ( /obj/structure/destructible/cult/tome, -/obj/item/necromantic_stone, /obj/effect/decal/cleanable/blood, +/obj/item/immortality_talisman, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -563,7 +559,6 @@ /area/awaymission/caves/BMP_asteroid/level_four) "bF" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 2; id = "dungeon"; name = "rusty ladder" @@ -573,7 +568,9 @@ }, /area/awaymission/caves/BMP_asteroid/level_three) "bG" = ( -/obj/item/gun/ballistic/automatic/pistol/deagle/gold, +/obj/item/gun/ballistic/revolver/reverse{ + name = "suspicious .357 revovler" + }, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, @@ -581,12 +578,14 @@ "bH" = ( /obj/effect/decal/remains/human, /obj/item/clothing/under/misc/patriotsuit, +/obj/structure/trap/chill, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) "bI" = ( /obj/item/bedsheet/patriot, +/obj/structure/trap/chill, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, @@ -606,7 +605,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid) @@ -617,7 +615,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_two) @@ -734,7 +731,6 @@ /area/awaymission/caves/BMP_asteroid/level_two) "ce" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 1; id = "mineintro" }, @@ -1030,7 +1026,7 @@ /area/awaymission/caves/research) "cX" = ( /obj/structure/table, -/obj/item/melee/baton, +/obj/item/gun/energy/temperature, /turf/open/floor/plasteel{ initial_gas_mix = "n2=23;o2=14" }, @@ -1093,9 +1089,6 @@ /obj/structure/closet/secure_closet/miner{ name = "weapon equipment" }, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, /turf/open/floor/plasteel{ initial_gas_mix = "n2=23;o2=14" }, @@ -1122,7 +1115,6 @@ /area/awaymission/caves/BMP_asteroid/level_two) "dj" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 2; id = "minedeep" }, @@ -1195,7 +1187,6 @@ "dw" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/effect/landmark/awaystart, /turf/open/floor/plasteel, /area/awaymission/caves/BMP_asteroid/level_two) "dx" = ( @@ -1376,35 +1367,35 @@ "eg" = ( /obj/effect/decal/cleanable/robot_debris/old, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eh" = ( /obj/structure/table, /obj/item/radio, /obj/item/radio, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "ei" = ( /obj/structure/table, /obj/item/paper_bin, /obj/item/pen, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "ej" = ( /turf/open/floor/plating, /area/awaymission/caves/BMP_asteroid) "ek" = ( /obj/structure/window{ - icon_state = "window"; dir = 8 }, /mob/living/simple_animal/hostile/mining_drone, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "el" = ( -/obj/structure/closet/secure_closet/personal, -/obj/item/gun/energy/laser/captain/scattershot, -/turf/open/floor/wood, -/area/awaymission/caves/northblock) +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "em" = ( /obj/structure/closet/secure_closet/personal, /turf/open/floor/wood{ @@ -1433,20 +1424,19 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "er" = ( /obj/structure/chair/stool, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "es" = ( /obj/structure/window{ - icon_state = "window"; dir = 8 }, /obj/structure/window, /mob/living/simple_animal/hostile/mining_drone, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "et" = ( /obj/effect/decal/cleanable/shreds, /turf/open/floor/plating{ @@ -1467,37 +1457,47 @@ /obj/item/mining_scanner, /obj/item/mining_scanner, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "ex" = ( -/obj/structure/closet/secure_closet/miner, /obj/effect/decal/cleanable/cobweb, -/obj/item/survivalcapsule, -/obj/item/extinguisher/mini, -/turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) -"ey" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) -"ez" = ( -/obj/machinery/light/small/built{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-4" }, +/obj/machinery/power/port_gen/pacman, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"ey" = ( /obj/machinery/suit_storage_unit/mining{ desc = "An industrial unit made to hold space suits. Age has seemed to rust the sliding door mechanisms, making it difficult to open."; name = "rusted suit storage unit" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) +"ez" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "eA" = ( /obj/structure/table, /obj/item/paper/fluff/awaymissions/caves/work_notice, +/obj/machinery/light/small/built{ + dir = 1 + }, +/obj/item/stack/sheet/mineral/plasma, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eB" = ( -/obj/structure/barricade/wooden, +/obj/machinery/gateway{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eC" = ( /obj/structure/table, /obj/item/gps/mining, @@ -1506,17 +1506,19 @@ /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/meson, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eD" = ( /obj/structure/closet/secure_closet/miner, /obj/item/survivalcapsule, /obj/item/extinguisher/mini, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eE" = ( -/obj/effect/landmark/awaystart, +/obj/machinery/gateway{ + dir = 5 + }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eF" = ( /turf/closed/wall, /area/awaymission/caves/listeningpost) @@ -1526,7 +1528,7 @@ "eH" = ( /obj/machinery/vending/sustenance, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eI" = ( /obj/structure/closet/crate/trashcart, /obj/item/switchblade, @@ -1546,7 +1548,7 @@ "eL" = ( /obj/machinery/vending/sovietsoda, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eM" = ( /obj/machinery/light/small{ dir = 8 @@ -1593,7 +1595,7 @@ "eR" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eS" = ( /obj/machinery/light/small/built, /obj/machinery/suit_storage_unit/mining{ @@ -1601,11 +1603,11 @@ name = "rusted suit storage unit" }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eT" = ( /obj/structure/closet/emcloset, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eU" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical, @@ -1651,16 +1653,11 @@ /area/awaymission/caves/BMP_asteroid/level_two) "fc" = ( /obj/structure/closet/crate, -/obj/item/paper/fluff/awaymissions/caves/shipment_receipt, -/obj/item/gun/energy/laser/captain/scattershot, -/obj/item/gun/energy/laser/captain/scattershot, /obj/item/gun/energy/laser, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/slimepotion/fireproof, -/obj/item/slimepotion/fireproof, -/obj/item/clothing/glasses/thermal, +/obj/item/gun/energy/laser, +/obj/item/survivalcapsule, +/obj/item/kitchen/knife/combat/survival, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -1708,11 +1705,14 @@ }, /area/awaymission/caves/BMP_asteroid/level_two) "fk" = ( -/obj/item/grenade/syndieminibomb/concussion, -/turf/open/floor/plating/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14" +/obj/machinery/gateway{ + dir = 8 }, -/area/awaymission/caves/BMP_asteroid/level_two) +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "fl" = ( /obj/effect/decal/remains/human, /turf/open/floor/plating/asteroid/basalt{ @@ -1726,10 +1726,11 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/paper/fluff/awaymissions/caves/shipment_receipt, -/obj/item/organ/eyes/robotic/thermals, -/obj/item/gun/energy/laser/captain/scattershot, -/obj/item/slimepotion/fireproof, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser, +/obj/item/survivalcapsule, +/obj/item/kitchen/knife/combat/survival, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -1791,11 +1792,14 @@ }, /area/awaymission/caves/BMP_asteroid/level_two) "fw" = ( -/obj/item/gun/energy/laser/captain/scattershot, -/turf/open/floor/plating/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14" +/obj/machinery/gateway/centeraway{ + calibrated = 0 }, -/area/awaymission/caves/BMP_asteroid/level_two) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "fx" = ( /obj/effect/bump_teleporter{ id = "mineintroup"; @@ -1968,7 +1972,6 @@ /area/awaymission/caves/BMP_asteroid) "ga" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 2; id = "mineintro" }, @@ -2035,11 +2038,14 @@ /turf/open/floor/plasteel, /area/awaymission/caves/BMP_asteroid) "gk" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plating/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14" +/obj/machinery/gateway{ + dir = 4 }, -/area/awaymission/caves/BMP_asteroid/level_two) +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "gl" = ( /obj/item/trash/plate, /turf/open/floor/plasteel, @@ -2260,7 +2266,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) @@ -2276,6 +2281,41 @@ /obj/effect/baseturf_helper/asteroid/basalt, /turf/closed/wall, /area/awaymission/caves/northblock) +"tk" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"CY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"GV" = ( +/obj/structure/barricade/wooden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"Hp" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"If" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) (1,1,1) = {" aa @@ -6581,7 +6621,7 @@ dO dP dI dZ -el +dA dt bL bL @@ -10180,13 +10220,13 @@ bL bL bL bL -dX -dX -dW -dW -dW -dW -dW +eG +eG +eF +eF +eF +eF +eF bL bL bL @@ -10432,18 +10472,18 @@ bL bL bM bL -bL -bL -bL -bL -bL -dX +eG +eG +eF +eF +eG +eG ex eD eD eD eD -dX +eG bL bL bL @@ -10689,18 +10729,18 @@ bL bL bM bM -bL -bL -bL -bL -bL -dW +eF +el +fk +If +eJ +eF ey -ev -ev -ev +eJ +eJ +eJ eR -dX +eG bL bL bL @@ -10946,18 +10986,18 @@ bL bL bL bM -bL -bL -bL -bL -bL -dX +eG +eB +fw +Hp +CY +GV ez -eE -ev -ev +eO +eJ +eJ eS -dX +eG bL bL bL @@ -11203,18 +11243,18 @@ bL bL bL bM -bL -bL -bL -bL -bL -dX +eG +eE +gk +tk +eJ +eG eA -ev -ev -ev +eJ +eJ +eJ eT -dW +eF bL bV bV @@ -11460,17 +11500,17 @@ bL bL bL bM -bL -bL -bL -bL -bL -dX -ev -ev -ev -ev -ev +eF +eF +eG +eG +eG +eG +eJ +eJ +eJ +eJ +eJ eF eG eG @@ -11719,15 +11759,15 @@ bL bV bV bL -dW -dX -dX -dX -eB -dW +eF +eG +eG +eG +eW +eF eH eL -ev +eJ eW eN eJ @@ -11976,11 +12016,11 @@ bL bV bV bL -dW +eF eg eq -ev -ev +eJ +eJ eF eF eF @@ -12233,11 +12273,11 @@ bL bV bV bL -dX +eG eh -ej +fm eg -ev +eJ eF eI eM @@ -12490,11 +12530,11 @@ bL bV bV bL -dX +eG ei er -ej -ev +fm +eJ eG eJ eN @@ -12624,7 +12664,7 @@ ae ac ac ac -bo +aj bv ac ag @@ -12747,11 +12787,11 @@ bL bV bV bL -dX -ej -ej -ev -ev +eG +fm +fm +eJ +eJ eG eJ eO @@ -13004,7 +13044,7 @@ bL bV bV bL -dW +eF ek es ew @@ -13261,11 +13301,11 @@ bL bV bV bV -dW -dW -dX -dX -dW +eF +eF +eG +eG +eF eF eK eP @@ -50925,7 +50965,7 @@ ad ai ai ai -ai +bo ai ai ad @@ -51181,7 +51221,7 @@ ad ad ad ai -ai +bo bG bI ai @@ -54147,7 +54187,7 @@ bJ bJ bJ cQ -gk +bJ bJ gs bJ @@ -64676,7 +64716,7 @@ bJ bK bK bK -fw +bJ bJ bJ cq @@ -64931,7 +64971,7 @@ bJ bJ bJ fe -fk +bJ fn fd bJ diff --git a/_maps/RandomZLevels/away_mission/challenge.dmm b/_maps/RandomZLevels/away_mission/challenge.dmm index bf164cb4fa..91b209ae9b 100644 --- a/_maps/RandomZLevels/away_mission/challenge.dmm +++ b/_maps/RandomZLevels/away_mission/challenge.dmm @@ -7,125 +7,81 @@ icon_state = "iron0" }, /area/awaymission/challenge/start) -"ac" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/awaymission/challenge/start) -"ad" = ( -/turf/open/floor/plating, -/area/awaymission/challenge/start) -"ae" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/awaymission/challenge/start) -"af" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/awaymission/challenge/start) "ag" = ( /obj/item/clothing/suit/space/syndicate/blue, /obj/item/clothing/head/helmet/space/syndicate/blue, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/awaymission/challenge/start) -"ah" = ( -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ai" = ( /obj/item/flashlight{ icon_state = "flashlight-on"; on = 1 }, -/turf/open/floor/plasteel/airless, -/area/awaymission/challenge/start) -"aj" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ak" = ( /obj/effect/decal/remains/human, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "al" = ( /obj/effect/landmark/awaystart, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "am" = ( /obj/item/clothing/suit/space/syndicate/green, /obj/item/clothing/head/helmet/space/syndicate/green, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/awaymission/challenge/start) -"an" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ao" = ( /obj/item/clothing/suit/space/syndicate/orange, /obj/item/clothing/head/helmet/space/syndicate/orange, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ap" = ( /obj/item/gun/energy/laser/retro, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "aq" = ( /obj/item/stack/rods, -/turf/open/floor/plasteel, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ar" = ( /obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "as" = ( /obj/effect/decal/remains/robot, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "at" = ( /obj/structure/girder, -/turf/open/floor/plating, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "au" = ( -/turf/closed/wall, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "av" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "aw" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ax" = ( /obj/effect/decal/cleanable/oil, /mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/plating, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ay" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "az" = ( /obj/item/clothing/suit/space/syndicate/black, /obj/item/clothing/head/helmet/space/syndicate/black, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "aA" = ( /turf/closed/indestructible{ @@ -133,16 +89,18 @@ }, /area/awaymission/challenge/main) "aB" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/awaymission/challenge/main) +/obj/machinery/power/smes/magical, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) "aC" = ( /turf/open/floor/plating, /area/awaymission/challenge/main) "aD" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, +/obj/structure/fans/tiny, +/turf/open/floor/carpet, /area/awaymission/challenge/main) "aE" = ( /turf/closed/wall, @@ -151,16 +109,23 @@ /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "aG" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" +/obj/machinery/power/terminal{ + dir = 8 }, -/area/awaymission/challenge/main) +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) "aH" = ( /turf/open/floor/plasteel/airless, /area/awaymission/challenge/main) "aI" = ( /obj/machinery/power/emitter/ctf{ - dir = 2 + active = 0 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) @@ -191,7 +156,7 @@ "aO" = ( /obj/structure/window/reinforced, /obj/machinery/power/emitter/ctf{ - dir = 2 + active = 0 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) @@ -210,6 +175,7 @@ /area/awaymission/challenge/main) "aS" = ( /obj/machinery/power/emitter/ctf{ + active = 0; dir = 4 }, /turf/open/floor/plating/airless, @@ -234,6 +200,7 @@ /area/awaymission/challenge/main) "aW" = ( /obj/machinery/power/emitter/ctf{ + active = 0; dir = 8 }, /turf/open/floor/plating/airless, @@ -294,15 +261,16 @@ /turf/open/floor/plating, /area/awaymission/challenge/main) "bf" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bg" = ( @@ -321,15 +289,16 @@ /turf/open/floor/plasteel, /area/awaymission/challenge/main) "bi" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bj" = ( @@ -337,22 +306,24 @@ /turf/open/floor/plating, /area/awaymission/challenge/main) "bk" = ( +/obj/machinery/light, /obj/machinery/power/emitter/ctf{ + active = 0; dir = 1 }, -/obj/machinery/light, /turf/open/floor/plating, /area/awaymission/challenge/main) "bl" = ( /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bm" = ( @@ -363,15 +334,15 @@ /turf/closed/wall/mineral/plastitanium, /area/awaymission/challenge/main) "bo" = ( -/obj/machinery/power/emitter/ctf{ - dir = 2 - }, /obj/structure/window/reinforced{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/power/emitter/ctf{ + active = 0 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bp" = ( @@ -420,9 +391,7 @@ /area/awaymission/challenge/main) "bv" = ( /obj/structure/window/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/awaymission/challenge/main) "bw" = ( @@ -435,15 +404,6 @@ }, /turf/open/floor/plating, /area/awaymission/challenge/main) -"bx" = ( -/obj/machinery/power/emitter/ctf{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/challenge/main) "by" = ( /obj/machinery/light{ dir = 8 @@ -474,6 +434,7 @@ dir = 8 }, /obj/machinery/power/emitter/ctf{ + active = 0; dir = 8 }, /turf/open/floor/plating/airless, @@ -483,6 +444,7 @@ dir = 4 }, /obj/machinery/power/emitter/ctf{ + active = 0; dir = 4 }, /turf/open/floor/plating/airless, @@ -492,14 +454,10 @@ /turf/open/floor/plasteel/airless, /area/awaymission/challenge/main) "bF" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 2 - }, +/turf/open/floor/plasteel/white/corner, /area/awaymission/challenge/main) "bG" = ( -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/challenge/main) "bH" = ( /turf/open/floor/plasteel/white/corner{ @@ -531,36 +489,40 @@ /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bL" = ( -/obj/machinery/power/emitter/ctf{ +/obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/window/reinforced{ +/obj/machinery/power/emitter/ctf{ + active = 0; dir = 1 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bM" = ( /obj/machinery/power/emitter/ctf{ + active = 0; dir = 1 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bN" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 4 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bO" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 8 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bP" = ( @@ -570,9 +532,7 @@ /area/awaymission/challenge/end) "bQ" = ( /obj/item/gun/ballistic/revolver/russian, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/challenge/main) "bR" = ( /obj/structure/table/reinforced, @@ -602,9 +562,7 @@ /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/awaymission/challenge/main) "bV" = ( @@ -644,7 +602,7 @@ dir = 1 }, /obj/structure/rack, -/obj/item/clothing/suit/armor/heavy, +/obj/item/clothing/suit/armor/vest/russian, /turf/open/floor/wood, /area/awaymission/challenge/end) "cb" = ( @@ -670,7 +628,6 @@ "cf" = ( /obj/machinery/door/airlock/centcom{ name = "Airlock"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plating, @@ -701,7 +658,7 @@ /area/awaymission/challenge/end) "ck" = ( /obj/structure/rack, -/obj/item/gun/ballistic/revolver/mateba, +/obj/item/gun/ballistic/revolver/doublebarrel/improvised, /turf/open/floor/wood, /area/awaymission/challenge/end) "cl" = ( @@ -758,7 +715,7 @@ /area/awaymission/challenge/end) "ct" = ( /obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced, +/obj/item/gun/ballistic/revolver/detective, /turf/open/floor/wood, /area/awaymission/challenge/end) "cu" = ( @@ -773,13 +730,12 @@ /area/awaymission/challenge/end) "cw" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/l6_saw, +/obj/item/gun/ballistic/revolver/doublebarrel, /turf/open/floor/wood, /area/awaymission/challenge/end) "cx" = ( /obj/machinery/door/airlock/centcom{ name = "Security"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plasteel/dark, @@ -807,7 +763,6 @@ "cB" = ( /obj/machinery/door/airlock/centcom{ name = "Administrator"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plasteel/dark, @@ -903,150 +858,85 @@ /turf/open/floor/plating, /area/awaymission/challenge/end) "cR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/indestructible{ + icon_state = "iron0" + }, +/area/awaymission/challenge/start) +"cS" = ( /obj/machinery/gateway{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cS" = ( +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"cT" = ( /obj/machinery/gateway{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cT" = ( +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"cV" = ( /obj/machinery/gateway{ dir = 5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cV" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "cW" = ( -/obj/machinery/gateway/centeraway{ - calibrated = 0 - }, +/obj/item/clothing/suit/space/hardsuit/shielded/syndi, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/documents/syndicate, +/obj/structure/safe, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "cX" = ( /obj/machinery/gateway{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "cY" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"cZ" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"da" = ( /obj/machinery/gateway{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cZ" = ( -/obj/machinery/gateway, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"da" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "db" = ( /obj/structure/window/reinforced, /turf/open/floor/circuit, /area/awaymission/challenge/end) "dc" = ( +/obj/machinery/gateway, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "dd" = ( /obj/structure/window/reinforced{ dir = 8 @@ -1077,16 +967,6 @@ /area/awaymission/challenge/end) "di" = ( /obj/structure/table, -/obj/item/implanter/explosive, -/obj/item/implanter/explosive{ - pixel_y = 4 - }, -/obj/item/implanter/explosive{ - pixel_y = 8 - }, -/obj/item/implanter/explosive{ - pixel_y = 12 - }, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "dj" = ( @@ -1099,7 +979,6 @@ "dk" = ( /obj/machinery/door/airlock/centcom{ name = "Gateway Access"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plasteel/dark, @@ -1111,23 +990,20 @@ /turf/open/floor/plating, /area/awaymission/challenge/end) "dm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, /mob/living/simple_animal/hostile/syndicate{ name = "Syndicate Technician" }, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "dn" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/gateway{ + dir = 6 }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "do" = ( /obj/machinery/light, /turf/open/floor/circuit, @@ -1137,17 +1013,8 @@ /turf/open/floor/circuit, /area/awaymission/challenge/end) "dq" = ( -/obj/structure/cable, -/obj/machinery/power/smes/magical, -/turf/open/floor/circuit, -/area/awaymission/challenge/end) -"dr" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "ds" = ( /obj/structure/closet/l3closet, /turf/open/floor/circuit, @@ -27984,11 +27851,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +ab +ab +ab +ab +ab ab ab ab @@ -28239,20 +28106,20 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -ac -af -an -ah -ad -an +ab +ab +cS +cX +da +ab +ab +at +au +au +au +au +au ax aA aF @@ -28496,21 +28363,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -ad -aj -an +aB +ab +cT +cY +dc +dq +dq +au +al +au ao -af -an -av +au +au +au aA aA aA @@ -28753,23 +28620,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -ae +aG +cR +cV +cZ +dn +ab +ab +au ak al -af -ad +au +au aw -av -aB -aC +au +aE +aH aJ aR aH @@ -29010,23 +28877,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -af +ab +ab +ab +ab +ab +ab +ab +au al -ah -af +au +au at -af -an -aC -aG +au +au +aD +aH aK aR aH @@ -29072,9 +28939,9 @@ cd cn cH cN -cR -cV -cY +co +co +co db dg cd @@ -29276,14 +29143,14 @@ aa aa ab ag -ah +au al ap au -af +au ay aD -aC +aH aL aR aH @@ -29329,14 +29196,14 @@ cd cn cH cN -cS +co cW -cZ -dc -dc -dc +co +cd +cd +cd dm -dq +cn bP aa aa @@ -29532,12 +29399,12 @@ aa aa aa ab -ah +au al -ah +au aq at -an +au az aE aH @@ -29586,14 +29453,14 @@ cd cn cH cN -cT -cX -da +co +co +co db dh cd -dn -dr +cd +cn bP aa aa @@ -29790,12 +29657,12 @@ aa aa ab ai -ah +au al ar -af -av -ad +au +au +au aA aA aA @@ -30046,13 +29913,13 @@ aa aa aa ab -ah +au am -ad +au as av -ae -av +au +au aA aF aN @@ -31102,7 +30969,7 @@ aV aV aV aV -bx +bC aV aV aV diff --git a/_maps/RandomZLevels/away_mission/research.dmm b/_maps/RandomZLevels/away_mission/research.dmm index 2cab711b00..d2b6099eb1 100644 --- a/_maps/RandomZLevels/away_mission/research.dmm +++ b/_maps/RandomZLevels/away_mission/research.dmm @@ -919,7 +919,6 @@ /area/awaymission/research/interior/gateway) "ck" = ( /obj/machinery/door/window/eastright{ - icon_state = "right"; dir = 2 }, /obj/effect/landmark/awaystart, @@ -1363,16 +1362,6 @@ "dc" = ( /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) -"dd" = ( -/obj/structure/closet/crate, -/obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; - read_only = 1 - }, -/obj/item/firing_pin/dna, -/turf/open/floor/plasteel/dark, -/area/awaymission/research/interior/secure) "de" = ( /obj/structure/filingcabinet, /obj/structure/filingcabinet, @@ -1391,8 +1380,8 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/dnainjector/xraymut, -/obj/item/dnainjector/xraymut, +/obj/item/dnainjector/glow, +/obj/item/storage/toolbox/syndicate, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "dg" = ( @@ -1481,18 +1470,6 @@ "do" = ( /turf/closed/wall/r_wall, /area/awaymission/research/interior/security) -"dp" = ( -/obj/structure/closet/crate, -/obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; - read_only = 1 - }, -/obj/item/dnainjector/telemut, -/obj/item/dnainjector/telemut, -/obj/item/dnainjector/chavmut, -/turf/open/floor/plasteel/dark, -/area/awaymission/research/interior/secure) "dq" = ( /obj/machinery/light{ dir = 8 @@ -1743,8 +1720,6 @@ "dJ" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof, -/obj/item/clothing/suit/armor/bulletproof, -/obj/item/clothing/head/helmet/alt, /obj/item/clothing/head/helmet/alt, /obj/machinery/light/small{ dir = 4 @@ -1769,19 +1744,19 @@ /area/awaymission/research/interior/secure) "dL" = ( /obj/structure/closet/crate, -/obj/item/disk/data{ - desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastily written over it."; - fields = list("label" = "Buffer1:George Melons", "UI" = "3c300f11b5421ca7014d8", "SE" = "430431205660551642142504334461413202111310233445620533134255", "UE" = "6893e6a0b0076a41897776b10cc2b324", "name" = "George Melons", "blood_type" = "B+"); - name = "old genetics data disk" - }, /obj/item/disk/data{ desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/firing_pin/dna, -/obj/item/dnainjector/dwarf, -/obj/item/dnainjector/dwarf, +/obj/item/disk/data{ + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; + read_only = 1 + }, +/obj/item/dnainjector/insulated, +/obj/item/gun/energy/disabler, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "dM" = ( @@ -1792,11 +1767,13 @@ read_only = 1 }, /obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; read_only = 1 }, -/obj/item/dnainjector/chameleonmut, +/obj/item/dnainjector/glow, +/obj/item/storage/toolbox/syndicate, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "dN" = ( @@ -1890,7 +1867,6 @@ "dU" = ( /obj/structure/rack, /obj/item/gun/ballistic/automatic/wt550, -/obj/item/gun/ballistic/automatic/wt550, /obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, /obj/effect/turf_decal/tile/red{ @@ -2070,7 +2046,6 @@ "ep" = ( /obj/structure/rack, /obj/item/gun/ballistic/automatic/pistol/m1911, -/obj/item/gun/ballistic/automatic/pistol/m1911, /obj/item/ammo_box/magazine/m45, /obj/item/ammo_box/magazine/m45, /obj/effect/turf_decal/tile/red{ @@ -3071,7 +3046,6 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ - aiDisabledIdScanner = 0; name = "Vault Storage"; req_access_txt = "36" }, @@ -3531,7 +3505,6 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/cryo) "gR" = ( -/obj/item/melee/classic_baton/telescopic, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -3542,6 +3515,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/item/melee/baton/cattleprod, /turf/open/floor/plasteel/white, /area/awaymission/research/interior/cryo) "gS" = ( @@ -3914,7 +3888,6 @@ /area/awaymission/research/interior/cryo) "hw" = ( /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 8 }, /turf/open/floor/plasteel/yellowsiding{ @@ -4126,20 +4099,22 @@ /area/awaymission/research/interior/security) "hS" = ( /obj/structure/closet/crate, +/obj/item/clothing/head/collectable/petehat{ + name = "dusty hat" + }, /obj/item/disk/data{ desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, /obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. "; - name = "encrypted genetic data disk"; + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; read_only = 1 }, -/obj/item/clothing/head/collectable/petehat{ - name = "dusty hat" - }, -/obj/item/firing_pin/dna, +/obj/item/dnainjector/gigantism, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "hT" = ( @@ -4150,12 +4125,13 @@ read_only = 1 }, /obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; read_only = 1 }, -/obj/item/firing_pin/dna, -/obj/item/dnainjector/hulkmut, +/obj/item/dnainjector/antenna, +/obj/item/clothing/suit/armor/vest, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "hU" = ( @@ -4296,10 +4272,14 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/firing_pin/dna/dredd, -/obj/item/firing_pin/dna/dredd, -/obj/item/dnainjector/lasereyesmut, -/obj/item/dnainjector/lasereyesmut, +/obj/item/disk/data{ + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; + read_only = 1 + }, +/obj/item/dnainjector/gigantism, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "im" = ( @@ -4603,7 +4583,6 @@ /area/awaymission/research/interior/bathroom) "iN" = ( /obj/machinery/shower{ - icon_state = "shower"; dir = 8 }, /turf/open/floor/plasteel/freezer, @@ -6335,7 +6314,7 @@ /area/space/nearstation) "nb" = ( /obj/structure/table/wood, -/obj/item/book/granter/spell/random, +/obj/item/book/granter/spell/smoke, /turf/open/floor/mineral/plasma, /area/space/nearstation) "nc" = ( @@ -6460,6 +6439,11 @@ }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) +"Hs" = ( +/obj/structure/table/wood, +/obj/item/book/granter/crafting_recipe/bone_bow, +/turf/open/floor/mineral/plasma, +/area/space/nearstation) "Km" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "outerbrig"; @@ -6582,6 +6566,11 @@ }, /turf/open/floor/plating, /area/awaymission/research/interior/escapepods) +"ZZ" = ( +/obj/structure/table/wood, +/obj/item/book/granter/action/origami, +/turf/open/floor/mineral/plasma, +/area/space/nearstation) (1,1,1) = {" aa @@ -11121,8 +11110,8 @@ ab ab na nb -nb -nb +Hs +ZZ na ab ab @@ -31113,8 +31102,8 @@ ad ad ad cQ -dd -dp +dL +dL dL cQ dc @@ -31126,7 +31115,7 @@ cQ dc cQ hS -dM +il il cQ ad @@ -32399,7 +32388,7 @@ ad ad cQ df -dd +dM dM cQ dc @@ -32412,7 +32401,7 @@ dc cQ hT hT -dd +hT cQ ad ad diff --git a/_maps/RandomZLevels/away_mission/snowdin.dmm b/_maps/RandomZLevels/away_mission/snowdin.dmm index a40066df4f..c6b675acf6 100644 --- a/_maps/RandomZLevels/away_mission/snowdin.dmm +++ b/_maps/RandomZLevels/away_mission/snowdin.dmm @@ -417,7 +417,6 @@ dir = 1 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/neutral{ @@ -1035,7 +1034,6 @@ /area/awaymission/snowdin/post/research) "cE" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/decal/cleanable/dirt, @@ -1281,7 +1279,6 @@ "cY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -1329,7 +1326,6 @@ "db" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -1389,7 +1385,6 @@ "df" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -1861,7 +1856,6 @@ /area/awaymission/snowdin/post) "em" = ( /obj/machinery/power/apc{ - dir = 2; name = "Gateway APC"; pixel_y = -24; req_access = 150 @@ -1936,9 +1930,7 @@ /turf/open/floor/plasteel, /area/awaymission/snowdin/post/messhall) "et" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, +/obj/machinery/vending/boozeomat, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -1968,7 +1960,6 @@ /area/awaymission/snowdin/post/messhall) "ew" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/bar, @@ -2210,7 +2201,6 @@ dir = 1 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/blue{ @@ -2411,7 +2401,6 @@ /area/awaymission/snowdin/post/dorm) "fw" = ( /obj/machinery/sleeper{ - icon_state = "sleeper"; dir = 4 }, /obj/effect/turf_decal/tile/blue{ @@ -2631,7 +2620,6 @@ /area/awaymission/snowdin/post/hydro) "fT" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/green{ @@ -3808,7 +3796,6 @@ /area/awaymission/snowdin/post) "iu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -4483,7 +4470,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "jL" = ( -/obj/vehicle/ridden/atv, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "jM" = ( @@ -5060,8 +5048,9 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "lc" = ( -/obj/vehicle/ridden/atv, /obj/effect/decal/cleanable/oil, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "ld" = ( @@ -5285,7 +5274,6 @@ /area/awaymission/snowdin/post) "lv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -5421,7 +5409,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -5468,7 +5455,6 @@ /area/awaymission/snowdin/post/hydro) "lG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -6601,7 +6587,6 @@ /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ icon_state = "sec"; - locked = 1; name = "security officer's locker"; req_access_txt = "201" }, @@ -6800,7 +6785,6 @@ /area/awaymission/snowdin/post/hydro) "ot" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /turf/open/floor/plasteel, @@ -8715,7 +8699,6 @@ /area/awaymission/snowdin/outside) "sW" = ( /obj/machinery/power/turbine{ - dir = 2; luminosity = 2 }, /obj/structure/cable, @@ -9863,7 +9846,6 @@ "wm" = ( /obj/machinery/porta_turret/centcom_shuttle/weak{ desc = "A turret built with substandard parts and run down further with age."; - icon_state = "syndie_off"; dir = 9; faction = list("pirate") }, @@ -9958,7 +9940,6 @@ }, /obj/effect/light_emitter{ light_color = "#FAA019"; - light_power = 1; light_range = 4; name = "fire light" }, @@ -9990,7 +9971,6 @@ /area/awaymission/snowdin/outside) "wC" = ( /obj/vehicle/ridden/atv{ - icon_state = "atv"; dir = 4 }, /obj/effect/light_emitter{ @@ -11092,10 +11072,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/minipost) "zq" = ( -/obj/vehicle/ridden/atv{ - icon_state = "atv"; - dir = 8 - }, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/minipost) "zr" = ( @@ -11412,12 +11390,6 @@ /obj/item/clothing/suit/hooded/wintercoat, /turf/open/floor/plating/snowed, /area/awaymission/snowdin/outside) -"Ah" = ( -/obj/structure/window/reinforced/fulltile/ice, -/obj/structure/grille, -/obj/item/clothing/suit/hooded/wintercoat, -/turf/open/floor/plating, -/area/awaymission/snowdin/post/minipost) "Ai" = ( /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -11588,7 +11560,6 @@ }, /obj/effect/light_emitter{ light_color = "#FAA019"; - light_power = 1; light_range = 4; name = "fire light" }, @@ -12299,7 +12270,6 @@ desc = "It's a storage unit for a Syndicate boarding party." }, /obj/effect/turf_decal/bot_white, -/obj/item/gun/ballistic/automatic/pistol, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -12345,7 +12315,6 @@ /area/awaymission/snowdin/cave) "CP" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -12635,14 +12604,6 @@ /obj/item/stack/rods, /turf/open/floor/mineral/plastitanium/red, /area/awaymission/snowdin/cave) -"Ds" = ( -/obj/item/grenade/plastic/c4, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/snowdin/cave) "Dt" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -12880,7 +12841,6 @@ /area/awaymission/snowdin/cave) "DU" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -13215,26 +13175,14 @@ /obj/item/toy/plush/nukeplushie, /turf/open/floor/plasteel/dark, /area/awaymission/snowdin/cave) -"EE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/suit_storage_unit{ - state_open = 1 - }, -/turf/open/floor/mineral/plastitanium{ - initial_gas_mix = "o2=22;n2=82;TEMP=180"; - planetary_atmos = 1; - temperature = 180 - }, -/area/awaymission/snowdin/cave) "EF" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/effect/turf_decal/weather/snow, -/obj/machinery/suit_storage_unit/syndicate, +/obj/item/clothing/suit/hooded/wintercoat/security, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/rack, /turf/open/floor/mineral/plastitanium{ initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1; @@ -13246,9 +13194,9 @@ dir = 5 }, /obj/effect/turf_decal/weather/snow, -/obj/machinery/suit_storage_unit{ - state_open = 1 - }, +/obj/item/clothing/suit/hooded/wintercoat/security, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/rack, /turf/open/floor/mineral/plastitanium{ initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1; @@ -13320,7 +13268,6 @@ /area/awaymission/snowdin/cave) "EN" = ( /obj/machinery/sleeper/syndie{ - icon_state = "sleeper_s"; dir = 1 }, /obj/effect/turf_decal/bot_white, @@ -13333,7 +13280,6 @@ "EP" = ( /obj/effect/turf_decal/bot_white, /obj/machinery/sleeper/syndie{ - icon_state = "sleeper_s"; dir = 1 }, /turf/open/floor/plasteel/dark, @@ -13757,7 +13703,6 @@ /area/awaymission/snowdin/cave/cavern) "FY" = ( /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /obj/machinery/light/small{ @@ -13780,8 +13725,7 @@ /area/awaymission/snowdin/post/mining_main) "Gc" = ( /obj/structure/statue/snow/snowman{ - anchored = 1; - name = "snowman" + anchored = 1 }, /obj/item/pickaxe/mini{ pixel_x = 5; @@ -13868,7 +13812,6 @@ "Gn" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14054,7 +13997,6 @@ output_dir = 2 }, /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14170,7 +14112,6 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "Hk" = ( /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14286,11 +14227,9 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "HC" = ( /obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 + dir = 1 }, /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14555,7 +14494,6 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "In" = ( /obj/mecha/working/ripley/mining{ - icon_state = "ripley"; dir = 1 }, /obj/effect/turf_decal/bot, @@ -14615,11 +14553,9 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) "Ix" = ( -/obj/vehicle/ridden/atv{ - icon_state = "atv"; - dir = 1 - }, /obj/effect/decal/cleanable/oil, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) "Iy" = ( @@ -27300,7 +27236,7 @@ oa dX yW yW -Ah +AX Av Lw yX @@ -36093,7 +36029,7 @@ CC El an an -EE +EF CC ae ae @@ -36607,7 +36543,7 @@ OF En Es Dp -EE +EF CC zh af @@ -38396,7 +38332,7 @@ CC CL CW Di -Ds +Di Di CC CX @@ -55604,7 +55540,7 @@ eL eJ tp qi -tt +tz qi tp eJ @@ -56372,13 +56308,13 @@ eJ eJ tp qi -tt +tz tv qi tt qi tv -tt +tz qi tp eJ @@ -57146,7 +57082,7 @@ eJ eJ tp qi -tt +tz qi tp eJ @@ -69622,7 +69558,7 @@ tp qi tz qi -tt +tz qi qi qi @@ -70385,7 +70321,7 @@ eJ gW tp qi -tt +tz tp qi qi @@ -71159,7 +71095,7 @@ qi qi tp qi -tt +tz qi tp tp diff --git a/_maps/RandomZLevels/away_mission/spacebattle.dmm b/_maps/RandomZLevels/away_mission/spacebattle.dmm deleted file mode 100644 index ca44e7d7b7..0000000000 --- a/_maps/RandomZLevels/away_mission/spacebattle.dmm +++ /dev/null @@ -1,68453 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/closed/mineral/random, -/area/space/nearstation) -"ab" = ( -/turf/open/space, -/area/space) -"ac" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate/melee/sword, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ad" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate2) -"ae" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate2) -"af" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate2) -"ah" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate2) -"ai" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate2) -"aj" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ak" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate2) -"al" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"am" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/syndi, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"an" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ao" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ap" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aq" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ar" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/empgrenade, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"as" = ( -/obj/structure/table/reinforced, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"at" = ( -/obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/c20r, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aw" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate3) -"ax" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate3) -"ay" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate3) -"aA" = ( -/obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/pistol, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aB" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate3) -"aC" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate3) -"aD" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aE" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate3) -"aG" = ( -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aI" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/syndi, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aJ" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aK" = ( -/obj/machinery/computer/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aP" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate1) -"aQ" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate1) -"aR" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate1) -"aT" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aU" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate1) -"aV" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate1) -"aW" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate2) -"aX" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate2) -"aY" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"aZ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ba" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"bb" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate1) -"bc" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate2) -"bd" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"be" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/syndi, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bf" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bg" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/tackler/combat/insulated, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bh" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bi" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/head/helmet/swat, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bj" = ( -/obj/machinery/computer/pod{ - dir = 1; - id = "spacebattlepod3"; - name = "Hull Door Control" - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"bk" = ( -/obj/machinery/door/poddoor{ - icon_state = "pdoor1"; - id = "spacebattlepod3"; - name = "Front Hull Door"; - opacity = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate2) -"bl" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/plastic/c4, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bm" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bn" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/plastic/c4, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bo" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/spawnergrenade/manhacks, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bp" = ( -/obj/structure/table/reinforced, -/obj/item/restraints/handcuffs, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"br" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bt" = ( -/obj/structure/table/reinforced, -/obj/item/melee/transforming/energy/sword/saber/red, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bu" = ( -/obj/machinery/computer/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bx" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/head/helmet/swat, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"by" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate3) -"bA" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"bC" = ( -/obj/machinery/computer/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bG" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate1) -"bH" = ( -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/awaymission/spacebattle/cruiser) -"bI" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"bJ" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"bK" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"bL" = ( -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/awaymission/spacebattle/cruiser) -"bM" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/cruiser) -"bN" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"bO" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"bP" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"bQ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"bR" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"bS" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/awaymission/spacebattle/cruiser) -"bT" = ( -/turf/closed/wall/mineral/titanium, -/area/awaymission/spacebattle/cruiser) -"bX" = ( -/obj/structure/shuttle/engine/propulsion/burst/left{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"bY" = ( -/obj/structure/shuttle/engine/heater{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"bZ" = ( -/obj/machinery/computer/telecomms/monitor{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ca" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged5" - }, -/area/awaymission/spacebattle/cruiser) -"cb" = ( -/obj/machinery/computer/pod{ - dir = 1; - id = "spacebattlepod"; - name = "Hull Door Control" - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"cc" = ( -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cd" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cf" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"cg" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ci" = ( -/obj/machinery/door/poddoor/preopen{ - id = "spacebattlepod"; - name = "Front Hull Door" - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ck" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"cm" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged4" - }, -/area/awaymission/spacebattle/cruiser) -"cn" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/awaymission/spacebattle/cruiser) -"cp" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged1" - }, -/area/awaymission/spacebattle/cruiser) -"cq" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Rosen Miller"; - name = "Rosen Miller" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cr" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ct" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/awaymission/spacebattle/cruiser) -"cv" = ( -/obj/machinery/power/smes/magical{ - desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; - name = "power storage unit" - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cw" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/awaymission/spacebattle/cruiser) -"cx" = ( -/obj/item/stack/sheet/metal, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cy" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cz" = ( -/obj/structure/closet/cabinet, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cA" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cB" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cC" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/sausage, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cD" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cE" = ( -/obj/structure/table/reinforced, -/obj/item/kitchen/knife, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cF" = ( -/obj/structure/table/reinforced, -/obj/item/kitchen/rollingpin, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cG" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cH" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cI" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cJ" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"cK" = ( -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"cL" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cM" = ( -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cN" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/awaymission/spacebattle/cruiser) -"cO" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cP" = ( -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cQ" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cS" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Bill Sanchez"; - name = "Bill Sanchez" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cT" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cU" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/fries, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cV" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/soup/stew, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cW" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cY" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"cZ" = ( -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"da" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"db" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"dc" = ( -/obj/machinery/computer/pod{ - dir = 1; - id = "spacebattlepod2"; - name = "Hull Door Control" - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"dd" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"de" = ( -/obj/machinery/shieldgen{ - anchored = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"df" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"dg" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "John Locke"; - name = "John Locke" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dh" = ( -/obj/structure/rack, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"di" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dj" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dk" = ( -/obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dl" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dm" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Daniel Kalla"; - name = "Daniel Kalla" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dn" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dr" = ( -/obj/machinery/door/poddoor/preopen{ - id = "spacebattlepod2"; - name = "Front Hull Door" - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"du" = ( -/obj/effect/decal/cleanable/blood, -/turf/closed/wall/mineral/titanium, -/area/awaymission/spacebattle/cruiser) -"dx" = ( -/obj/structure/chair, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dy" = ( -/obj/structure/rack, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dz" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dA" = ( -/obj/effect/landmark/awaystart, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dB" = ( -/obj/structure/closet/secure_closet/security, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dD" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"dE" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 9 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dF" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dG" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 1 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dH" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 5 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dJ" = ( -/obj/item/stack/rods, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dK" = ( -/obj/mecha/medical/odysseus, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dL" = ( -/obj/mecha/working/ripley/firefighter, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dM" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dN" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"dO" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dP" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dQ" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dR" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dS" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dT" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dU" = ( -/obj/structure/rack, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dV" = ( -/obj/structure/closet/secure_closet/security, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dX" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Andrew Thorn"; - name = "Andrew Thorn" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"dY" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dZ" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ea" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Clay Dawson"; - name = "Clay Dawson" - }, -/turf/open/floor/plasteel{ - icon_state = "damaged5" - }, -/area/awaymission/spacebattle/cruiser) -"eb" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ec" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ed" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ee" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ef" = ( -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"eg" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/mecha_parts/mecha_equipment/repair_droid, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eh" = ( -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"ei" = ( -/obj/structure/closet/l3closet/security, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ej" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ek" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"el" = ( -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"em" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"en" = ( -/obj/machinery/gateway/centeraway{ - calibrated = 0 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eo" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ep" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"er" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate4) -"et" = ( -/obj/machinery/gateway{ - dir = 10 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eu" = ( -/obj/machinery/gateway, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ev" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ew" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"ex" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ey" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Davis Hume"; - name = "Davis Hume" - }, -/obj/item/gun/ballistic/shotgun/automatic/combat, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ez" = ( -/obj/item/ammo_casing/shotgun, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eA" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"eC" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eD" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eE" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eG" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"eH" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Peter West"; - name = "Peter West" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"eK" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eL" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eM" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eN" = ( -/obj/item/shield/energy, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eO" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eP" = ( -/obj/machinery/computer/med_data{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eR" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eS" = ( -/obj/structure/chair{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eT" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eU" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eV" = ( -/obj/structure/table/reinforced, -/obj/item/kitchen/fork, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eW" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/melee/transforming/energy/sword/saber/red, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eX" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Kurt Kliest"; - name = "Kurt Kliest" - }, -/obj/item/gun/ballistic/shotgun/automatic/combat, -/obj/item/ammo_casing/shotgun, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eY" = ( -/obj/item/ammo_casing/shotgun, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eZ" = ( -/obj/machinery/computer/crew{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fa" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Eric Abnett"; - name = "Eric Abnett" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fb" = ( -/obj/structure/closet/crate, -/obj/item/clothing/glasses/night, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"fc" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fd" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fe" = ( -/obj/structure/chair{ - dir = 4 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"ff" = ( -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlestorage"; - name = "Secure Storage"; - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fg" = ( -/obj/item/hand_labeler, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"fh" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlestorage"; - name = "Secure Storage" - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fi" = ( -/obj/structure/chair{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"fj" = ( -/obj/machinery/computer/security/telescreen, -/turf/closed/wall/mineral/titanium, -/area/awaymission/spacebattle/cruiser) -"fl" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate4) -"fm" = ( -/mob/living/simple_animal/hostile/syndicate/melee/sword, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fn" = ( -/obj/structure/closet/crate, -/obj/item/light/tube, -/obj/item/light/tube, -/obj/item/light/tube, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"fo" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fp" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fq" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fr" = ( -/obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/gun/ballistic/automatic/wt550, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fs" = ( -/obj/item/ammo_casing/shotgun, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ft" = ( -/obj/item/ammo_casing/a357, -/obj/item/ammo_casing/a357, -/obj/item/gun/ballistic/revolver/mateba, -/obj/effect/mob_spawn/human/commander{ - mob_name = "Aaron Bowden"; - name = "Aaron Bowden" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fu" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fv" = ( -/obj/machinery/computer/shuttle{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fw" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "1" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fx" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "2" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fy" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "3" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fz" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "4" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fA" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "5" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fB" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "6" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fC" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "7" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fD" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "8" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fE" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "9" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fF" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "10" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fG" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "11" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fH" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "12" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fI" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"fJ" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fK" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fL" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel{ - icon_state = "damaged1" - }, -/area/awaymission/spacebattle/cruiser) -"fM" = ( -/obj/item/ammo_casing/shotgun, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fN" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fO" = ( -/obj/item/ammo_casing/c10mm, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fP" = ( -/obj/machinery/computer/communications{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fQ" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "13" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fR" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "14" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fS" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "15" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fT" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "16" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fU" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "17" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fV" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "18" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fW" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "19" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fX" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "20" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fY" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "21" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fZ" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "22" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"ga" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "23" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gb" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "24" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gc" = ( -/obj/structure/closet/crate, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gd" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Robert Faver"; - name = "Robert Faver" - }, -/obj/item/ammo_casing/shotgun, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ge" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "25" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gf" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "26" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gg" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "27" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gh" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "28" - }, -/obj/machinery/artillerycontrol, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gi" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "29" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gj" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "30" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gk" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "31" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gl" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "32" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gm" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "33" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gn" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "34" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"go" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "35" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gp" = ( -/obj/structure/closet/crate/secure/weapon, -/obj/item/ammo_casing/a357, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gq" = ( -/obj/structure/closet/crate, -/obj/item/lipstick/black, -/obj/item/lipstick/jade, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gr" = ( -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlestorage"; - name = "Secure Storage"; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gs" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gt" = ( -/obj/structure/table/reinforced, -/obj/item/scalpel, -/obj/item/circular_saw, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gu" = ( -/obj/structure/table/reinforced, -/obj/item/retractor, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gv" = ( -/obj/structure/table/reinforced, -/obj/item/hemostat, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gw" = ( -/obj/structure/table/reinforced, -/obj/item/scalpel, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gx" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gy" = ( -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gz" = ( -/obj/item/gun/ballistic/shotgun/automatic/combat, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gC" = ( -/obj/structure/closet/crate/secure/weapon, -/obj/item/gun/energy/laser, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gD" = ( -/obj/structure/closet/crate, -/obj/item/stack/spacecash/c10, -/obj/item/stack/spacecash/c10, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gF" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Adam Smith"; - name = "Adam Smith" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gG" = ( -/obj/structure/table/optable, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gH" = ( -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gI" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gJ" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"gK" = ( -/obj/machinery/computer/security{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gL" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gM" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gN" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gO" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - name = "Jeremy Tailor" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gP" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate7) -"gR" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate4) -"gS" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gT" = ( -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gU" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gV" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Allan Yoshimaru"; - name = "Allan Yoshimaru" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gW" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gX" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gY" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gZ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ha" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hc" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate7) -"hd" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/awaymission/spacebattle/syndicate4) -"he" = ( -/obj/item/pickaxe, -/obj/item/gun/energy/plasmacutter, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hf" = ( -/obj/item/circular_saw, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hg" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hh" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Dan Hedricks"; - name = "Dan Hedricks" - }, -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"hi" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate7) -"hj" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hk" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hl" = ( -/obj/structure/shuttle/engine/heater{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate7) -"hm" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 4 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate7) -"hn" = ( -/obj/structure/closet/crate/large, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ho" = ( -/obj/structure/closet/crate/secure/plasma, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hp" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/fire, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hq" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/hardsuit, -/obj/item/clothing/head/helmet/space/hardsuit, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hr" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hs" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ht" = ( -/turf/closed/wall/r_wall, -/area/awaymission/spacebattle/cruiser) -"hu" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate7) -"hv" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 4 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate7) -"hw" = ( -/obj/structure/closet/crate/large, -/mob/living/simple_animal/pet/dog/corgi/puppy, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hx" = ( -/obj/structure/closet/crate, -/obj/item/paint/anycolor, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hy" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"hz" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hA" = ( -/obj/structure/closet/crate/medical, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hB" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hC" = ( -/obj/structure/chair, -/obj/effect/landmark/awaystart, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hD" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hE" = ( -/obj/structure/table/wood, -/obj/item/instrument/violin, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hF" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/awaymission/spacebattle/cruiser) -"hI" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hJ" = ( -/obj/structure/bed, -/obj/item/bedsheet/captain, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hK" = ( -/obj/structure/closet/secure_closet/captains, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hL" = ( -/obj/effect/mob_spawn/human/engineer{ - id_job = "Gunner"; - mob_name = "William Gannon"; - name = "William Gannon" - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hN" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"hO" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"hP" = ( -/obj/structure/rack, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"hQ" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel{ - icon_state = "damaged4" - }, -/area/awaymission/spacebattle/cruiser) -"hS" = ( -/obj/machinery/computer/shuttle{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hT" = ( -/obj/structure/chair{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hU" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate7) -"hV" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hW" = ( -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hX" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hY" = ( -/obj/structure/toilet, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hZ" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/fire, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ib" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"id" = ( -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ie" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/o2, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"if" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ig" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 8 - }, -/obj/item/soap, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ih" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ii" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Herbert West"; - name = "Herbert West" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ij" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Carth Robinson"; - name = "Carth Robinson" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ik" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"il" = ( -/obj/machinery/sleeper, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"im" = ( -/obj/machinery/sleep_console, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"io" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ip" = ( -/obj/machinery/sleeper, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/awaymission/spacebattle/cruiser) -"iq" = ( -/obj/machinery/sleep_console, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/awaymission/spacebattle/cruiser) -"ir" = ( -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/awaymission/spacebattle/cruiser) -"is" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Cyrion"; - name = "Cyrion" - }, -/obj/item/flamethrower/full, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"it" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"iu" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/awaymission/spacebattle/cruiser) -"iv" = ( -/obj/structure/shuttle/engine/propulsion/burst/right{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"iw" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Mercutio"; - name = "Mercutio" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ix" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"iy" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/turf/open/space, -/area/space/nearstation) -"iz" = ( -/turf/closed/wall/mineral/plastitanium, -/area/space/nearstation) -"iB" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iC" = ( -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iD" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iE" = ( -/turf/closed/mineral/bananium, -/area/space/nearstation) -"iF" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"iG" = ( -/obj/item/stack/rods, -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iI" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate5) -"iL" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iM" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iP" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iQ" = ( -/obj/structure/chair{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iR" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"iS" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/space/nearstation) -"iT" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate5) -"iW" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate5) -"iX" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/awaymission/spacebattle/syndicate5) -"iZ" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate6) -"jb" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"jc" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"jd" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"je" = ( -/obj/structure/chair{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"jf" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate6) -"ji" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate6) -"jj" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/awaymission/spacebattle/syndicate6) -"jk" = ( -/turf/open/floor/plating/asteroid/airless, -/area/space/nearstation) -"jl" = ( -/turf/closed/wall/mineral/plasma, -/area/awaymission/spacebattle/secret) -"jm" = ( -/turf/open/floor/plasteel/rockvault/alien, -/area/awaymission/spacebattle/secret) -"jn" = ( -/obj/machinery/door/airlock/plasma, -/turf/closed/wall/mineral/plasma, -/area/awaymission/spacebattle/secret) -"jo" = ( -/obj/item/clothing/suit/space/hardsuit/wizard, -/turf/open/floor/plasteel/rockvault/alien, -/area/awaymission/spacebattle/secret) -"jp" = ( -/obj/mecha/combat/gygax, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jq" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/gun/medbeam/mech, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jr" = ( -/mob/living/simple_animal/hostile/syndicate/melee/sword/space, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"js" = ( -/obj/structure/rack, -/obj/item/gun/ballistic/automatic/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jt" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/advtaser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ju" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/obj/item/gun/energy/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jv" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jw" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlearmory"; - name = "Weapon Cache" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jx" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlearmory2"; - name = "Weapon Cache" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jy" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlearmory1"; - name = "Weapon Cache" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jz" = ( -/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ - spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jA" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jB" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/obj/item/gun/energy/e_gun/advtaser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jC" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/awaystart, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jD" = ( -/obj/structure/barricade/security, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jE" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jF" = ( -/obj/structure/closet/crate, -/obj/item/ammo_box/magazine/recharge, -/obj/item/ammo_box/magazine/recharge, -/obj/item/ammo_box/magazine/recharge, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jG" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlearmory1"; - name = "Secure Cache 1" - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jH" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jI" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jJ" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/armory_contraband, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jL" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlearmory"; - name = "Secure Armory" - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jM" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Walter Strider"; - name = "Walter Strider" - }, -/obj/item/gun/ballistic/shotgun/automatic/combat, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/awaymission/spacebattle/cruiser) -"jN" = ( -/obj/structure/closet/crate, -/obj/item/ammo_box/magazine/recharge, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jO" = ( -/obj/item/ammo_casing/shotgun, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/stack/sheet/metal, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jP" = ( -/obj/structure/closet/crate/internals, -/obj/item/storage/firstaid/o2, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jQ" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlearmory2"; - name = "Secure Cache 2" - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jR" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"jS" = ( -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jT" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jU" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jV" = ( -/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ - spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"jW" = ( -/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ - spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded - }, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jX" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/gun/energy/pulse/pistol/loyalpin, -/obj/item/gun/energy/pulse/pistol/loyalpin, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jY" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"jZ" = ( -/obj/structure/rack, -/obj/item/gun/ballistic/automatic/laser, -/obj/item/gun/ballistic/automatic/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ka" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kb" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"kc" = ( -/obj/structure/rack, -/obj/item/gun/energy/laser/scatter, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kd" = ( -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"ke" = ( -/obj/item/stack/rods, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kf" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/obj/item/gun/energy/laser/scatter, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kg" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kh" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ki" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kj" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/awaymission/spacebattle/cruiser) -"kk" = ( -/obj/item/shard, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kl" = ( -/obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/gun/ballistic/automatic/wt550, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"km" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/mecha_parts/mecha_equipment/drill, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kn" = ( -/obj/machinery/computer/mech_bay_power_console{ - dir = 8 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kp" = ( -/obj/structure/rack, -/obj/item/gun/energy/xray, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kq" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kr" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"ks" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kt" = ( -/obj/structure/barricade/security, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ku" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"kv" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kw" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 10 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kx" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"ky" = ( -/obj/structure/grille, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kz" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 6 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kA" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Javier Wismer"; - name = "Javier Wismer" - }, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"kB" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"kC" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"kD" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"kE" = ( -/obj/item/shard, -/turf/open/space, -/area/space/nearstation) -"kF" = ( -/obj/item/stack/rods, -/turf/open/space, -/area/space/nearstation) -"kG" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/mob/living/simple_animal/hostile/syndicate/ranged/smg, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"kH" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kI" = ( -/obj/item/stack/sheet/metal, -/turf/open/space, -/area/space/nearstation) -"kJ" = ( -/obj/item/shard, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"kK" = ( -/obj/structure/lattice, -/obj/item/stack/rods, -/turf/open/space, -/area/space/nearstation) -"kL" = ( -/obj/structure/closet/crate, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"vw" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate5) -"zS" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate6) -"BO" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate2) -"Dv" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate3) -"UZ" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate1) -"Wv" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/cruiser) -"Yq" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate4) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -er -er -fl -fl -er -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eR -eK -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eR -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eL -eS -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eL -eS -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eR -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eR -eK -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -er -er -fl -fl -er -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aU -aU -aU -bb -bb -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iI -iI -iT -iT -iI -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aP -aV -aY -aY -aY -be -aU -bh -aY -bh -aY -bh -aY -aU -bf -bo -bo -bf -bf -bx -aU -bh -bh -UZ -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bX -cf -cf -cf -cf -cf -cf -cf -df -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bX -cf -cf -cf -cf -cf -cf -cf -iv -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -ck -aY -aY -be -aU -aY -aY -aY -ck -aY -aY -aU -bf -aY -aY -aY -aY -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -bY -bY -bY -bY -bY -bY -bY -bY -bY -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -bY -bY -bY -bY -bY -bY -bY -bY -bY -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iP -iL -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bf -aY -ck -aY -aY -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -bG -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -bZ -cg -cg -cv -cv -cv -cg -cg -cg -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cg -cg -cg -cv -cv -cv -cg -cg -bZ -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iP -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bf -aY -aY -aY -aY -aY -aU -aY -aY -aY -UZ -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -ca -cc -cc -cc -cc -cc -cc -cQ -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -iw -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iM -iQ -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -bh -aY -bh -aY -aY -aY -aU -bf -bp -bf -bf -aY -aY -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bH -bM -bM -bM -bM -bM -bM -bM -bM -bM -cc -cp -cc -cr -kl -cc -dg -du -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aU -aU -aU -aU -bm -bm -aU -aU -aU -aU -aU -bm -bm -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bI -bN -bQ -fe -bQ -bQ -bO -bO -cb -Wv -bM -cc -cL -cc -cr -cr -cr -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -eh -aY -aY -aY -aY -aY -aY -aY -aY -aY -bb -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -bO -bO -bO -ci -cm -cw -cp -cc -cQ -cc -dh -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -kB -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iM -iQ -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(80,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -eh -aY -aY -aY -aY -aY -aY -aY -aY -aY -bb -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -hy -bO -bO -ci -cn -cm -cM -cc -cc -cc -dh -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -kD -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iP -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(81,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aU -aU -aU -aU -bm -bm -aU -aU -aU -aU -aU -bm -bm -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bK -bP -bR -fi -bR -bR -dN -bO -bO -Wv -bM -cx -cN -cM -cc -cc -dh -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -kC -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iP -iL -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(82,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bg -aU -bh -aY -bh -aY -aY -aY -aU -bf -bf -bf -bf -aY -aY -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bL -bM -bM -bM -bM -bM -bM -bM -bM -bM -cp -cc -cN -cc -cc -cr -di -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -di -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(83,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bf -aY -aY -aY -aY -aY -aU -aY -aY -aY -UZ -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cS -cc -di -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -di -cc -cc -cc -cc -cr -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iI -iI -iT -iT -iI -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(84,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -ck -aY -bf -aU -aY -aY -ck -aY -aY -aY -aU -bn -aY -aY -aY -eA -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -bG -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cL -cQ -cc -cc -dj -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -dj -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(85,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bn -aY -aY -aY -aY -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -kl -cy -cM -cc -cc -cc -dj -ht -el -ih -js -ju -jA -jD -ht -el -el -el -el -ht -jD -jA -ik -kc -kf -el -ht -dj -cc -cc -cc -cc -cc -is -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(86,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aR -aV -aY -aY -aY -bf -aU -bh -aY -bh -aY -bh -aY -aU -bf -bf -bf -bt -bf -bf -aU -bh -bh -UZ -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cr -cc -cc -cc -cc -cc -cc -dk -ht -el -el -el -el -el -jD -jG -el -el -el -el -jQ -jD -el -el -el -el -el -ht -dk -cc -cc -cc -cc -cc -cc -it -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(87,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aU -aU -aU -bb -bb -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -dk -ht -hN -el -el -el -jA -jD -ht -el -el -el -el -ht -jD -jA -el -el -el -hN -ht -dk -cc -cc -cc -cc -cc -cc -cc -cL -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(88,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cO -cO -cO -dk -ht -hP -el -el -el -el -el -ht -el -el -el -el -ht -el -el -el -el -el -kp -ht -dk -cc -cc -cc -cc -cc -cN -cc -cL -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(89,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cr -cc -cO -cO -cO -dl -ht -hO -el -el -el -el -el -ht -el -el -el -el -ht -el -el -el -el -el -hO -ht -dl -cc -cc -cc -cc -fm -cM -cN -cN -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(90,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cq -cc -cc -cc -cc -cc -dl -ht -el -el -el -el -el -el -ht -jH -el -el -jH -ht -el -el -el -el -el -el -ht -dl -cc -cc -cc -cc -cc -cc -iu -cp -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(91,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cr -cc -cc -cc -cc -cc -dl -ht -el -ik -jt -jt -jB -el -ht -jD -jD -jD -jD -ht -el -jX -jZ -hP -kg -el -ht -dl -cc -cc -cc -cc -cc -cp -cN -cN -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(92,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cd -cd -bT -bT -bT -bT -bT -bT -bT -ht -ht -ht -ht -ht -ht -ht -ht -ht -jL -jL -ht -ht -ht -ht -ht -ht -ht -ht -ht -bT -bT -bT -bT -bT -bT -bT -cd -cd -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(93,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cz -cz -cz -cz -cz -cz -bT -cK -cK -cK -cK -cK -jE -jE -jI -el -el -jP -gp -gC -gC -gS -gS -hn -hw -bT -hV -hW -if -hW -if -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(94,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -cK -ec -em -et -cK -cK -cK -el -el -el -el -cK -cK -cK -gS -gS -hn -hn -bT -hW -hW -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(95,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cc -bT -cK -ed -en -eu -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -gT -he -hn -hn -bT -hX -hW -ig -hW -hX -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(96,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -cK -ee -eo -ev -cK -jF -fb -jE -jE -eT -gc -gq -gD -cK -ka -ka -hn -hn -bT -bT -bT -bT -du -bT -ib -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -iZ -iZ -jf -jf -iZ -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(97,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cc -bT -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -ka -ka -hn -hn -bT -hY -ib -hW -ij -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(98,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -dK -jp -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -ho -ho -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jd -jb -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(99,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cO -cA -cc -cA -cc -bT -dL -dL -cK -cK -cK -eT -eT -jJ -fn -jN -jN -eT -eT -cK -cK -cK -ho -ho -bT -hY -ib -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jd -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(100,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -dM -jq -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -eT -hx -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jc -je -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(101,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cc -bT -km -eg -cK -cK -cK -cK -cK -fg -cK -cK -cK -cK -cK -jv -cK -cK -eT -kL -bT -hY -ib -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(102,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -dO -dO -cK -jv -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -jJ -eT -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(103,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cr -bT -dO -dO -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -eT -hz -bT -hY -ib -hW -kG -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jc -je -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(104,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -dm -bT -dP -dP -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -hp -hz -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jd -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(105,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cB -cc -cc -cc -cc -cr -bT -dP -dP -cK -kn -ks -kj -cK -kt -kt -kt -kt -gr -kj -kH -kn -cK -hp -hA -bT -hY -ib -hW -hW -io -io -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -iE -aa -iE -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jd -jb -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(106,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -cd -cd -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -fh -fh -fh -fh -bT -du -bT -bT -bT -bT -bT -bT -bT -bT -cd -cd -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(107,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -fm -cc -cc -cc -cc -cc -cc -cc -cc -fr -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -gF -cr -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -fm -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -iZ -iZ -jf -jf -iZ -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(108,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -fm -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(109,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -bT -bT -bT -bT -cd -cd -bT -bT -bT -bT -bT -bT -ct -cc -cc -ct -bT -bT -bT -bT -bT -bT -hB -hB -bT -bT -bT -bT -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -iE -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(110,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cC -cP -cP -bT -da -da -da -da -da -da -da -dQ -dQ -da -bT -cc -cc -bT -gs -gG -gH -gU -gG -gH -gH -gH -gH -gH -gH -il -gH -ip -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -iE -iE -iE -iE -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(111,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cD -cP -cP -cT -da -da -da -da -da -da -dx -dS -eU -ep -bT -cc -cc -bT -gt -gH -gH -gH -gH -gH -gH -gH -gH -kh -gH -im -gH -iq -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iE -aa -aa -aa -aa -aa -iE -iE -iE -iE -aa -aa -iE -iE -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(112,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cE -cP -fI -bT -da -dn -da -da -da -da -dx -dS -dS -ep -bT -cc -cc -bT -gt -gH -gH -gH -gH -gH -gH -gH -gH -gH -gH -gH -gH -ir -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -iE -iE -iE -iE -aa -aa -iE -iE -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(113,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cF -cP -cP -cU -da -dn -dn -da -da -da -da -jC -jC -da -bT -cc -cc -bT -gu -gH -gH -gH -gH -gH -gH -ku -gH -gH -gH -il -gH -ip -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(114,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cG -cP -cP -cU -da -da -da -dQ -dQ -da -da -dQ -dQ -da -bT -cc -cc -bT -gv -gH -gH -gV -hf -gH -gH -gH -gH -gH -gH -im -gH -iq -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -iE -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(115,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cH -cP -cP -cV -da -da -hC -dR -dS -ep -dx -dR -dS -ep -bT -cc -cc -bT -gw -gH -gH -gW -gW -kh -gH -gH -gH -gH -ii -gH -gH -ir -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -iE -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(116,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cI -cP -cP -cW -da -da -hC -dS -dS -ep -dx -dS -eV -ep -bT -cc -cc -bT -gt -gH -gH -gH -gH -gH -gH -gH -gH -id -gW -il -gH -ip -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(117,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cI -cP -cP -cW -da -da -da -dT -dT -da -da -dT -dT -da -bT -cc -cc -bT -gs -gG -gH -gU -gG -gH -hD -hI -hZ -ie -gH -im -gH -iq -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(118,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -ct -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(119,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cn -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(120,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -it -cc -fL -cn -cn -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -jz -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(121,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -cJ -cJ -ct -cc -cc -ct -bT -bT -bT -bT -bT -cK -hs -bT -bT -cd -cd -bT -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -ct -cJ -cJ -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(122,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dy -dU -dU -dU -ex -cp -fL -fc -bT -fo -fJ -bT -gx -gI -gy -gy -gy -gy -hE -hJ -bT -cc -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(123,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dz -cc -cc -cc -ey -cQ -cc -fd -bT -fp -fK -bT -gy -gy -gy -gy -gy -gy -gy -gy -bT -cp -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(124,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dz -cc -cc -cc -ez -cc -cc -cp -cd -fq -jO -cd -jR -gy -gy -gy -gy -gy -gy -gy -cK -cp -cp -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(125,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dA -cc -cc -cc -cc -cc -cQ -cn -hs -jM -cp -cK -gy -gy -gL -gM -hg -gy -gy -gy -hs -cQ -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(126,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dB -dV -ei -ei -cn -cm -cm -cn -cK -hF -fM -bT -gy -gy -gM -gX -gy -gy -gy -hK -bT -cc -cQ -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(127,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -bT -bT -bT -bT -bT -hs -cK -bT -ct -fo -fN -ct -bT -bT -bT -bT -bT -bT -bT -bT -bT -cc -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(128,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -cJ -cJ -bT -cc -cc -bT -dh -dh -dh -bT -eC -cn -fL -cp -ac -fs -fO -ac -eM -eM -eM -gY -bT -hq -dh -dh -bT -cp -cc -bT -cJ -cJ -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(129,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cm -cK -cm -cc -cc -bT -jw -eN -eW -cc -cL -cM -cc -cM -cc -cr -cc -gZ -bT -cc -cQ -cn -hs -cn -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(130,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -fL -cp -hs -cm -hQ -cc -bT -jy -cc -cc -cr -cM -cL -cM -cM -cc -cc -cc -gZ -bT -cc -cc -cp -bT -cn -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(131,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cp -hs -hF -cc -cc -bT -jx -cc -cc -cc -cc -cr -cc -gd -gz -cc -it -gZ -bT -cc -cc -hL -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(132,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ah -ah -ah -ak -ak -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cd -cc -cc -cc -bT -eD -cc -cc -cc -cc -cc -cc -eY -cc -cc -cc -gZ -bT -cc -cc -cc -cd -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(133,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ad -ai -aj -aj -aj -am -ah -ao -aj -ao -aj -ao -aj -ah -ar -an -an -an -at -an -ah -ao -ao -BO -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -bT -eD -cr -eX -ez -cc -cr -cc -cc -cc -cc -cc -gZ -bT -cc -cc -cc -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(134,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -am -ah -aj -aj -aj -aj -aj -aj -ah -an -aj -aj -aj -aj -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -bT -eD -cc -eY -cc -it -ft -cc -cc -cc -cc -cc -gZ -bT -cc -cc -cc -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(135,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -aj -aj -aG -aj -aj -aj -ah -an -aj -aj -al -aj -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -bc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -bT -eD -eO -eO -ff -eO -fu -eO -eO -cc -eO -eO -gZ -bT -cc -cc -cc -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(136,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -al -aj -an -ah -aj -aj -aj -aj -aj -aj -ah -an -aj -aj -aj -aj -aj -ah -aG -aj -aj -BO -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -dC -dW -ej -bT -eE -eP -eZ -eE -fj -fv -fP -fj -eE -gK -gN -eE -bT -hr -dW -hM -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(137,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ao -aj -ao -aj -aj -aj -ah -an -as -an -an -aj -aj -ah -aj -aj -aj -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -bT -cd -bT -bT -cY -eb -eb -eb -eb -eb -eb -eb -eb -eb -eb -ha -bT -bT -cd -bT -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(138,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ah -ah -ah -ah -aq -aq -ah -ah -ah -ah -ah -aq -aq -ah -aj -aj -aj -ah -ad -aW -aZ -aZ -aZ -aZ -aZ -aj -bj -BO -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(139,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -aj -aj -aj -aj -aj -ap -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ak -ak -aj -aj -aj -aj -aj -aj -aj -aj -bk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -jr -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(140,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -aj -ap -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ak -ak -aj -aj -aj -aj -aj -aj -aj -aj -bk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -gO -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(141,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ah -ah -ah -ah -aq -aq -ah -ah -ah -ah -ah -aq -aq -ah -aj -aj -aj -ah -af -aX -ba -ba -ba -ba -ba -aj -aj -BO -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fw -fQ -ge -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(142,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ao -aj -ao -aj -aj -aj -ah -an -as -an -an -aj -aj -ah -aj -aj -aj -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -dD -dX -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fx -fR -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(143,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -al -an -ah -aj -aj -aj -aj -aj -aj -ah -as -aj -aj -aj -aj -aj -ah -aj -aj -aj -BO -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -fa -cZ -cZ -fy -fS -gf -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(144,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -aj -aj -aj -aj -aj -aj -ah -an -aj -aj -aj -aG -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -bc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fz -fT -gg -cZ -cZ -cZ -cZ -cZ -cZ -jr -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(145,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -aj -aj -aj -al -aj -aj -ah -an -aj -aj -aj -aj -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -it -bT -cZ -cZ -jr -cZ -cZ -cZ -cZ -cZ -cZ -fA -fU -gh -cZ -jV -cZ -cZ -hh -dD -cZ -cZ -bT -it -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(146,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ai -aj -aj -aj -an -ah -ao -aj -ao -aj -ao -aj -ah -an -an -an -an -an -aA -ah -ao -ao -BO -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fB -fV -gi -cZ -cZ -cZ -cZ -cZ -dD -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(147,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ah -ah -ah -ak -ak -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fC -fW -gj -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(148,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fD -fX -gk -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(149,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -dD -eH -dD -cZ -cZ -cZ -fE -fY -gl -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(150,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -dD -dD -cZ -cZ -cZ -fF -fZ -gm -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(151,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fG -ga -gn -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(152,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fH -gb -go -cZ -cZ -jY -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(153,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(154,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -bT -bT -bT -bT -bT -bT -ct -ab -ab -ct -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(155,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cd -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -cd -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(156,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cd -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -cd -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(157,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -ct -bT -bT -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(158,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(159,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ct -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -ct -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(160,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dE -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kw -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(161,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kq -kv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(162,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(163,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jU -jS -bT -kd -kd -kq -kd -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(164,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cr -cc -bT -ab -ab -bT -jT -jS -jS -bT -kd -ki -kd -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(165,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -kl -cr -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -ix -kJ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(166,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jT -jS -kb -kd -kk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(167,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -cZ -kd -kI -kF -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ix -iF -iF -iz -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(168,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -it -cc -bT -ab -ab -bT -jS -jW -jS -cZ -ke -ix -ab -ab -ab -ab -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(169,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -kb -kd -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iz -iB -iC -iC -iG -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(170,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jT -jS -kb -kd -ix -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iC -iD -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(171,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -cd -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -cd -kd -kJ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iC -iC -iC -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(172,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jU -jS -jS -bT -kd -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -iC -iC -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(173,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jT -jS -bT -kd -kK -ab -ab -ab -ab -kF -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ab -ab -ix -iC -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(174,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ix -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(175,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iC -ix -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(176,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iy -ab -ix -iB -iC -iC -iC -iG -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(177,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kd -ky -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iz -iz -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(178,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iz -iz -iz -iF -iF -iz -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(179,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kq -kv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(180,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(181,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kq -kv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(182,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dH -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(183,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ct -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -ct -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(184,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aB -aB -aB -aE -aE -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(185,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aw -aC -aD -aD -aD -aI -aB -aT -aD -aT -aD -aT -aD -aB -aJ -aJ -bl -aJ -aJ -aJ -aB -aT -aT -Dv -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -ct -bT -bT -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(186,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -br -aI -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cQ -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(187,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -db -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -by -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cm -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(188,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -ef -aD -aB -aD -aD -aD -Dv -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cm -cn -cp -cp -cn -cc -dJ -cc -cc -fr -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(189,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aT -aD -aT -aD -aD -aD -aB -aJ -aJ -aJ -aJ -aD -aD -aB -aD -ef -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bH -bM -bM -bM -bM -bM -bM -bM -bM -bM -cm -it -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(190,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aB -aB -aB -aB -bd -bd -aB -aB -aB -aB -aB -bd -bd -aB -aD -aD -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bI -bN -fe -bQ -bQ -bQ -bO -bO -dc -Wv -bM -cp -cc -cc -cQ -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jU -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(191,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -gJ -bO -bO -dr -cn -cp -cn -cc -jz -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -kA -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(192,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -hy -bO -bO -dr -ca -ea -cc -cc -cc -cc -cc -cQ -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(193,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aB -aB -aB -aB -bd -bd -aB -aB -aB -aB -aB -bd -bd -aB -aD -aD -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bK -bP -bR -bR -bR -bR -dN -bO -bO -Wv -bM -cc -ca -cc -cc -dJ -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(194,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aT -aD -aT -aD -aD -aD -aB -aJ -aJ -aJ -aJ -aD -aD -aB -aD -aD -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bL -bM -bM -bM -bM -bM -bM -bM -bM -bM -cc -cn -cp -cQ -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(195,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -br -aJ -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -db -aD -Dv -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cN -cc -cc -cc -cc -cc -it -cc -cc -cc -bT -ab -ab -bT -jS -jU -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(196,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -br -aD -aD -aB -aJ -aD -db -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -by -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cp -cc -cc -dJ -cc -cc -cc -cc -cc -cc -fr -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(197,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(198,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ay -aC -aD -aD -aD -aJ -aB -aT -aD -aT -aD -aT -aD -aB -bi -aJ -aJ -aJ -aJ -aJ -aB -aT -aT -Dv -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cY -dd -cJ -cY -eb -eb -eb -dd -cJ -cY -dd -bT -ab -ab -bT -cY -dd -cJ -cY -eb -eb -eb -dd -cJ -cY -dd -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -"} -(199,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aB -aB -aB -aE -aE -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -ab -ab -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -"} -(200,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -cZ -de -cZ -de -cZ -de -cZ -de -cZ -de -cZ -bS -ab -ab -bS -cZ -de -cZ -de -cZ -de -cZ -de -cZ -de -cZ -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -"} -(201,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(202,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(203,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(204,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(205,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(206,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(207,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(208,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(209,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(210,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(211,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(212,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(213,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(214,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(215,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(216,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(217,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(218,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(219,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(220,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(221,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(222,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(223,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(224,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(225,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(226,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(227,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(228,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(229,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hi -hu -hu -hu -hu -hu -hu -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(230,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hj -hj -hj -hS -hj -hj -hj -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(231,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -gP -hc -hk -hk -hk -hT -hk -hk -hk -hc -gP -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(232,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hc -hk -hk -hk -hk -hk -hk -hk -hc -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(233,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(234,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(235,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(236,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(237,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(238,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hl -hl -hc -hU -hc -hl -hl -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -aa -aa -aa -aa -aa -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(239,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hm -hv -hc -ab -hc -hm -hv -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -aa -jl -jl -jl -jl -jl -jn -jl -jl -jl -jl -jl -aa -aa -aa -aa -aa -aa -"} -(240,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(241,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(242,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(243,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(244,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(245,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(246,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -jk -jk -jk -jk -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(247,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(248,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(249,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(250,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jo -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(251,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jl -jl -jl -jl -jl -jl -jl -jl -jl -jl -aa -aa -aa -aa -aa -aa -"} -(252,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(253,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(254,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(255,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} diff --git a/_maps/RandomZLevels/away_mission/wildwest.dmm b/_maps/RandomZLevels/away_mission/wildwest.dmm index 77682ec3a2..ef4eabdc65 100644 --- a/_maps/RandomZLevels/away_mission/wildwest.dmm +++ b/_maps/RandomZLevels/away_mission/wildwest.dmm @@ -50,15 +50,13 @@ /turf/open/floor/circuit/off, /area/awaymission/wildwest/vault) "an" = ( -/turf/open/floor/plasteel/cult{ - name = "engraved floor" - }, +/turf/open/floor/plasteel/cult, /area/awaymission/wildwest/vault) "ao" = ( /turf/open/floor/circuit/green/off, /area/awaymission/wildwest/vault) "ap" = ( -/obj/machinery/wish_granter_dark, +/obj/item/nullrod/claymore/glowing, /turf/open/floor/circuit/green/off, /area/awaymission/wildwest/vault) "aq" = ( @@ -69,54 +67,72 @@ /obj/machinery/gateway{ dir = 9 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "as" = ( /obj/machinery/gateway{ dir = 1 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "at" = ( /obj/machinery/gateway{ dir = 5 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "au" = ( /obj/machinery/gateway{ dir = 8 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "av" = ( /obj/machinery/gateway/centeraway{ calibrated = 0 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "aw" = ( /obj/machinery/gateway{ dir = 4 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "ax" = ( /obj/machinery/gateway{ dir = 10 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "ay" = ( /obj/machinery/gateway, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "az" = ( /obj/machinery/gateway{ dir = 6 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "aA" = ( /obj/effect/meatgrinder, /turf/open/floor/circuit/green/off, @@ -162,9 +178,7 @@ /area/awaymission/wildwest/vault) "aL" = ( /obj/item/paper/fluff/awaymissions/wildwest/grinder, -/turf/open/floor/plasteel/cult{ - name = "engraved floor" - }, +/turf/open/floor/plasteel/cult, /area/awaymission/wildwest/vault) "aM" = ( /turf/closed/mineral/silver, @@ -174,9 +188,7 @@ /area/awaymission/wildwest/mines) "aO" = ( /obj/effect/mob_spawn/human/corpse/syndicatecommando, -/turf/open/floor/plasteel/cult{ - name = "engraved floor" - }, +/turf/open/floor/plasteel/cult, /area/awaymission/wildwest/vault) "aP" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -349,11 +361,6 @@ /obj/structure/bed, /turf/open/floor/wood, /area/awaymission/wildwest/mines) -"bC" = ( -/obj/structure/table/wood, -/obj/item/gun/ballistic, -/turf/open/floor/wood, -/area/awaymission/wildwest/mines) "bD" = ( /obj/structure/table/wood, /turf/open/floor/wood, @@ -595,17 +602,8 @@ dir = 5 }, /area/awaymission/wildwest/mines) -"ch" = ( -/obj/structure/table/wood, -/obj/item/gun/ballistic, -/turf/open/floor/plasteel/cafeteria{ - dir = 5 - }, -/area/awaymission/wildwest/mines) "ci" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/wood, /area/awaymission/wildwest/mines) "cj" = ( @@ -755,7 +753,7 @@ /area/awaymission/wildwest/mines) "cL" = ( /obj/structure/table/wood, -/obj/item/dualsaber, +/obj/item/nullrod/claymore/saber/red, /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cM" = ( @@ -767,9 +765,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cO" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cP" = ( @@ -946,17 +942,13 @@ /turf/open/floor/carpet, /area/awaymission/wildwest/mines) "dm" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, /area/awaymission/wildwest/mines) "dn" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" @@ -1048,9 +1040,7 @@ }, /area/awaymission/wildwest/gov) "dD" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, @@ -1176,7 +1166,6 @@ /area/awaymission/wildwest/gov) "dV" = ( /obj/machinery/shower{ - icon_state = "shower"; dir = 4 }, /turf/open/floor/plasteel/cafeteria{ @@ -1185,7 +1174,6 @@ /area/awaymission/wildwest/mines) "dW" = ( /obj/machinery/shower{ - icon_state = "shower"; dir = 8 }, /turf/open/floor/plasteel/cafeteria{ @@ -2009,10 +1997,6 @@ /obj/machinery/photocopier, /turf/open/floor/wood, /area/awaymission/wildwest/mines) -"gm" = ( -/obj/item/gun/ballistic, -/turf/open/floor/wood, -/area/awaymission/wildwest/mines) "gn" = ( /mob/living/simple_animal/hostile/netherworld, /turf/open/floor/grass, @@ -2195,10 +2179,9 @@ /area/awaymission/wildwest/mines) "gW" = ( /obj/structure/table/reinforced, -/obj/item/clothing/suit/space/syndicate/black/orange, -/obj/item/clothing/head/helmet/space/syndicate/black/orange, -/obj/item/clothing/mask/gas/syndicate, /obj/item/tank/internals/oxygen, +/obj/item/clothing/suit/space/syndicate/blue, +/obj/item/clothing/head/helmet/space/syndicate/blue, /turf/open/floor/mineral/titanium/yellow, /area/awaymission/wildwest/refine) "gX" = ( @@ -32762,9 +32745,9 @@ aT aN aN aT -aT -aT -aT +ar +au +ax aT aT aT @@ -33019,9 +33002,9 @@ aT aN aN aT -aT -aT -aT +as +av +ay aT aT aT @@ -33276,9 +33259,9 @@ aT aN aN aT -aT -aT -aT +at +aw +az aT aT aT @@ -38117,7 +38100,7 @@ bu bz bM bM -ch +bM by bu bj @@ -39913,7 +39896,7 @@ bj bj aT bu -bC +bD bj bj bu @@ -46340,7 +46323,7 @@ aT bu bD bj -bC +bD cl bj bj @@ -47563,9 +47546,9 @@ aa ab ab ab -ar -au -ax +ao +ao +ao ao ao ao @@ -47820,9 +47803,9 @@ aa ab ab ab -as -av -ay +ao +ao +ao ao ao ao @@ -48077,9 +48060,9 @@ aa aa ab ab -at -aw -az +ao +ao +ao ao ao ao @@ -48850,7 +48833,7 @@ aa ab ab ao -ao +ap ao ab ab @@ -51159,7 +51142,7 @@ aa aa aa ab -ap +ao ao aq ab @@ -52283,7 +52266,7 @@ eX dj bj bu -gm +bj bj eM bj diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index bab02a5fc2..8c558e000e 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -850,6 +850,10 @@ /area/maintenance/fore) "acc" = ( /obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "solitarylock"; + name = "Brig Lockdown" + }, /turf/open/floor/plating, /area/security/brig) "acd" = ( @@ -1246,11 +1250,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/structure/closet/crate/freezer, /obj/machinery/firealarm{ pixel_y = 26 }, -/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/machinery/washing_machine, /turf/open/floor/plasteel, /area/crew_quarters/lounge) "acW" = ( @@ -2403,6 +2406,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/washing_machine, /turf/open/floor/plasteel/checker, /area/hallway/secondary/entry) "afP" = ( @@ -2636,9 +2640,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/mob/living/simple_animal/pet/redpanda{ - name = "Stinky" - }, /turf/open/floor/plasteel, /area/crew_quarters/lounge) "agt" = ( @@ -2667,6 +2668,11 @@ pixel_y = 28 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/displaycase/labcage{ + desc = "A glass lab container for storing smelly creatures."; + name = "stinky panda containment"; + start_showpiece_type = /mob/living/simple_animal/pet/redpanda/stinky + }, /turf/open/floor/plasteel, /area/crew_quarters/lounge) "agx" = ( @@ -3089,6 +3095,10 @@ /area/crew_quarters/kitchen) "ahy" = ( /obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "solitarylock"; + name = "Brig Lockdown" + }, /turf/open/floor/plating, /area/security/warden) "ahz" = ( @@ -3586,6 +3596,8 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/genpop, /turf/open/floor/plasteel, /area/security/brig) "aiL" = ( @@ -3791,6 +3803,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/washing_machine, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -3895,7 +3908,7 @@ /area/security/brig) "ajA" = ( /obj/effect/turf_decal/bot, -/obj/structure/closet/secure_closet/brig, +/obj/structure/closet/secure_closet/genpop, /turf/open/floor/plasteel, /area/security/brig) "ajB" = ( @@ -3905,6 +3918,10 @@ }, /obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/prison) "ajC" = ( @@ -9731,6 +9748,10 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/prison) "awI" = ( @@ -9820,6 +9841,10 @@ dir = 1 }, /obj/effect/turf_decal/tile/bar, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/main) "awR" = ( @@ -9903,13 +9928,21 @@ name = "Thermo-Electric Generator" }) "awY" = ( -/obj/structure/closet/wardrobe/orange, /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "solitarylock"; + name = "Solitary Lockdown"; + pixel_x = -24; + req_access_txt = "2" + }, /turf/open/floor/plasteel, /area/security/brig) "awZ" = ( @@ -10015,7 +10048,7 @@ pixel_y = 28 }, /obj/effect/turf_decal/bot, -/obj/structure/closet/secure_closet/brig, +/obj/structure/closet/secure_closet/genpop, /turf/open/floor/plasteel, /area/security/brig) "axj" = ( @@ -10780,6 +10813,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/main) "ayP" = ( @@ -10943,6 +10980,7 @@ /area/maintenance/port/central) "aze" = ( /obj/machinery/power/apc{ + dir = 1; name = "AI Chamber APC"; pixel_y = 24 }, @@ -11617,13 +11655,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_y = 6 - }, -/obj/item/gun/energy/e_gun/advtaser, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_y = -6 - }, /obj/machinery/vending/security, /turf/open/floor/plasteel, /area/security/brig) @@ -12159,6 +12190,10 @@ dir = 1 }, /obj/effect/turf_decal/tile/bar, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/main) "aBy" = ( @@ -12719,6 +12754,10 @@ }, /obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/prison) "aCI" = ( @@ -14374,7 +14413,9 @@ /turf/open/floor/plasteel, /area/storage/emergency/generic) "aFX" = ( -/obj/structure/filingcabinet, +/obj/machinery/computer/security/hos{ + dir = 4 + }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "aFY" = ( @@ -14809,7 +14850,9 @@ c_tag = "Security - Head of Security's Office"; pixel_x = 22 }, -/obj/machinery/computer/security/hos, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "aGL" = ( @@ -16299,8 +16342,9 @@ }, /obj/effect/turf_decal/tile/red, /obj/item/storage/belt/medical, -/obj/item/clothing/suit/space/hardsuit/medical, /obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/suit/space/eva/paramedic, +/obj/item/clothing/head/helmet/space/eva/paramedic, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -16481,11 +16525,28 @@ /turf/open/floor/plasteel, /area/security/main) "aJV" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/closed/wall, -/area/security/prison) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) "aJW" = ( /obj/machinery/cryopod{ dir = 8 @@ -16773,7 +16834,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/flasher/portable, +/obj/machinery/rnd/production/techfab/department/security, /turf/open/floor/plasteel, /area/security/brig) "aKz" = ( @@ -18308,7 +18369,7 @@ pixel_x = 22 }, /obj/machinery/power/apc/highcap/fifteen_k{ - areastring = "area/tcommsat/computer"; + areastring = "/area/tcommsat/server"; dir = 1; name = "Telecomms Server APC"; pixel_y = 24 @@ -18317,7 +18378,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/tcommsat/computer) +/area/tcommsat/server) "aND" = ( /turf/open/floor/plasteel/white, /area/medical{ @@ -19373,7 +19434,7 @@ icon_state = "4-8" }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "aPS" = ( /obj/machinery/holopad, /turf/open/floor/plasteel/white, @@ -26419,6 +26480,7 @@ dir = 1 }, /obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on, /turf/open/floor/plating, /area/crew_quarters/fitness/cogpool) "bfz" = ( @@ -27000,8 +27062,8 @@ /area/quartermaster/warehouse) "bgJ" = ( /obj/machinery/portable_atmospherics/pump, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/open/floor/plating, /area/crew_quarters/fitness/cogpool) @@ -29276,15 +29338,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/item/surgical_drapes, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 16 - }, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/surgicaldrill, -/obj/item/cautery, +/obj/item/storage/backpack/duffelbag/med/surgery, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -31598,9 +31652,6 @@ dir = 1 }, /area/hallway/secondary/exit) -"bqq" = ( -/turf/closed/wall, -/area/science/robotics/lab) "bqr" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -31615,7 +31666,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, -/area/science/robotics/lab) +/area/maintenance/aft) "bqt" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red{ @@ -31629,7 +31680,6 @@ /obj/item/clothing/mask/surgical, /obj/item/healthanalyzer, /obj/item/clothing/neck/stethoscope, -/obj/item/razor, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -31699,8 +31749,8 @@ dir = 8 }, /obj/machinery/light, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 9 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -32192,9 +32242,26 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "brz" = ( -/obj/machinery/computer/rdconsole/robotics, -/turf/open/floor/circuit, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/research"; + name = "Research Sector APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) "brA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32251,15 +32318,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/civilian) -"brF" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/stripes/white/full, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) "brG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32274,13 +32332,21 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "brH" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/stripes/line{ - dir = 6 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/closet/wardrobe/chemistry_white{ + anchored = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "brI" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -32298,32 +32364,21 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "brJ" = ( -/obj/machinery/vending/assist, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1" +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) "brK" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" +/obj/machinery/chem_heater, +/obj/effect/turf_decal/trimline/yellow/filled/end{ + dir = 1 }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "brL" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -32844,42 +32899,37 @@ /turf/open/floor/grass, /area/hydroponics) "bsL" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bsM" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bsN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/trimline/yellow/filled/end, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 5 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"bsM" = ( +/turf/closed/wall, /area/science/robotics/lab) +"bsN" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/chemistry) "bsO" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/closed/wall/r_wall, /area/hallway/secondary/civilian) -"bsP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) "bsQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/smartfridge/chemistry/preloaded, +/turf/closed/wall/r_wall, +/area/medical/chemistry) "bsR" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/grimy, @@ -32899,9 +32949,8 @@ /turf/open/space/basic, /area/space/nearstation) "bsU" = ( -/obj/effect/landmark/start/roboticist, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bsV" = ( /turf/closed/wall, @@ -33039,18 +33088,27 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "btn" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bto" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/science/robotics/lab) -"btp" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" }, /turf/open/floor/plating, /area/science/robotics/lab) +"bto" = ( +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"btp" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "btq" = ( /obj/machinery/vending/cigarette, /obj/effect/decal/cleanable/dirt, @@ -33072,9 +33130,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/chapel) -"bts" = ( -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) "btt" = ( /obj/structure/chair{ dir = 8 @@ -33104,12 +33159,11 @@ /turf/closed/wall, /area/hallway/secondary/civilian) "btv" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/belt/utility, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/router/medsci) "btw" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -33327,16 +33381,16 @@ /turf/open/floor/plating, /area/router) "bua" = ( -/obj/machinery/camera{ - c_tag = "Robotics Backroom"; - dir = 8; - network = list("ss13","medbay"); - pixel_y = -22 +/obj/effect/turf_decal/tile/purple{ + dir = 1 }, -/obj/structure/sign/poster/contraband/borg_fancy_2{ - pixel_x = 32 +/obj/effect/turf_decal/tile/purple{ + dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side, /area/science/robotics/lab) "bub" = ( /obj/effect/turf_decal/tile/yellow, @@ -33390,12 +33444,6 @@ "bui" = ( /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"buj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) "buk" = ( /obj/structure/cable{ icon_state = "1-2" @@ -33410,15 +33458,13 @@ /turf/open/floor/plating, /area/router) "bul" = ( -/obj/machinery/light_switch{ - pixel_x = 24 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem1"; + name = "chem lab shutters" }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plating, +/area/medical/chemistry) "bum" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, @@ -34046,11 +34092,25 @@ /turf/open/floor/carpet/green, /area/crew_quarters/heads/hop) "bvK" = ( -/obj/structure/table/optable, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/cable_coil/random, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "bvL" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -34228,9 +34288,26 @@ /turf/open/floor/plating, /area/maintenance/department/chapel) "bwf" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table/glass, +/obj/item/book/manual/wiki/chemistry, +/obj/item/book/manual/wiki/chemistry{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "bwg" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -35361,12 +35438,11 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "byw" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -28 +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 }, /turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/area/medical/chemistry) "byx" = ( /obj/machinery/telecomms/processor/preset_three, /turf/open/floor/circuit/telecomms/mainframe, @@ -35396,9 +35472,11 @@ /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "byD" = ( -/obj/effect/landmark/start/roboticist, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/area/medical/chemistry) "byE" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -35783,14 +35861,6 @@ }, /turf/open/floor/plasteel/white, /area/gateway) -"bzA" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) "bzB" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 6 @@ -35833,11 +35903,15 @@ /turf/open/floor/plating, /area/router) "bzG" = ( -/obj/machinery/light{ - dir = 8 +/obj/machinery/chem_dispenser, +/obj/item/radio/intercom{ + pixel_x = -25 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/turf_decal/trimline/yellow/filled/end{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "bzH" = ( /obj/structure/disposalpipe/segment, /obj/structure/grille/broken, @@ -35853,8 +35927,8 @@ /area/hallway/primary/aft) "bzJ" = ( /obj/structure/sign/warning/biohazard, -/turf/closed/wall, -/area/science/robotics/lab) +/turf/closed/wall/r_wall, +/area/medical/chemistry) "bzK" = ( /obj/machinery/disposal/bin{ name = "Chapel Corpse Delivery" @@ -36258,26 +36332,28 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "bAC" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/machinery/chem_master, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + pixel_x = -30; + receive_ore_updates = 1 }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bAD" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/effect/turf_decal/trimline/yellow/filled/end, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "bAE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 }, -/obj/effect/landmark/start/ai/secondary, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/trimline/yellow/filled/end, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "bAF" = ( /obj/machinery/gateway/centerstation, /turf/open/floor/engine, @@ -36338,6 +36414,7 @@ name = "Chief Medical Officer's Office APC"; pixel_y = 24 }, +/mob/living/simple_animal/pet/cat/Runtime, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "bAK" = ( @@ -36626,12 +36703,11 @@ /turf/open/floor/plating, /area/maintenance/disposal) "bBs" = ( -/obj/machinery/aug_manipulator, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/structure/sign/warning/nosmoking{ + pixel_y = -32 }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) "bBt" = ( /obj/structure/cable{ icon_state = "4-8" @@ -36816,10 +36892,14 @@ "bBP" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, -/area/medical/chemistry) +/area/science/robotics/lab) "bBQ" = ( -/turf/closed/wall, -/area/medical/chemistry) +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bBR" = ( /obj/structure/cable{ icon_state = "0-8" @@ -36969,13 +37049,6 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hop) -"bCf" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/medical/chemistry) -"bCg" = ( -/turf/closed/wall/r_wall, -/area/medical/chemistry) "bCh" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -37297,10 +37370,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"bCY" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/robotics/lab) "bCZ" = ( /obj/machinery/conveyor{ dir = 8; @@ -37381,7 +37450,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/effect/decal/cleanable/dirt, -/obj/item/pipe_meter, +/obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/department/chapel) "bDk" = ( @@ -37465,7 +37534,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/item/pipe_meter, +/obj/machinery/meter, /turf/closed/wall/r_wall, /area/crew_quarters/kitchen/backroom) "bDs" = ( @@ -37692,13 +37761,9 @@ /turf/open/floor/plasteel/stairs, /area/crew_quarters/bar) "bDT" = ( -/obj/machinery/chem_heater, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bDU" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/effect/spawner/structure/window/reinforced, @@ -38464,8 +38529,12 @@ "bFu" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, /turf/open/floor/plating, -/area/medical/chemistry) +/area/science/robotics/lab) "bFv" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -38485,18 +38554,33 @@ }, /obj/structure/cable, /obj/machinery/power/apc{ - areastring = "area/science/xenobiology"; + areastring = "/area/science/xenobiology"; name = "Xenobiology Lab APC"; pixel_y = -24 }, /turf/open/floor/plasteel, /area/science/xenobiology) "bFx" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/stripes/line, -/obj/item/reagent_containers/glass/beaker/large, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 1 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 1 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 31; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bFy" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -38524,33 +38608,22 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bFB" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/structure/bodycontainer/morgue{ + dir = 2 }, -/obj/effect/turf_decal/stripes/white/full, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bFC" = ( /obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/firealarm{ - pixel_y = 26 - }, -/obj/item/storage/fancy/donut_box, -/obj/item/storage/box/beakers, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/storage/box/bodybags, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bFD" = ( /obj/structure/disposaloutlet{ dir = 4 @@ -38561,11 +38634,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/sorting) -"bFE" = ( -/obj/machinery/smoke_machine, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/medical/chemistry) "bFF" = ( /obj/machinery/light_switch{ pixel_y = 24 @@ -38575,10 +38643,6 @@ }, /turf/open/floor/plating, /area/storage/tech) -"bFG" = ( -/obj/structure/sign/departments/chemistry, -/turf/closed/wall, -/area/medical/chemistry) "bFH" = ( /obj/machinery/power/apc{ name = "Customs APC"; @@ -38849,12 +38913,12 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/light_switch{ - pixel_y = 24 - }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bGa" = ( @@ -39584,20 +39648,8 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bHD" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -39614,6 +39666,13 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, +/obj/machinery/camera{ + c_tag = "Medbay - Starboard"; + network = list("ss13","rd") + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bHF" = ( @@ -39640,9 +39699,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, @@ -39652,9 +39708,8 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Medbay - Starboard"; - network = list("ss13","rd") +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -39681,6 +39736,9 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bHJ" = ( @@ -39811,52 +39869,40 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/plating, -/area/medical/chemistry) -"bId" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"bId" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/dark/side{ + dir = 9 + }, +/area/science/robotics/lab) +"bIe" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/mob/living/simple_animal/bot/firebot, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bIe" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/science/robotics/lab) "bIf" = ( /obj/effect/turf_decal/tile/purple{ - dir = 4 + dir = 8 }, -/obj/effect/landmark/start/chemist, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/science/robotics/lab) "bIg" = ( /obj/structure/table, /obj/effect/turf_decal/tile/purple{ @@ -39874,32 +39920,19 @@ name = "Research Sector" }) "bIh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bIi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bIj" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bIk" = ( -/obj/machinery/smartfridge/chemistry/preloaded, -/turf/closed/wall, -/area/medical/chemistry) +/turf/closed/wall/r_wall, +/area/science/robotics/lab) "bIl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40119,19 +40152,6 @@ /obj/item/extinguisher, /turf/open/floor/plasteel, /area/science/xenobiology) -"bIL" = ( -/obj/structure/closet/l3closet/scientist, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bIM" = ( -/turf/open/floor/plasteel/white, -/area/medical/chemistry) "bIN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40308,16 +40328,6 @@ /obj/structure/window/reinforced/spawner, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bJd" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) "bJe" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/effect/turf_decal/tile/blue, @@ -40547,27 +40557,48 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bJC" = ( -/obj/effect/turf_decal/tile/purple{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/button/door{ + id = "robotics2"; + name = "Shutters Control Button"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "29" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bJD" = ( -/obj/machinery/chem_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bJE" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -5 }, -/obj/item/reagent_containers/glass/beaker/large, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil/random{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bJF" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -40600,8 +40631,12 @@ /area/hallway/primary/central) "bJH" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, /turf/open/floor/plating, -/area/medical/chemistry) +/area/science/robotics/lab) "bJI" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -40773,30 +40808,47 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "bKd" = ( -/obj/structure/closet/bombcloset, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bKe" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bKf" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "robotics"; + name = "Shutters Control Button"; + pixel_y = 8; + req_access_txt = "29"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/science/robotics/lab) +"bKe" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/robotics/lab) +"bKf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -41120,70 +41172,88 @@ /turf/open/floor/engine, /area/science/xenobiology) "bKN" = ( -/obj/machinery/vending/wardrobe/chem_wardrobe, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/structure/table, +/obj/item/book/manual/wiki/robotics_cyborgs{ + pixel_x = -3; + pixel_y = -2 }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/item/book/manual/ripley_build_and_repair{ + pixel_x = 3; + pixel_y = 2 }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/mmi/posibrain, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKO" = ( -/obj/structure/closet/crate/medical, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/multitool{ + pixel_x = 3 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/item/multitool{ + pixel_x = 3 }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = -1 }, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/reagent_containers/glass/bottle/ammonia, -/obj/item/reagent_containers/glass/bottle/atropine, -/obj/item/reagent_containers/glass/bottle/bromine, -/obj/item/reagent_containers/glass/bottle/charcoal, -/obj/item/reagent_containers/glass/bottle/diethylamine, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/obj/item/reagent_containers/glass/bottle/ethanol, -/obj/item/reagent_containers/glass/bottle/formaldehyde, -/obj/item/reagent_containers/glass/bottle/iron, -/obj/item/reagent_containers/glass/bottle/morphine, -/obj/item/reagent_containers/glass/bottle/salglu_solution, -/obj/item/reagent_containers/glass/bottle/toxin, -/obj/item/reagent_containers/glass/bottle/carbon, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKP" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 8 +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_y = 3; + pixel_x = 4 }, -/obj/machinery/door/window/northright{ - name = "Emergency Shower" +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_x = -6; + pixel_y = 6 }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/machinery/button/door{ + id = "robotics3"; + name = "Shutters Control Button"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKQ" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower"; - pixel_y = -4 - }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/droneDispenser, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKR" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -43689,7 +43759,7 @@ pixel_x = 22 }, /obj/machinery/turretid{ - control_area = "area/ai_monitored/turret_protected/ai"; + control_area = "/area/ai_monitored/turret_protected/ai"; dir = 1; name = "AI Chamber turret control"; pixel_x = 5; @@ -43834,12 +43904,33 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/morgue) "bQp" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (Common)"; - pixel_x = -26 +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; + dir = 1; + name = "Chemistry APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/obj/item/storage/box/syringes, +/obj/item/storage/box/beakers{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/effect/turf_decal/trimline/yellow/filled/end{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "bQq" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -44485,7 +44576,7 @@ dir = 1; network = list("minisat") }, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -44723,13 +44814,20 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/effect/turf_decal/tile/yellow, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; + dir = 8; + name = "Robotics Lab APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plasteel, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/lab) "bRU" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -44737,11 +44835,15 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bRV" = ( -/obj/structure/sign/departments/chemistry, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/closed/wall, -/area/medical/chemistry) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) "bRW" = ( /obj/effect/turf_decal/bot, /obj/structure/cable{ @@ -44796,33 +44898,22 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bSd" = ( -/obj/structure/closet/secure_closet/chemical, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, +/obj/structure/table, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bSe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Robotics"; - departmentType = 2; - name = "Robotics RC"; - pixel_x = -30; - receive_ore_updates = 1 +/obj/machinery/computer/rdconsole/robotics{ + dir = 1 }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) @@ -45150,6 +45241,7 @@ /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, /obj/item/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil/red, /turf/open/floor/plasteel/white, /area/science/lab) "bSN" = ( @@ -45511,27 +45603,30 @@ }, /area/medical/medbay/lobby) "bTC" = ( -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bTD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/disposalpipe/junction{ + dir = 1 }, -/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, +/area/science/robotics/lab) +"bTD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bTE" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/white, @@ -48005,31 +48100,22 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "bYo" = ( -/obj/structure/closet/emcloset, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "bYp" = ( -/obj/structure/rack, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/wrench, -/obj/item/light/tube, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/plasteel/recharge_floor, +/area/science/robotics/mechbay) "bYq" = ( /obj/machinery/light/small{ dir = 1 }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/machinery/mech_bay_recharge_port{ + dir = 8 + }, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "bYr" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -48104,9 +48190,7 @@ }) "bYv" = ( /turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/mechbay) "bYw" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -48126,10 +48210,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "bYy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48140,13 +48222,8 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "bYz" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 10 @@ -48170,24 +48247,9 @@ name = "Research Sector" }) "bYB" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/item/clothing/gloves/color/latex, -/obj/item/book/manual/wiki/chemistry, -/obj/item/reagent_containers/dropper, -/obj/item/radio/headset/headset_medsci, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/robotics/lab) "bYC" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -48215,12 +48277,11 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "bYF" = ( -/obj/machinery/portable_atmospherics/pump, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/structure/cable, +/obj/machinery/recharge_station, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "bYG" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -48237,78 +48298,36 @@ name = "Medbay Treatment Center" }) "bYH" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/structure/sign/poster/contraband/kss13{ + pixel_y = -32 + }, +/obj/structure/cable, +/obj/machinery/recharge_station, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "bYI" = ( -/obj/structure/table, /obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/yellow, -/obj/item/storage/box/beakers, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ +/obj/effect/turf_decal/tile/purple{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bYJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/robotics/lab) +"bYJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bYK" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/sorting/mail{ - dir = 8; - sortType = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bYL" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -48439,13 +48458,13 @@ name = "Computer Core" }) "bYY" = ( -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) "bYZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -48476,7 +48495,7 @@ }, /obj/item/circuitboard/machine/rdserver, /obj/item/disk/tech_disk, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -48486,7 +48505,7 @@ }, /obj/machinery/light, /obj/structure/disposalpipe/segment, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -48817,21 +48836,13 @@ /turf/closed/wall/r_wall, /area/library) "bZT" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/structure/table/optable{ + name = "Robotics Operating Table" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/item/storage/box/pillbottles, -/obj/item/hand_labeler, -/obj/item/clothing/glasses/science, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bZU" = ( /obj/structure/table/wood, /obj/machinery/door/window/northright{ @@ -48947,19 +48958,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"caj" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) "cak" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, @@ -49078,6 +49076,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, +/obj/item/stack/cable_coil/red, /turf/open/floor/plasteel, /area/science/explab) "caD" = ( @@ -49107,32 +49106,11 @@ /area/engine/atmos) "caG" = ( /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, +/turf/open/floor/plasteel/dark, /area/science/explab) -"caH" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/landmark/start/chemist, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/chair/office/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) "caI" = ( /obj/structure/table/reinforced, /obj/item/integrated_electronics/analyzer, @@ -49171,15 +49149,9 @@ /turf/open/floor/engine/o2, /area/engine/atmos) "caO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "caP" = ( /obj/structure/chair/office/light, /obj/effect/turf_decal/stripes/line, @@ -49564,19 +49536,6 @@ /area/engine/supermatter{ name = "Thermo-Electric Generator" }) -"cbK" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) "cbL" = ( /obj/structure/cable{ icon_state = "4-8" @@ -49758,21 +49717,8 @@ /turf/open/floor/plating/airless, /area/router/aux) "ccd" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cce" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -49853,20 +49799,13 @@ /turf/open/floor/plasteel/stairs, /area/maintenance/department/chapel) "ccm" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" }, -/obj/machinery/mecha_part_fabricator, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - layer = 3.2 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/turf/open/floor/plating, +/area/router/medsci) "ccn" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor/auto{ @@ -49930,9 +49869,7 @@ "cct" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/mechbay) "ccu" = ( /obj/structure/cable{ icon_state = "1-2" @@ -50021,16 +49958,23 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/window/westleft{ - name = "Chemistry Desk"; - req_access_txt = "33" - }, /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/science/robotics/lab) "ccC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50734,46 +50678,12 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "ceb" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics3"; + name = "robotics lab shutters" }, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/obj/item/storage/belt/utility, -/obj/item/crowbar/large, -/obj/item/multitool, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/mecha_part_fabricator, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - layer = 3.2 - }, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/science/robotics/lab) "cec" = ( /obj/structure/table/glass, @@ -51819,28 +51729,25 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cgf" = ( -/obj/structure/table, -/obj/structure/table, -/obj/machinery/reagentgrinder, /obj/effect/turf_decal/tile/purple{ - dir = 4 + dir = 1 }, /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/robotics/lab) "cgg" = ( /obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -51940,19 +51847,17 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cgr" = ( +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/science/robotics/mechbay"; + dir = 1; + name = "Mech Bay APC"; + pixel_y = 28 + }, /obj/structure/cable{ icon_state = "0-2" }, -/obj/machinery/power/apc{ - areastring = "/area/science/research"; - dir = 1; - name = "Research Sector APC"; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) "cgs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52882,9 +52787,7 @@ dir = 4 }, /turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/mechbay) "cip" = ( /obj/machinery/mass_driver{ id = "cargo_in"; @@ -53170,7 +53073,7 @@ "ciW" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8; - sortType = 14 + sortType = 11 }, /obj/structure/cable{ icon_state = "4-8" @@ -53716,23 +53619,24 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cka" = ( -/obj/item/beacon, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "ckb" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/machinery/aug_manipulator, +/obj/machinery/camera/autoname{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "ckc" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -53764,10 +53668,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/science/research{ name = "Research Sector" @@ -53815,16 +53719,11 @@ c_tag = "Research Maintenance"; dir = 4 }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/department/science"; - dir = 8; - name = "Research Wing Maintenance APC"; - pixel_x = -24 +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "ckl" = ( /turf/open/space/basic, /area/space/station_ruins) @@ -53853,18 +53752,6 @@ /area/engine/engineering{ name = "Engine Room" }) -"ckp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light, -/obj/structure/table, -/obj/item/book/manual/wiki/robotics_cyborgs, -/obj/item/mmi, -/obj/item/mmi, -/obj/item/mmi, -/turf/open/floor/plasteel, -/area/science/robotics/lab) "ckq" = ( /obj/structure/closet/crate/hydroponics, /obj/machinery/light_switch{ @@ -53999,31 +53886,10 @@ /turf/open/floor/plasteel, /area/engine/teg_cold) "ckD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/crowbar/large, -/obj/item/multitool, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/chem_master, +/obj/effect/turf_decal/trimline/yellow/filled/end, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "ckE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -54424,20 +54290,9 @@ /area/library) "clv" = ( /obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/item/clothing/gloves/color/latex, -/obj/item/storage/box/syringes, -/obj/item/reagent_containers/dropper, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "clw" = ( /obj/effect/landmark/start/librarian, /obj/machinery/newscaster{ @@ -54905,18 +54760,6 @@ }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) -"cmB" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/science/robotics/lab"; - dir = 4; - name = "Robotics Lab APC"; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/maintenance/aft) "cmC" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -55070,20 +54913,51 @@ /turf/open/floor/engine, /area/science/xenobiology) "cmR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cmS" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/healthanalyzer{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/healthanalyzer{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/healthanalyzer{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cmT" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -55278,14 +55152,10 @@ name = "Research Observatory" }) "cnk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "cnl" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -55776,23 +55646,6 @@ }, /turf/open/floor/plasteel, /area/engine/teg_hot) -"col" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"com" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "Robotics Storage"; - req_access_txt = "29" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) "con" = ( /obj/structure/cable{ icon_state = "1-2" @@ -55878,12 +55731,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) -"cov" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/plating, -/area/science/robotics/lab) "cow" = ( /obj/machinery/door/airlock/external/glass{ name = "Asteroid Mining Access"; @@ -55903,11 +55750,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"cox" = ( -/obj/machinery/vending/wardrobe/robo_wardrobe, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel, -/area/science/robotics/lab) "coy" = ( /obj/structure/sign/poster/official/safety_internals{ pixel_x = -32 @@ -56014,9 +55856,15 @@ /area/science/explab) "coH" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, /turf/open/floor/plating, -/area/medical/chemistry) +/area/router/medsci) "coI" = ( /obj/structure/closet/secure_closet/medical1, /obj/effect/turf_decal/tile/yellow{ @@ -56213,6 +56061,8 @@ c_tag = "Medbay - Cryogenics"; dir = 1 }, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker/cryoxadone, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -56430,36 +56280,17 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cpw" = ( -/obj/structure/table, /obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/screwdriver, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Research - Chemistry Lab"; dir = 4 }, -/obj/machinery/requests_console{ - department = "Chemistry"; - departmentType = 1; - name = "Chemistry RC"; - pixel_x = -30; - receive_ore_updates = 1 +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/science/robotics/lab) "cpx" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/mineral/titanium/blue, @@ -56560,13 +56391,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"cpI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) "cpJ" = ( /turf/closed/wall/r_wall/rust, /area/quartermaster/office) @@ -57034,28 +56858,11 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cqz" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/item/clothing/gloves/color/latex, -/obj/item/book/manual/wiki/cit/chem_recipies, -/obj/item/book/manual/wiki/cit/chemistry{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden, -/obj/item/paper/fluff/cogstation/chemists, -/obj/item/reagent_containers/dropper, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel, +/area/science/robotics/lab) "cqA" = ( /obj/structure/cable{ icon_state = "1-2" @@ -57368,24 +57175,9 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "crf" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/medical/chemistry"; - name = "Chemistry Lab APC"; - pixel_y = -26 - }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) -"crg" = ( -/obj/structure/reagent_dispensers/fueltank/high, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) "crh" = ( /obj/machinery/mass_driver{ dir = 1; @@ -57890,12 +57682,14 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "csi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem1"; + name = "chem lab shutters" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plating, +/area/medical/chemistry) "csj" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -58195,9 +57989,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "csK" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/closed/wall, -/area/science/robotics/lab) +/turf/closed/wall/r_wall, +/area/medical/chemistry) "csL" = ( /obj/effect/landmark/xmastree/rdrod, /turf/open/floor/carpet{ @@ -58266,19 +58059,13 @@ /turf/open/floor/plating, /area/storage/tech) "csV" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/stripes/line{ - dir = 6 +/obj/machinery/mecha_part_fabricator, +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + network = list("ss13","rd") }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (Common)"; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "csW" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, @@ -58296,10 +58083,11 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "csZ" = ( -/obj/machinery/holopad, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) "cta" = ( /obj/effect/landmark/blobstart, /obj/effect/landmark/xeno_spawn, @@ -59009,20 +58797,9 @@ name = "Research Observatory" }) "cum" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/obj/structure/sign/poster/official/science{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cun" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/meat/steak, @@ -59040,21 +58817,16 @@ /turf/open/floor/plating, /area/hallway/primary/aft) "cup" = ( -/obj/structure/table, -/obj/item/surgical_drapes, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 16 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/cautery, -/obj/item/clothing/gloves/color/latex, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/structure/closet/secure_closet/chemical, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "cuq" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -59402,38 +59174,29 @@ /area/medical/medbay/central) "cuY" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Chemistry Lab"; - req_access_txt = "8;33;47" - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cuZ" = ( /obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, +/area/science/robotics/lab) "cva" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -59583,22 +59346,33 @@ /area/medical/virology) "cvt" = ( /obj/effect/turf_decal/tile/purple{ - dir = 8 + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"cvu" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/science/robotics/lab) +"cvu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "cvv" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -59899,56 +59673,37 @@ /area/janitor) "cvQ" = ( /obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/landmark/start/chemist, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/chair/office/light, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"cvR" = ( -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/obj/item/clothing/head/welding, -/obj/item/clothing/glasses/welding, -/obj/item/weldingtool, -/obj/machinery/camera{ - c_tag = "Robotics"; - dir = 8; - network = list("ss13","medbay"); - pixel_y = -22 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 26 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cvS" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/clothing/glasses/science, -/obj/item/hand_labeler{ - pixel_y = 8 +/obj/effect/turf_decal/tile/purple{ + dir = 4 }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/science/robotics/lab) +"cvR" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/showroomfloor, /area/medical/chemistry) +"cvS" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cvT" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall, @@ -60068,23 +59823,18 @@ /turf/open/floor/plasteel/dark, /area/security/checkpoint/customs) "cwb" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Research Maintenance"; - req_one_access_txt = "12;47" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" }, -/turf/open/floor/plating, -/area/science/research{ - name = "Research Sector" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "cwc" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -60274,11 +60024,19 @@ /turf/open/floor/plasteel, /area/engine/workshop) "cws" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "cwt" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -60569,19 +60327,27 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cxf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cxg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cxh" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/area/medical/chemistry) +"cxg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"cxh" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/trimline/yellow/filled/end{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "cxi" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/yellow{ @@ -61106,10 +60872,6 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 8; - icon_state = "intact" - }, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -61187,6 +60949,7 @@ pixel_y = 24 }, /obj/machinery/power/apc{ + dir = 4; name = "Restrooms APC"; pixel_x = 24 }, @@ -61303,17 +61066,6 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plating, /area/maintenance/aft) -"cyC" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) "cyD" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -61414,15 +61166,15 @@ /area/maintenance/aft) "cyN" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "Robotics Lab Maintenance"; - req_access_txt = "29" - }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, +/obj/machinery/door/airlock/maintenance{ + name = "Chemistry Maintenance"; + req_access_txt = "5; 33" + }, /turf/open/floor/plating, -/area/science/robotics/lab) +/area/medical/chemistry) "cyO" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -61788,15 +61540,15 @@ /area/crew_quarters/heads/cmo) "czv" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Morgue"; - req_access_txt = "5;29" - }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, /turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/area/medical/chemistry) "czw" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -61904,6 +61656,9 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "czG" = ( @@ -61912,17 +61667,15 @@ /area/medical/morgue) "czH" = ( /obj/effect/turf_decal/tile/purple{ - dir = 8 + dir = 1 }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 6 + }, +/area/science/robotics/lab) "czI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61957,9 +61710,8 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "czM" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, /turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/area/medical/chemistry) "czN" = ( /obj/structure/closet/crate/trashcart, /obj/structure/sign/departments/custodian{ @@ -61984,11 +61736,12 @@ /turf/open/floor/plating, /area/maintenance/disposal) "czP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/area/medical/chemistry) "czQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, @@ -62070,10 +61823,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab"; - req_access_txt = "29" - }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, @@ -62081,8 +61830,16 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/white, -/area/science/robotics/lab) +/area/medical/chemistry) "czX" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -62148,6 +61905,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cAd" = ( @@ -63866,9 +63626,6 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, -/obj/structure/chair/comfy/brown{ - dir = 8 - }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "cCX" = ( @@ -64383,6 +64140,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/item/stack/cable_coil/red, +/obj/item/stack/cable_coil/red{ + pixel_x = 3 + }, /turf/open/floor/plasteel, /area/gateway) "cDU" = ( @@ -64992,15 +64753,18 @@ name = "Research Sector" }) "cEN" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, /obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/science/research{ name = "Research Sector" @@ -65011,37 +64775,24 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/research{ - name = "Chemistry Lab"; - req_access_txt = "8; 33" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/medical/chemistry) -"cEP" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cEP" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cEQ" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -65392,16 +65143,8 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/item/surgical_drapes, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 16 - }, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/surgicaldrill, -/obj/item/cautery, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/item/storage/backpack/duffelbag/med/surgery, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -65738,38 +65481,23 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cFV" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cFW" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cFX" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ @@ -65778,28 +65506,18 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/research/glass{ - name = "Chemistry Lab"; - req_access_txt = "33" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/router/medsci) "cFY" = ( /turf/open/floor/plasteel, /area/router/air) @@ -66423,6 +66141,7 @@ /obj/item/stock_parts/cell/high/plus, /obj/item/stock_parts/cell/high/plus, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/item/stack/cable_coil/red, /turf/open/floor/plasteel/white, /area/science/circuit) "cHg" = ( @@ -66577,14 +66296,8 @@ dir = 8; network = list("ss13","medbay") }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, +/turf/open/floor/plasteel/dark, /area/science/explab) "cHw" = ( /obj/structure/disposalpipe/segment, @@ -66659,10 +66372,6 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/power/apc{ areastring = "/area/science/explab"; dir = 4; @@ -66670,9 +66379,7 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, +/turf/open/floor/plasteel/dark, /area/science/explab) "cHD" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -66865,14 +66572,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/security/checkpoint/supply) -"cHW" = ( -/obj/machinery/rnd/production/circuit_imprinter, -/obj/item/reagent_containers/glass/beaker, -/obj/structure/sign/poster/official/state_laws{ - pixel_y = 32 - }, -/turf/open/floor/circuit, -/area/science/robotics/lab) "cHX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68196,12 +67895,24 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) "cKi" = ( -/obj/structure/sign/poster/official/space_cops{ - pixel_y = 32 +/obj/machinery/button/door{ + id = "chem1"; + name = "Shutters Control Button"; + pixel_x = -8; + pixel_y = 24; + req_access_txt = "29" }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "cKj" = ( /obj/structure/closet/secure_closet/CMO, /obj/effect/turf_decal/tile/blue, @@ -69788,15 +69499,6 @@ /obj/item/stack/sheet/plasteel/fifty, /turf/open/floor/plating, /area/quartermaster/miningdock/airless) -"cNV" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/science/robotics/lab) "cNW" = ( /obj/structure/lattice/catwalk, /obj/machinery/camera{ @@ -70482,19 +70184,14 @@ icon_state = "4-8" }, /obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) -"cPw" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/sign/poster/contraband/kss13{ - pixel_y = -32 +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"cPw" = ( +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) "cPx" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -70514,6 +70211,9 @@ /obj/structure/sign/poster/official/medical_green_cross{ pixel_y = 32 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cPy" = ( @@ -70713,45 +70413,15 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cPP" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus{ - pixel_y = 8 +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 }, -/obj/item/stock_parts/cell/high/plus{ - pixel_y = 8 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) "cPQ" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -71565,7 +71235,7 @@ icon_state = "1-8" }, /obj/machinery/turretid{ - control_area = "area/science/server"; + control_area = "/area/science/server"; icon_state = "control_stun"; name = "Computer Core turret control"; pixel_x = -3; @@ -71573,7 +71243,9 @@ req_access_txt = "65" }, /turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/area/science/server{ + name = "Computer Core" + }) "cVq" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -95268,7 +94940,7 @@ adb anU aaR aqa -amZ +awY adO acN amZ @@ -95279,8 +94951,8 @@ alM axK axX azk -awY -awY +acN +acN azl aJw anU @@ -95374,12 +95046,12 @@ bYF bBP bFu bIc -bBQ -bBQ -bFG +btn +btn +bsM cuY -bCg -bCg +bIk +bIk cbB cbB cbB @@ -95629,14 +95301,14 @@ bYp bYx cPw bBQ -bFE +ccd bId -bIL +cpw cpw bKd cuZ bKN -bCg +bIk aaU aaU aaU @@ -95885,15 +95557,15 @@ bYv bYq cPv bYH -bBQ +bsM bDT bIe -bIM -bIM -bIM +bYB +bto +bYB cvt -bJD -bJH +bSe +ceb aaU aaa aaa @@ -96136,21 +95808,21 @@ bpz aaa aaU bXU -bKs -bKv +aJV +brz bYv cgr bYy crf -bBQ +bsM bFx bIf -bIM +bto csZ -bIM +bto cvQ -bJE -bJH +caO +ceb aaU aaa aaa @@ -96314,7 +95986,7 @@ aCH aew aIn aew -aJV +aFG aew aew ayT @@ -96396,18 +96068,18 @@ bXU bKs bLG bYv -bzA +bYv cwb bYv -bBQ +bsM csV bIe bYB cqz -bIM -cvt +bYB +bua cmS -bJH +ceb aaU aaa aaa @@ -96664,7 +96336,7 @@ cgf bKe czH bKO -bJH +ceb aaU aaa aaa @@ -96830,7 +96502,7 @@ aJt aJN aQg akv -aeJ +aew ayU aSQ aTg @@ -96921,7 +96593,7 @@ cka cmR cFV bKP -bJH +ceb aaU aaa aaa @@ -97087,7 +96759,7 @@ aLf aJO aQi alU -aeJ +aew ayW aSQ aAB @@ -97170,15 +96842,15 @@ cfZ bWX bWX ckf -bCf +bIk bFB bIh -bYK +ccd bJC bKf cFW bKQ -bCg +bIk aaU aaa aaa @@ -97344,7 +97016,7 @@ akv aKa aKw alU -aeJ +aew azc aSQ aAB @@ -97427,15 +97099,15 @@ bXU bXU bXU bWa -bCg +bIk bFC -bIi -caj +bIj +ccd bJD -bCg +btv cFX -bJH -bCg +ccm +cOI cOI cOI cOI @@ -97582,7 +97254,7 @@ alq alq apn aqF -aeJ +aew agD ahr aiH @@ -97684,12 +97356,12 @@ aaU aaU aaU aaU -bCg +bIk clv -bIi -caH +bsU +ccd bJE -bCg +btv cOx cOA cOE @@ -97941,10 +97613,10 @@ aaa aaa aaa aaU -bCg +bIk bZT -bIi -cbK +bsU +ccd ckb coH cOy @@ -98198,12 +97870,12 @@ aaU aaU aaU aaU -bCg +bIk cum bIj ccd cvS -bCg +cOI cOz cOC cOG @@ -98455,12 +98127,12 @@ brU cdZ brU brU -bCg -bFG +bIk +bIk bIk ccB bJH -bCg +cOI cGb bRI cOH @@ -102560,7 +102232,7 @@ bxM cyu cNJ cyB -cyC +cyB cyI cyL buS @@ -102817,7 +102489,7 @@ bbh ciQ bpD bpD -cmB +bpD bpD cyM cyB @@ -103072,16 +102744,16 @@ cgB bqx bbh bPw -bqq -bqq -bqq -bqq -bqq -bqq -bqq -bqq -bqq -bqq +bsZ +bsZ +bsZ +bsZ +csK +csK +csK +csK +csK +csK bHC cFe cFk @@ -103329,17 +103001,17 @@ cgB bqr bbh bPw -bqq -brz -bsL -bSe -bJd +bsZ +bim +bim +bim +csK bQp byw bzG bAC -bCY -bHD +csK +bHG cFf bEl aOF @@ -103586,17 +103258,17 @@ cgB bqr bbh bPw -bqq -cHW -bsM -btn -buj +bsZ +bim +bim +bim +bul bvK -bts -bts -bAD -bCY -bHD +czM +czM +czM +bsN +bHG cFf bJb bJJ @@ -103843,16 +103515,16 @@ cgB bqr bcT bPw -bqq -ccm -bsM -bto -buj +bsZ +bim +bim +bim +bul bwf byD -bts +brK bAE -bCY +bsQ bHE cAm cAt @@ -104098,18 +103770,18 @@ bdF cIL ciF bqz -bdu -caO -cov -ceb -bsN -btp -buj +bcT +bPw +bsZ +bim +bim +bim +bul cup -bts -bts -ckp -bqq +cxf +czM +czM +bsN bHG cFf bJc @@ -104358,15 +104030,15 @@ bqC bdu bXt bqs -brF -bsP +cnk +cnk cnk csi cvu cxf cxh ckD -bqq +csK cPx cFh bJe @@ -104614,19 +104286,19 @@ cjV bdu bdu bXu -bqq -brH -bsQ -col +bsZ +bim +bim +bim bul cws cxg czM bBs -bCY +csK bHI cFf -bJc +btp bJN cHO bKz @@ -104871,15 +104543,15 @@ cgB bTv bcT bQE -bqq -bqq -bqq -com -bqq -cws -byD +bsZ +bim +bim +bim +bul +brH +brJ +czP czP -cxf czW cAc cFi @@ -105128,16 +104800,16 @@ cgB bYW bcT bQE -bqq -cox -cNV -cpI +bsZ +bim +bim +bim csK cKi cvR cPP -bts -bCY +bsL +bul bHJ bIt bJf @@ -105385,16 +105057,16 @@ cgB bbh bbh bQE -bqq -brJ -bsU -crg -bqq +bsZ +bim +bim +bim +csK cyN -bqq +csK bzJ czv -bqq +csK bHK bIu bJh @@ -105642,11 +105314,11 @@ cgB bbh bpm bQE -bqq -brK -bua -btv -bqq +bsZ +bim +bim +bim +bsZ cyO byN bzK @@ -105899,11 +105571,11 @@ cmn bWZ bXj bXv -bqq -bqq -bqq -bqq -bqq +bsZ +bsZ +bsZ +bsZ +bsZ cyP byQ bzS diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm index b7c159b29f..2c0ee99d77 100644 --- a/_maps/map_files/Snaxi/Snaxi.dmm +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -4558,7 +4558,6 @@ department = "Mining"; pixel_x = -30 }, -/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, /area/quartermaster/miningdock) "bzj" = ( @@ -10026,6 +10025,7 @@ pixel_x = 32 }, /obj/effect/turf_decal/tile/brown, +/obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, /area/quartermaster/storage) "dDf" = ( @@ -14580,6 +14580,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/medical/genetics) "goM" = ( @@ -26013,13 +26017,6 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) -"nhO" = ( -/obj/machinery/airalarm/server{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) "nij" = ( /obj/machinery/light{ dir = 1 @@ -27181,7 +27178,6 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/structure/closet/crate/bin, /turf/open/floor/plasteel/white, /area/medical/genetics) "nSf" = ( @@ -28206,7 +28202,9 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 23 + }, /turf/open/floor/plasteel/white, /area/medical/genetics) "ouE" = ( @@ -56146,7 +56144,7 @@ won evJ fsQ mxo -nhO +pTw apJ apJ apJ diff --git a/_maps/shuttles/whiteship_cog.dmm b/_maps/shuttles/whiteship_cog.dmm index 9410682219..9e4463df6b 100644 --- a/_maps/shuttles/whiteship_cog.dmm +++ b/_maps/shuttles/whiteship_cog.dmm @@ -32,11 +32,6 @@ "g" = ( /turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned) -"h" = ( -/obj/machinery/door/airlock/external, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/shuttle/abandoned) "i" = ( /obj/machinery/suit_storage_unit/security, /obj/machinery/light/small{ @@ -64,6 +59,7 @@ /area/shuttle/abandoned) "m" = ( /obj/structure/bed, +/obj/item/bedsheet/orange, /turf/open/floor/plasteel, /area/shuttle/abandoned) "n" = ( @@ -130,7 +126,6 @@ /area/shuttle/abandoned) "x" = ( /obj/machinery/door/firedoor/border_only/closed{ - icon_state = "door_closed"; dir = 4 }, /obj/machinery/door/window/eastright, @@ -174,12 +169,12 @@ dir = 8 }, /obj/structure/closet/crate/secure/weapon, -/obj/item/gun/energy/laser/carbine, /obj/machinery/button/flasher{ id = "cogws"; pixel_x = -24; pixel_y = 8 }, +/obj/item/gun/energy/laser/retro, /turf/open/floor/plasteel, /area/shuttle/abandoned) "D" = ( @@ -191,7 +186,7 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/item/gun/energy/e_gun/stun, +/obj/item/gun/energy/laser/retro, /turf/open/floor/plasteel, /area/shuttle/abandoned) "E" = ( @@ -228,12 +223,14 @@ "I" = ( /obj/structure/table/reinforced, /obj/item/clothing/glasses/sunglasses, +/obj/item/gps{ + gpstag = "NTPRS" + }, /turf/open/floor/plasteel/grimy, /area/shuttle/abandoned) "J" = ( /obj/structure/curtain, /obj/machinery/shower{ - name = "shower"; pixel_y = 12 }, /obj/item/soap/nanotrasen, @@ -329,13 +326,13 @@ d "} (5,1,1) = {" d -h +g n n B H n -h +g d "} (6,1,1) = {" diff --git a/code/__DEFINES/_flags/_flags.dm b/code/__DEFINES/_flags/_flags.dm index b1324000b8..7daf9fa8a3 100644 --- a/code/__DEFINES/_flags/_flags.dm +++ b/code/__DEFINES/_flags/_flags.dm @@ -145,4 +145,19 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 /// If the thing can reflect light (lasers/energy) #define RICOCHET_SHINY (1<<0) /// If the thing can reflect matter (bullets/bomb shrapnel) -#define RICOCHET_HARD (1<<1) \ No newline at end of file +#define RICOCHET_HARD (1<<1) + +#define KEEP_TOGETHER_ORIGINAL "keep_together_original" + +//setter for KEEP_TOGETHER to allow for multiple sources to set and unset it +#define ADD_KEEP_TOGETHER(x, source)\ + if ((x.appearance_flags & KEEP_TOGETHER) && !HAS_TRAIT(x, TRAIT_KEEP_TOGETHER)) ADD_TRAIT(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL); \ + ADD_TRAIT(x, TRAIT_KEEP_TOGETHER, source);\ + x.appearance_flags |= KEEP_TOGETHER + +#define REMOVE_KEEP_TOGETHER(x, source)\ + REMOVE_TRAIT(x, TRAIT_KEEP_TOGETHER, source);\ + if(HAS_TRAIT_FROM_ONLY(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL))\ + REMOVE_TRAIT(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL);\ + else if(!HAS_TRAIT(x, TRAIT_KEEP_TOGETHER))\ + x.appearance_flags &= ~KEEP_TOGETHER diff --git a/code/__DEFINES/_flags/item_flags.dm b/code/__DEFINES/_flags/item_flags.dm index c6a3886ed3..b3b65bcf59 100644 --- a/code/__DEFINES/_flags/item_flags.dm +++ b/code/__DEFINES/_flags/item_flags.dm @@ -52,3 +52,4 @@ #define ORGAN_VITAL (1<<4) //Currently only the brain #define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances #define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment. +#define ORGAN_EDIBLE (1<<5) //is a snack? :D \ No newline at end of file diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 94822f06e6..86b518234b 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -35,6 +35,7 @@ #define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params) #define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called #define COMSIG_ATOM_HULK_ATTACK "hulk_attack" //from base of atom/attack_hulk(): (/mob/living/carbon/human) +#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal" //from base of atom/animal_attack(): (/mob/user) #define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob, list/examine_return_text) #define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" //from base of atom/get_examine_name(): (/mob, list/overrides) //Positions for overrides list @@ -140,10 +141,10 @@ #define HEARING_SPEAKER 2 // #define HEARING_LANGUAGE 3 #define HEARING_RAW_MESSAGE 4 - /* #define HEARING_RADIO_FREQ 5 - #define HEARING_SPANS 6 +// #define HEARING_RADIO_FREQ 5 +// #define HEARING_SPANS 6 #define HEARING_MESSAGE_MODE 7 - #define HEARING_SOURCE 8*/ +// #define HEARING_SOURCE 8 #define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) #define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination) @@ -256,6 +257,9 @@ #define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled) #define COMSIG_OBJ_BREAK "obj_break" //from base of /obj/obj_break(): (damage_flag) #define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value) +#define COMSIG_OBJ_ATTACK_GENERIC "obj_attack_generic" //from base of atom/animal_attack(): (/mob/user) + #define COMPONENT_STOP_GENERIC_ATTACK 1 + // /machinery signals #define COMSIG_MACHINE_EJECT_OCCUPANT "eject_occupant" //from base of obj/machinery/dropContents() (occupant) @@ -287,6 +291,7 @@ #define COMPONENT_BLOCK_SHARPEN_BLOCKED 2 #define COMPONENT_BLOCK_SHARPEN_ALREADY 4 #define COMPONENT_BLOCK_SHARPEN_MAXED 8 +#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" //called on item when microwaved (): (obj/machinery/microwave/M) #define COMSIG_ITEM_WORN_OVERLAYS "item_worn_overlays" //from base of obj/item/worn_overlays(): (isinhands, icon_file, used_state, style_flags, list/overlays) // THE FOLLOWING TWO BLOCKS SHOULD RETURN BLOCK FLAGS AS DEFINED IN __DEFINES/combat.dm! #define COMSIG_ITEM_CHECK_BLOCK "check_block" //from base of obj/item/check_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index a347fd7327..77e8d82aca 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -18,4 +18,8 @@ #define DRINK_VERYGOOD 3 #define DRINK_FANTASTIC 4 #define FOOD_AMAZING 5 -#define RACE_DRINK 6 \ No newline at end of file +#define RACE_DRINK 6 + +#define FOOD_IN_CONTAINER (1<<0) + +#define STOP_SERVING_BREAKFAST (15 MINUTES) diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index 5acda2274c..2dd66b9833 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -6,6 +6,7 @@ #define FOOTSTEP_GRASS "grass" #define FOOTSTEP_WATER "water" #define FOOTSTEP_LAVA "lava" +#define FOOTSTEP_MEAT "meat" //barefoot sounds #define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" #define FOOTSTEP_WOOD_CLAW "woodclaw" @@ -89,6 +90,8 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) //bare footsteps lists @@ -131,6 +134,8 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) //claw footsteps lists @@ -173,6 +178,8 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) //heavy footsteps list @@ -189,4 +196,6 @@ GLOBAL_LIST_INIT(heavyfootstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index de9ada7560..90c7c34f8d 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -135,6 +135,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define iscat(A) (istype(A, /mob/living/simple_animal/pet/cat)) +#define isdog(A) (istype(A, /mob/living/simple_animal/pet/dog)) + #define iscorgi(A) (istype(A, /mob/living/simple_animal/pet/dog/corgi)) #define ishostile(A) (istype(A, /mob/living/simple_animal/hostile)) diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm index e2ae22345f..72e827a7c8 100644 --- a/code/__DEFINES/materials.dm +++ b/code/__DEFINES/materials.dm @@ -4,8 +4,12 @@ /// Hard materials, such as iron or metal #define MAT_CATEGORY_RIGID "rigid material" +///Use this flag on TRUE if you want the basic recipes +#define MAT_CATEGORY_BASE_RECIPES "basic recipes" + /// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes. #define MATERIAL_COLOR (1<<0) #define MATERIAL_ADD_PREFIX (1<<1) -#define MATERIAL_EFFECTS (1<<2) -#define MATERIAL_AFFECT_STATISTICS (1<<3) \ No newline at end of file +#define MATERIAL_AFFECT_STATISTICS (1<<2) + +#define MATERIAL_SOURCE(mat) "[mat.name]_material" \ No newline at end of file diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 34bd7a5b23..2ec21c83b3 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -432,6 +432,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S //text files #define BRAIN_DAMAGE_FILE "traumas.json" #define ION_FILE "ion_laws.json" +#define REDPILL_FILE "redpill.json" #define PIRATE_NAMES_FILE "pirates.json" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 8d8b9f47ae..fa7758be1f 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -98,6 +98,7 @@ #define BRAIN_TRAUMA_MILD /datum/brain_trauma/mild #define BRAIN_TRAUMA_SEVERE /datum/brain_trauma/severe #define BRAIN_TRAUMA_SPECIAL /datum/brain_trauma/special +#define BRAIN_TRAUMA_MAGIC /datum/brain_trauma/magic #define TRAUMA_RESILIENCE_BASIC 1 //Curable with chems #define TRAUMA_RESILIENCE_SURGERY 2 //Curable with brain surgery diff --git a/code/__DEFINES/mobs/slowdowns.dm b/code/__DEFINES/mobs/slowdowns.dm index 2d858e9509..4d9b4a0259 100644 --- a/code/__DEFINES/mobs/slowdowns.dm +++ b/code/__DEFINES/mobs/slowdowns.dm @@ -3,7 +3,7 @@ /// How much someone is slowed from fireman carrying a human #define FIREMAN_CARRY_SLOWDOWN 0 /// How much someone is slowed by piggybacking a human -#define PIGGYBACK_CARRY_SLOWDOWN 1 +#define PIGGYBACK_CARRY_SLOWDOWN 0 /// slowdown when in softcrit. Note that crawling slowdown will also apply at the same time! #define SOFTCRIT_ADD_SLOWDOWN 2 /// slowdown when crawling diff --git a/code/__DEFINES/skills/defines.dm b/code/__DEFINES/skills/defines.dm index 659c0fe11b..60d2321927 100644 --- a/code/__DEFINES/skills/defines.dm +++ b/code/__DEFINES/skills/defines.dm @@ -100,4 +100,10 @@ ///Ascending priority defines. #define MODIFIER_SKILL_PRIORITY_LOW 100 #define MODIFIER_SKILL_PRIORITY_DEF 50 -#define MODIFIER_SKILL_PRIORITY_MAX 1 //max priority, meant for job/antag modifiers so they don't null out other (de)buffs \ No newline at end of file +#define MODIFIER_SKILL_PRIORITY_MAX 1 //max priority, meant for job/antag modifiers so they don't null out other (de)buffs + +// UI Defines +///Categories of skills, these will be displayed alphabetically. +#define SKILL_UI_CAT_ENG "Engineering" +#define SKILL_UI_CAT_MED "Medical" +#define SKILL_UI_CAT_MISC "Misc" diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 3977b3c085..eb86c52301 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -61,6 +61,12 @@ } while (0) #define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE) #define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE) +#define HAS_TRAIT_FROM_ONLY(target, trait, source) (\ + target.status_traits ?\ + (target.status_traits[trait] ?\ + ((source in target.status_traits[trait]) && (length(target.status_traits) == 1))\ + : FALSE)\ + : FALSE) #define HAS_TRAIT_NOT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (length(target.status_traits[trait] - source) > 0) : FALSE) : FALSE) //mob traits @@ -226,6 +232,8 @@ #define VEHICLE_TRAIT "vehicle" // inherited from riding vehicles #define INNATE_TRAIT "innate" +///Used for managing KEEP_TOGETHER in [appearance_flags] +#define TRAIT_KEEP_TOGETHER "keep-together" // item traits #define TRAIT_NODROP "nodrop" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index ba29205452..719735392d 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -69,7 +69,7 @@ /proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/total = input.len if (!total) - return "[nothing_text]" + return nothing_text else if (total == 1) return "[input[1]]" else if (total == 2) diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 5fb4d05d42..dce4d554b7 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -120,3 +120,8 @@ GLOBAL_VAR_INIT(cmp_field, "name") /proc/cmp_item_block_priority_asc(obj/item/A, obj/item/B) return A.block_priority - B.block_priority + +/proc/cmp_skill_categories(datum/skill/A, datum/skill/B) + if(A.ui_category == B.ui_category) + return sorttext(A.name, B.name) + return sorttext(A.ui_category, B.ui_category) diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index 7c6c186bca..8b4f8d5b54 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -3,7 +3,7 @@ for(var/file in args) src << browse_rsc(file) -/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html", "md")) +/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html", "md", "json")) var/path = root for(var/i=0, i

The round has ended.") if(LAZYLEN(GLOB.round_end_notifiees)) - send2irc("Notice", "[GLOB.round_end_notifiees.Join(", ")] the round has ended.") + world.TgsTargetedChatBroadcast("[GLOB.round_end_notifiees.Join(", ")] the round has ended.", FALSE) for(var/I in round_end_events) var/datum/callback/cb = I @@ -233,6 +233,7 @@ for(var/antag_name in total_antagonists) var/list/L = total_antagonists[antag_name] log_game("[antag_name]s :[L.Join(", ")].") + set_observer_default_invisibility(0, "The round is over! You are now visible to the living.") CHECK_TICK SSdbcore.SetRoundEnd() diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 598fde2bc3..4c912b9c1e 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -224,5 +224,10 @@ GLOBAL_LIST_INIT(admiral_messages, list("Do you know how expensive these station GLOBAL_LIST_INIT(redacted_strings, list("\[REDACTED\]", "\[CLASSIFIED\]", "\[ARCHIVED\]", "\[EXPLETIVE DELETED\]", "\[EXPUNGED\]", "\[INFORMATION ABOVE YOUR SECURITY CLEARANCE\]", "\[MOVE ALONG CITIZEN\]", "\[NOTHING TO SEE HERE\]", "\[ACCESS DENIED\]")) - GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt")) + +GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "declares", "bellows", "buzzes" ,"beeps", "chirps" ,"hisses" ,"poofs" ,"rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters")) + +GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc)) + + diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index d4ec44a641..059f9d518e 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -108,7 +108,7 @@ A.attack_animal(src) /atom/proc/attack_animal(mob/user) - return + SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_ANIMAL, user) /mob/living/RestrainedClickOn(atom/A) return diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 8f34901d46..31431ddab9 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -104,7 +104,9 @@ var/list/lines = world.file2list("[directory]/[filename]") var/list/_entries = entries var/list/postload_required = list() + var/linenumber = 0 for(var/L in lines) + linenumber++ L = trim(L) if(!L) continue @@ -132,7 +134,7 @@ if(entry == "$include") if(!value) - log_config("Warning: Invalid $include directive: [value]") + log_config("LINE [linenumber]: Invalid $include directive: [value]") else LoadEntries(value, stack) ++. @@ -140,7 +142,7 @@ var/datum/config_entry/E = _entries[entry] if(!E) - log_config("Unknown setting in configuration: '[entry]'") + log_config("LINE [linenumber]: Unknown setting: '[entry]'") continue if(lockthis) @@ -150,7 +152,7 @@ var/datum/config_entry/new_ver = entries_by_type[E.deprecated_by] var/new_value = E.DeprecationUpdate(value) var/good_update = istext(new_value) - log_config("Entry [entry] is deprecated and will be removed soon. Migrate to [new_ver.name]![good_update ? " Suggested new value is: [new_value]" : ""]") + log_config("LINE [linenumber]: [entry] is deprecated and will be removed soon. Migrate to [new_ver.name]![good_update ? " Suggested new value is: [new_value]" : ""]") if(!warned_deprecated_configs) addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, "This server is using deprecated configuration settings. Please check the logs and update accordingly."), 0) warned_deprecated_configs = TRUE @@ -162,10 +164,10 @@ var/validated = E.ValidateAndSet(value, TRUE) if(!validated) - log_config("Failed to validate setting \"[value]\" for [entry]") + log_config("LINE [linenumber]: Failed to validate setting \"[value]\" for [entry]") else if(E.modified && !E.dupes_allowed) - log_config("Duplicate setting for [entry] ([value], [E.resident_file]) detected! Using latest.") + log_config("LINE [linenumber]: Duplicate setting for [entry] ([value], [E.resident_file]) detected! Using latest.") if(E.postload_required) postload_required[E] = TRUE diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 435a35c05e..5765f291e9 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -168,12 +168,14 @@ /datum/config_entry/flag/join_with_mutant_humans //players can pick mutant bodyparts for humans before joining the game -/datum/config_entry/flag/no_summon_guns //No +/datum/config_entry/flag/no_summon_guns //No /datum/config_entry/flag/no_summon_magic //Fun /datum/config_entry/flag/no_summon_events //Allowed +/datum/config_entry/flag/no_summon_traumas //! + /datum/config_entry/flag/no_intercept_report //Whether or not to send a communications intercept report roundstart. This may be overridden by gamemodes. /datum/config_entry/number/arrivals_shuttle_dock_window //Time from when a player late joins on the arrivals shuttle to when the shuttle docks on the station diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index abc46cba25..2e4e728191 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -12,7 +12,7 @@ SUBSYSTEM_DEF(events) var/frequency_upper = 6000 //10 minutes upper bound. Basically an event will happen every 3 to 10 minutes. var/list/holidays //List of all holidays occuring today or null if no holidays - var/wizardmode = 0 + var/wizardmode = FALSE /datum/controller/subsystem/events/Initialize(time, zlevel) for(var/type in typesof(/datum/round_event_control)) @@ -91,6 +91,7 @@ SUBSYSTEM_DEF(events) if(. == EVENT_CANT_RUN)//we couldn't run this event for some reason, set its max_occurrences to 0 E.max_occurrences = 0 else if(. == EVENT_READY) + E.random = TRUE E.runEvent(TRUE) //allows a client to trigger an event diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 7c51ba4506..32936af9e9 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -64,19 +64,33 @@ SUBSYSTEM_DEF(input) // Misc macroset_classic_input["Tab"] = "\".winset \\\"mainwindow.macro=[SKIN_MACROSET_CLASSIC_HOTKEYS] map.focus=true input.background-color=[COLOR_INPUT_DISABLED]\\\"\"" macroset_classic_input["Escape"] = "\".winset \\\"input.text=\\\"\\\"\\\"\"" - + // FINALLY, WE CAN DO SOMETHING MORE NORMAL FOR THE SNOWFLAKE-BUT-LESS KEYSET. + + // HAHA - SIKE. Because of BYOND weirdness (tl;dr not specifically binding this way results in potentially duplicate chatboxes when + // conflicts occur with something like say indicator vs say), we're going to snowflake this anyways + var/list/hard_binds = list( + "O" = "ooc", + "T" = "say", + "L" = "looc", + "M" = "me" + ) + var/list/hard_bind_anti_collision = list() + var/list/anti_collision_modifiers = list("Ctrl", "Alt", "Shift", "Ctrl+Alt", "Ctrl+Shift", "Alt+Shift", "Ctrl+Alt+Shift") + for(var/key in hard_binds) + for(var/modifier in anti_collision_modifiers) + hard_bind_anti_collision["[modifier]+[key]"] = ".NONSENSICAL_VERB_THAT_DOES_NOTHING" + macroset_classic_hotkey = list( "Any" = "\"KeyDown \[\[*\]\]\"", "Any+UP" = "\"KeyUp \[\[*\]\]\"", "Tab" = "\".winset \\\"mainwindow.macro=[SKIN_MACROSET_CLASSIC_INPUT] input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "Escape" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", - "O" = "ooc", - "T" = "say", - "L" = "looc", - "M" = "me" ) + + macroset_classic_hotkey |= hard_binds + macroset_classic_hotkey |= hard_bind_anti_collision // And finally, the modern set. macroset_hotkey = list( @@ -85,11 +99,10 @@ SUBSYSTEM_DEF(input) "Tab" = "\".winset \\\"input.focus=true?map.focus=true input.background-color=[COLOR_INPUT_DISABLED]:input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", "Escape" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", - "O" = "ooc", - "T" = "say", - "L" = "looc", - "M" = "me" ) + + macroset_hotkey |= hard_binds + macroset_hotkey |= hard_bind_anti_collision // Badmins just wanna have fun ♪ /datum/controller/subsystem/input/proc/refresh_client_macro_sets() @@ -104,3 +117,8 @@ SUBSYSTEM_DEF(input) for(var/i in 1 to clients.len) var/client/C = clients[i] C.keyLoop() + +/// *sigh +/client/verb/NONSENSICAL_VERB_THAT_DOES_NOTHING() + set name = ".NONSENSICAL_VERB_THAT_DOES_NOTHING" + set hidden = TRUE diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm index 96d733e8da..23d5a7a2b7 100644 --- a/code/controllers/subsystem/materials.dm +++ b/code/controllers/subsystem/materials.dm @@ -10,24 +10,52 @@ SUBSYSTEM_DEF(materials) var/list/materials ///Dictionary of category || list of material refs var/list/materials_by_category + ///Dictionary of category || list of material types, mostly used by rnd machines like autolathes. + var/list/materialtypes_by_category + ///A cache of all material combinations that have been used + var/list/list/material_combos ///List of stackcrafting recipes for materials using rigid materials var/list/rigid_stack_recipes = list( new /datum/stack_recipe("chair", /obj/structure/chair/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE), new /datum/stack_recipe("toilet", /obj/structure/toilet/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE), new /datum/stack_recipe("sink", /obj/structure/sink/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE), + new /datum/stack_recipe("Floor tile", /obj/item/stack/tile/material, 1, 4, 20, applies_mats = TRUE) ) ///Ran on initialize, populated the materials and materials_by_category dictionaries with their appropiate vars (See these variables for more info) /datum/controller/subsystem/materials/proc/InitializeMaterials() materials = list() materials_by_category = list() + materialtypes_by_category = list() + material_combos = list() for(var/type in subtypesof(/datum/material)) var/datum/material/ref = new type materials[type] = ref for(var/c in ref.categories) materials_by_category[c] += list(ref) + materialtypes_by_category[c] += list(type) /datum/controller/subsystem/materials/proc/GetMaterialRef(datum/material/fakemat) if(!materials) InitializeMaterials() - return materials[fakemat] || fakemat \ No newline at end of file + return materials[fakemat] || fakemat + + +///Returns a list to be used as an object's custom_materials. Lists will be cached and re-used based on the parameters. +/datum/controller/subsystem/materials/proc/FindOrCreateMaterialCombo(list/materials_declaration, multiplier) + if(!material_combos) + InitializeMaterials() + var/list/combo_params = list() + for(var/x in materials_declaration) + var/datum/material/mat = x + var/path_name = ispath(mat) ? "[mat]" : "[mat.type]" + combo_params += "[path_name]=[materials_declaration[mat] * multiplier]" + sortTim(combo_params, /proc/cmp_text_asc) // We have to sort now in case the declaration was not in order + var/combo_index = combo_params.Join("-") + var/list/combo = material_combos[combo_index] + if(!combo) + combo = list() + for(var/mat in materials_declaration) + combo[GetMaterialRef(mat)] = materials_declaration[mat] * multiplier + material_combos[combo_index] = combo + return combo diff --git a/code/datums/brain_damage/magic.dm b/code/datums/brain_damage/magic.dm index 249907a1b8..ff04ceead9 100644 --- a/code/datums/brain_damage/magic.dm +++ b/code/datums/brain_damage/magic.dm @@ -5,6 +5,61 @@ /datum/brain_trauma/magic resilience = TRAUMA_RESILIENCE_LOBOTOMY +/datum/brain_trauma/magic/lumiphobia + name = "Lumiphobia" + desc = "Patient has an inexplicable adverse reaction to light." + scan_desc = "light hypersensitivity" + gain_text = "You feel a craving for darkness." + lose_text = "Light no longer bothers you." + var/next_damage_warning = 0 + +/datum/brain_trauma/magic/lumiphobia/on_life() + ..() + var/turf/T = owner.loc + if(istype(T)) + var/light_amount = T.get_lumcount() + if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD) //if there's enough light, start dying + if(world.time > next_damage_warning) + to_chat(owner, "The light burns you!") + next_damage_warning = world.time + 100 //Avoid spamming + owner.take_overall_damage(0,3) + +/datum/brain_trauma/magic/poltergeist + name = "Poltergeist" + desc = "Patient appears to be targeted by a violent invisible entity." + scan_desc = "paranormal activity" + gain_text = "You feel a hateful presence close to you." + lose_text = "You feel the hateful presence fade away." + +/datum/brain_trauma/magic/poltergeist/on_life() + ..() + if(prob(4)) + var/most_violent = -1 //So it can pick up items with 0 throwforce if there's nothing else + var/obj/item/throwing + for(var/obj/item/I in view(5, get_turf(owner))) + if(I.anchored) + continue + if(I.throwforce > most_violent) + most_violent = I.throwforce + throwing = I + if(throwing) + throwing.throw_at(owner, 8, 2) + +/datum/brain_trauma/magic/antimagic + name = "Athaumasia" + desc = "Patient is completely inert to magical forces." + scan_desc = "thaumic blank" + gain_text = "You realize that magic cannot be real." + lose_text = "You realize that magic might be real." + +/datum/brain_trauma/magic/antimagic/on_gain() + ADD_TRAIT(owner, TRAIT_ANTIMAGIC, TRAUMA_TRAIT) + ..() + +/datum/brain_trauma/magic/antimagic/on_lose() + REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, TRAUMA_TRAIT) + ..() + /datum/brain_trauma/magic/stalker name = "Stalking Phantom" desc = "Patient is stalked by a phantom only they can see." diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index cd8612fd19..3ba00d305b 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -119,8 +119,9 @@ /datum/brain_trauma/severe/paralysis/spinesnapped random_gain = FALSE + clonable = FALSE paralysis_type = "legs" - resilience = TRAUMA_RESILIENCE_LOBOTOMY + resilience = TRAUMA_RESILIENCE_LOBOTOMY // It shouldn't fix severed spinal cords really, but there is no specific surgery for that yet. /datum/brain_trauma/severe/narcolepsy name = "Narcolepsy" diff --git a/code/datums/components/crafting/glassware/lens_crafting.dm b/code/datums/components/crafting/glassware/lens_crafting.dm index 117df25a30..98fa242058 100644 --- a/code/datums/components/crafting/glassware/lens_crafting.dm +++ b/code/datums/components/crafting/glassware/lens_crafting.dm @@ -92,7 +92,7 @@ qdel(src) /obj/item/glasswork/glasses - name = "Hand Made Glasses" - desc = "Hande made glasses that have not been polished at all making them useless. Selling them could still be worth a bit of credits." + name = "Handmade Glasses" + desc = "Handmade glasses that have not been polished at all making them useless. Selling them could still be worth a few credits." icon = 'icons/obj/glass_ware.dmi' icon_state = "frames_2" \ No newline at end of file diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 0f35d5c3c6..86d1e77661 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -92,7 +92,7 @@ time = 150 subcategory = CAT_MISCELLANEOUS category = CAT_MISC - always_availible = FALSE // Disabled til learned + always_availible = FALSE // Disabled until learned /datum/crafting_recipe/bloodsucker/candelabrum diff --git a/code/datums/components/edible.dm b/code/datums/components/edible.dm new file mode 100644 index 0000000000..47e60a1ee1 --- /dev/null +++ b/code/datums/components/edible.dm @@ -0,0 +1,244 @@ +/*! +This component makes it possible to make things edible. What this means is that you can take a bite or force someone to take a bite (in the case of items). +These items take a specific time to eat, and can do most of the things our original food items could. +Behavior that's still missing from this component that original food items had that should either be put into seperate components or somewhere else: + Components: + Drying component (jerky etc) + Customizable component (custom pizzas etc) + Processable component (Slicing and cooking behavior essentialy, making it go from item A to B when conditions are met.) + Dunkable component (Dunking things into reagent containers to absorb a specific amount of reagents) + Misc: + Something for cakes (You can store things inside) +*/ +/datum/component/edible + ///Amount of reagents taken per bite + var/bite_consumption = 2 + ///Amount of bites taken so far + var/bitecount = 0 + ///Flags for food + var/food_flags = NONE + ///Bitfield of the types of this food + var/foodtypes = NONE + ///Amount of seconds it takes to eat this food + var/eat_time = 30 + ///Defines how much it lowers someones satiety (Need to eat, essentialy) + var/junkiness = 0 + ///Message to send when eating + var/list/eatverbs + ///Callback to be ran for when you take a bite of something + var/datum/callback/after_eat + ///Last time we checked for food likes + var/last_check_time + +/datum/component/edible/Initialize(list/initial_reagents, food_flags = NONE, foodtypes = NONE, volume = 50, eat_time = 30, list/tastes, list/eatverbs = list("bite","chew","nibble","gnaw","gobble","chomp"), bite_consumption = 2, datum/callback/after_eat) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, .proc/UseByAnimal) + if(isitem(parent)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/UseFromHand) + else if(isturf(parent)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/TryToEatTurf) + + src.bite_consumption = bite_consumption + src.food_flags = food_flags + src.foodtypes = foodtypes + src.eat_time = eat_time + src.eatverbs = eatverbs + src.junkiness = junkiness + src.after_eat = after_eat + + var/atom/owner = parent + + owner.create_reagents(volume, INJECTABLE) + + if(initial_reagents) + for(var/rid in initial_reagents) + var/amount = initial_reagents[rid] + if(tastes && tastes.len && (rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin)) + owner.reagents.add_reagent(rid, amount, tastes.Copy()) + else + owner.reagents.add_reagent(rid, amount) + +/datum/component/edible/proc/examine(datum/source, mob/user, list/examine_list) + if(!(food_flags & FOOD_IN_CONTAINER)) + switch (bitecount) + if (0) + return + if(1) + examine_list += "[parent] was bitten by someone!" + if(2,3) + examine_list += "[parent] was bitten [bitecount] times!" + else + examine_list += "[parent] was bitten multiple times!" + +/datum/component/edible/proc/UseFromHand(obj/item/source, mob/living/M, mob/living/user) + return TryToEat(M, user) + +/datum/component/edible/proc/TryToEatTurf(datum/source, mob/user) + return TryToEat(user, user) + +///All the checks for the act of eating itself and +/datum/component/edible/proc/TryToEat(mob/living/eater, mob/living/feeder) + + set waitfor = FALSE + + var/atom/owner = parent + + if(feeder.a_intent == INTENT_HARM) + return + if(!owner.reagents.total_volume)//Shouldn't be needed but it checks to see if it has anything left in it. + to_chat(feeder, "None of [owner] left, oh no!") + if(isturf(parent)) + var/turf/T = parent + T.ScrapeAway(1, CHANGETURF_INHERIT_AIR) + else + qdel(parent) + return + if(!CanConsume(eater, feeder)) + return + var/fullness = eater.nutrition + 10 //The theoretical fullness of the person eating if they were to eat this + for(var/datum/reagent/consumable/C in eater.reagents.reagent_list) //we add the nutrition value of what we're currently digesting + fullness += C.nutriment_factor * C.volume / C.metabolization_rate + + . = COMPONENT_ITEM_NO_ATTACK //Point of no return I suppose + + if(eater == feeder)//If you're eating it yourself. + if(!do_mob(feeder, eater, eat_time)) //Gotta pass the minimal eat time + return + var/eatverb = pick(eatverbs) + if(junkiness && eater.satiety < -150 && eater.nutrition > NUTRITION_LEVEL_STARVING + 50 && !HAS_TRAIT(eater, TRAIT_VORACIOUS)) + to_chat(eater, "You don't feel like eating any more junk food at the moment!") + return + else if(fullness <= 50) + eater.visible_message("[eater] hungrily [eatverb]s \the [parent], gobbling it down!", "You hungrily [eatverb] \the [parent], gobbling it down!") + else if(fullness > 50 && fullness < 150) + eater.visible_message("[eater] hungrily [eatverb]s \the [parent].", "You hungrily [eatverb] \the [parent].") + else if(fullness > 150 && fullness < 500) + eater.visible_message("[eater] [eatverb]s \the [parent].", "You [eatverb] \the [parent].") + else if(fullness > 500 && fullness < 600) + eater.visible_message("[eater] unwillingly [eatverb]s a bit of \the [parent].", "You unwillingly [eatverb] a bit of \the [parent].") + else if(fullness > (600 * (1 + eater.overeatduration / 2000))) // The more you eat - the more you can eat + eater.visible_message("[eater] cannot force any more of \the [parent] to go down [eater.p_their()] throat!", "You cannot force any more of \the [parent] to go down your throat!") + return + else //If you're feeding it to someone else. + if(isbrain(eater)) + to_chat(feeder, "[eater] doesn't seem to have a mouth!") + return + if(fullness <= (600 * (1 + eater.overeatduration / 1000))) + eater.visible_message("[feeder] attempts to feed [eater] [parent].", \ + "[feeder] attempts to feed you [parent].") + else + eater.visible_message("[feeder] cannot force any more of [parent] down [eater]'s throat!", \ + "[feeder] cannot force any more of [parent] down your throat!") + return + if(!do_mob(feeder, eater)) //Wait 3 seconds before you can feed + return + + log_combat(feeder, eater, "fed", owner.reagents.log_list()) + eater.visible_message("[feeder] forces [eater] to eat [parent]!", \ + "[feeder] forces you to eat [parent]!") + + TakeBite(eater, feeder) + +///This function lets the eater take a bite and transfers the reagents to the eater. +/datum/component/edible/proc/TakeBite(mob/living/eater, mob/living/feeder) + + var/atom/owner = parent + + if(!owner?.reagents) + return FALSE + if(eater.satiety > -200) + eater.satiety -= junkiness + playsound(eater.loc,'sound/items/eatfood.ogg', rand(10,50), TRUE) + if(owner.reagents.total_volume) + SEND_SIGNAL(parent, COMSIG_FOOD_EATEN, eater, feeder) + var/fraction = min(bite_consumption / owner.reagents.total_volume, 1) + owner.reagents.reaction(eater, INGEST, fraction) + owner.reagents.trans_to(eater, bite_consumption) + bitecount++ + On_Consume(eater) + checkLiked(fraction, eater) + + //Invoke our after eat callback if it is valid + if(after_eat) + after_eat.Invoke(eater, feeder) + + return TRUE + +///Checks whether or not the eater can actually consume the food +/datum/component/edible/proc/CanConsume(mob/living/eater, mob/living/feeder) + if(!iscarbon(eater)) + return FALSE + var/mob/living/carbon/C = eater + var/covered = "" + if(C.is_mouth_covered(head_only = 1)) + covered = "headgear" + else if(C.is_mouth_covered(mask_only = 1)) + covered = "mask" + if(covered) + var/who = (isnull(feeder) || eater == feeder) ? "your" : "[eater.p_their()]" + to_chat(feeder, "You have to remove [who] [covered] first!") + return FALSE + return TRUE + +///Check foodtypes to see if we should send a moodlet +/datum/component/edible/proc/checkLiked(var/fraction, mob/M) + if(last_check_time + 50 > world.time) + return FALSE + if(!ishuman(M)) + return FALSE + var/mob/living/carbon/human/H = M + if(HAS_TRAIT(H, TRAIT_AGEUSIA) && foodtypes & H.dna.species.toxic_food) + to_chat(H, "You don't feel so good...") + H.adjust_disgust(25 + 30 * fraction) + else + if(foodtypes & H.dna.species.toxic_food) + to_chat(H,"What the hell was that thing?!") + H.adjust_disgust(25 + 30 * fraction) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "toxic_food", /datum/mood_event/disgusting_food) + else if(foodtypes & H.dna.species.disliked_food) + to_chat(H,"That didn't taste very good...") + H.adjust_disgust(11 + 15 * fraction) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "gross_food", /datum/mood_event/gross_food) + else if(foodtypes & H.dna.species.liked_food) + to_chat(H,"I love this taste!") + H.adjust_disgust(-5 + -2.5 * fraction) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "fav_food", /datum/mood_event/favorite_food) + if((foodtypes & BREAKFAST) && world.time - SSticker.round_start_time < STOP_SERVING_BREAKFAST) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "breakfast", /datum/mood_event/breakfast) + last_check_time = world.time + +///Delete the item when it is fully eaten +/datum/component/edible/proc/On_Consume(mob/living/eater) + + var/atom/owner = parent + + if(!eater) + return + if(!owner.reagents.total_volume) + if(isturf(parent)) + var/turf/T = parent + T.ScrapeAway(1, CHANGETURF_INHERIT_AIR) + else + qdel(parent) + +///Ability to feed food to puppers +/datum/component/edible/proc/UseByAnimal(datum/source, mob/user) + + var/atom/owner = parent + + if(!isdog(user)) + return + var/mob/living/L = user + if(bitecount == 0 || prob(50)) + L.emote("me", 1, "nibbles away at \the [parent]") + bitecount++ + . = COMPONENT_ITEM_NO_ATTACK + L.taste(owner.reagents) // why should carbons get all the fun? + if(bitecount >= 5) + var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [parent] was") + if(sattisfaction_text) + L.emote("me", 1, "[sattisfaction_text]") + qdel(parent) diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index decc2dd65c..f12e8bf007 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -69,8 +69,9 @@ out += "[out ? " and it " : "[master] "]seems to be glowing a bit." if(RAD_AMOUNT_HIGH to INFINITY) //At this level the object can contaminate other objects out += "[out ? " and it " : "[master] "]hurts to look at." - else - out += "." + if(!LAZYLEN(out)) + return + out += "." examine_list += out.Join() /datum/component/radioactive/proc/rad_attack(datum/source, atom/movable/target, mob/living/user) diff --git a/code/datums/components/spawner.dm b/code/datums/components/spawner.dm index fe86b60375..27bf4a5986 100644 --- a/code/datums/components/spawner.dm +++ b/code/datums/components/spawner.dm @@ -8,6 +8,8 @@ var/list/faction = list("mining") /datum/component/spawner/Initialize(_mob_types, _spawn_time, _faction, _spawn_text, _max_mobs) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE if(_spawn_time) spawn_time=_spawn_time if(_mob_types) @@ -19,20 +21,25 @@ if(_max_mobs) max_mobs=_max_mobs - RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), .proc/stop_spawning) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/stop_spawning) + RegisterSignal(parent, COMSIG_OBJ_ATTACK_GENERIC, .proc/on_attack_generic) START_PROCESSING(SSprocessing, src) /datum/component/spawner/process() try_spawn_mob() - -/datum/component/spawner/proc/stop_spawning(force, hint) +/datum/component/spawner/proc/stop_spawning(datum/source, force, hint) STOP_PROCESSING(SSprocessing, src) for(var/mob/living/simple_animal/L in spawned_mobs) if(L.nest == src) L.nest = null spawned_mobs = null +// Stopping clientless simple mobs' from indiscriminately bashing their own spawners due DestroySurroundings() et similars. +/datum/component/spawner/proc/on_attack_generic(datum/source, mob/user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) + if(!user.client && ((user.faction & faction) || (user in spawned_mobs))) + return COMPONENT_STOP_GENERIC_ATTACK + /datum/component/spawner/proc/try_spawn_mob() var/atom/P = parent if(spawned_mobs.len >= max_mobs) diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index d72dcbd362..e90eededd9 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -20,11 +20,11 @@ /datum/disease/transformation/Copy() var/datum/disease/transformation/D = ..() - D.stage1 = stage1.Copy() - D.stage2 = stage2.Copy() - D.stage3 = stage3.Copy() - D.stage4 = stage4.Copy() - D.stage5 = stage5.Copy() + D.stage1 = stage1?.Copy() + D.stage2 = stage2?.Copy() + D.stage3 = stage3?.Copy() + D.stage4 = stage4?.Copy() + D.stage5 = stage5?.Copy() D.new_form = D.new_form return D diff --git a/code/datums/elements/beauty.dm b/code/datums/elements/beauty.dm index 8acfda73e1..8895026967 100644 --- a/code/datums/elements/beauty.dm +++ b/code/datums/elements/beauty.dm @@ -8,8 +8,11 @@ if(. == ELEMENT_INCOMPATIBLE || !isatom(target) || isarea(target)) return ELEMENT_INCOMPATIBLE beauty = beautyamount - RegisterSignal(target, COMSIG_ENTER_AREA, .proc/enter_area) - RegisterSignal(target, COMSIG_EXIT_AREA, .proc/exit_area) + + if(ismovable(target)) + RegisterSignal(target, COMSIG_ENTER_AREA, .proc/enter_area) + RegisterSignal(target, COMSIG_EXIT_AREA, .proc/exit_area) + var/area/A = get_area(target) if(A) enter_area(null, A) diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index bafb6fbf0e..f110d5e8ed 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -23,10 +23,14 @@ var/end_sound var/chance var/volume = 100 + var/vary = FALSE var/max_loops var/direct + var/extra_range = 0 + var/falloff var/timerid + var/init_timerid /datum/looping_sound/New(list/_output_atoms=list(), start_immediately=FALSE, _direct=FALSE) if(!mid_sounds) @@ -47,13 +51,15 @@ /datum/looping_sound/proc/start(atom/add_thing) if(add_thing) output_atoms |= add_thing - if(timerid) + if(timerid || init_timerid) return on_start() /datum/looping_sound/proc/stop(atom/remove_thing) if(remove_thing) output_atoms -= remove_thing + if(init_timerid) + deltimer(init_timerid) if(!timerid) return on_stop() @@ -80,7 +86,7 @@ if(direct) SEND_SOUND(thing, S) else - playsound(thing, S, volume) + playsound(thing, S, volume, vary, extra_range, falloff) /datum/looping_sound/proc/get_sound(starttime, _mid_sounds) . = _mid_sounds || mid_sounds @@ -92,7 +98,7 @@ if(start_sound) play(start_sound) start_wait = start_length - addtimer(CALLBACK(src, .proc/sound_loop), start_wait, TIMER_CLIENT_TIME) + init_timerid = addtimer(CALLBACK(src, .proc/sound_loop), start_wait, TIMER_CLIENT_TIME | TIMER_STOPPABLE) /datum/looping_sound/proc/on_stop() if(end_sound) diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index 1a8ce755e1..5148aab4ac 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -6,8 +6,6 @@ Simple datum which is instanced once per type and is used for every object of sa /datum/material var/name = "material" var/desc = "its..stuff." - ///Var that's mostly used by science machines to identify specific materials, should most likely be phased out at some point - var/id = "mat" ///Base color of the material, is used for greyscale. Item isn't changed in color if this is null. var/color ///Base alpha of the material, is used for greyscale icons. @@ -26,6 +24,20 @@ Simple datum which is instanced once per type and is used for every object of sa var/armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1) ///How beautiful is this material per unit? var/beauty_modifier = 0 + ///Can be used to override the sound items make, lets add some SLOSHing. + var/item_sound_override + ///Can be used to override the stepsound a turf makes. MORE SLOOOSH + var/turf_sound_override + ///what texture icon state to overlay + var/texture_layer_icon_state + ///a cached filter for the texture icon + var/cached_texture_filter + +/datum/material/New() + . = ..() + if(texture_layer_icon_state) + var/texture_icon = icon('icons/materials/composite.dmi', texture_layer_icon_state) + cached_texture_filter = filter(type="layer", icon=texture_icon, blend_mode = BLEND_INSET_OVERLAY) ///This proc is called when the material is added to an object. /datum/material/proc/on_applied(atom/source, amount, material_flags) @@ -34,16 +46,27 @@ Simple datum which is instanced once per type and is used for every object of sa source.add_atom_colour(color, FIXED_COLOUR_PRIORITY) if(alpha) source.alpha = alpha + if(texture_layer_icon_state) + ADD_KEEP_TOGETHER(source, MATERIAL_SOURCE(src)) + source.filters += cached_texture_filter if(material_flags & MATERIAL_ADD_PREFIX) source.name = "[name] [source.name]" - if(istype(source, /obj)) //objs - on_applied_obj(source, amount, material_flags) - if(beauty_modifier) addtimer(CALLBACK(source, /datum.proc/_AddElement, list(/datum/element/beauty, beauty_modifier * amount)), 0) + if(istype(source, /obj)) //objs + on_applied_obj(source, amount, material_flags) + + else if(isturf(source, /turf)) //turfs + on_applied_turf(source, amount, material_flags) + + source.mat_update_desc(src) + +///This proc is called when a material updates an object's description +/atom/proc/mat_update_desc(/datum/material/mat) + return ///This proc is called when the material is added to an object specifically. /datum/material/proc/on_applied_obj(var/obj/o, amount, material_flags) if(material_flags & MATERIAL_AFFECT_STATISTICS) @@ -61,6 +84,24 @@ Simple datum which is instanced once per type and is used for every object of sa for(var/i in current_armor) temp_armor_list[i] = current_armor[i] * armor_modifiers[i] o.armor = getArmor(arglist(temp_armor_list)) + if(!isitem(o)) + return + var/obj/item/I = o + if(!item_sound_override) + return + I.hitsound = item_sound_override + I.usesound = item_sound_override + I.throwhitsound = item_sound_override + +/datum/material/proc/on_applied_turf(var/turf/T, amount, material_flags) + if(isopenturf(T)) + if(!turf_sound_override) + return + var/turf/open/O = T + O.footstep = turf_sound_override + O.barefootstep = turf_sound_override + O.clawfootstep = turf_sound_override + O.heavyfootstep = turf_sound_override ///This proc is called when the material is removed from an object. /datum/material/proc/on_removed(atom/source, material_flags) @@ -68,6 +109,9 @@ Simple datum which is instanced once per type and is used for every object of sa if(color) source.remove_atom_colour(FIXED_COLOUR_PRIORITY, color) source.alpha = initial(source.alpha) + if(texture_layer_icon_state) + source.filters -= cached_texture_filter + REMOVE_KEEP_TOGETHER(source, MATERIAL_SOURCE(src)) if(material_flags & MATERIAL_ADD_PREFIX) source.name = initial(source.name) @@ -75,10 +119,16 @@ Simple datum which is instanced once per type and is used for every object of sa if(istype(source, /obj)) //objs on_removed_obj(source, material_flags) + else if(istype(source, /turf)) //turfs + on_removed_turf(source, material_flags) + ///This proc is called when the material is removed from an object specifically. -/datum/material/proc/on_removed_obj(var/obj/o, amount, material_flags) +/datum/material/proc/on_removed_obj(obj/o, material_flags) if(material_flags & MATERIAL_AFFECT_STATISTICS) var/new_max_integrity = initial(o.max_integrity) o.modify_max_integrity(new_max_integrity) o.force = initial(o.force) o.throwforce = initial(o.throwforce) + +/datum/material/proc/on_removed_turf(turf/T, material_flags) + return diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index d4921a04d2..721af65449 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -1,21 +1,19 @@ ///Has no special properties. /datum/material/iron name = "iron" - id = "iron" desc = "Common iron ore often found in sedimentary and igneous layers of the crust." color = "#878687" - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/metal value_per_unit = 0.0025 ///Breaks extremely easily but is transparent. /datum/material/glass name = "glass" - id = "glass" desc = "Glass forged by melting sand." color = "#88cdf1" alpha = 150 - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) integrity_modifier = 0.1 sheet_type = /obj/item/stack/sheet/glass value_per_unit = 0.0025 @@ -30,10 +28,9 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Has no special properties. Could be good against vampires in the future perhaps. /datum/material/silver name = "silver" - id = "silver" desc = "Silver" color = list(255/255, 284/255, 302/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/silver value_per_unit = 0.025 beauty_modifier = 0.075 @@ -41,11 +38,10 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Slight force increase /datum/material/gold name = "gold" - id = "gold" desc = "Gold" color = list(340/255, 240/255, 50/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //gold is shiny, but not as bright as bananium strength_modifier = 1.2 - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/gold value_per_unit = 0.0625 beauty_modifier = 0.15 @@ -54,11 +50,10 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Has no special properties /datum/material/diamond name = "diamond" - id = "diamond" desc = "Highly pressurized carbon" color = list(48/255, 272/255, 301/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) alpha = 132 - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/diamond value_per_unit = 0.25 beauty_modifier = 0.3 @@ -67,10 +62,9 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Is slightly radioactive /datum/material/uranium name = "uranium" - id = "uranium" desc = "Uranium" color = rgb(48, 237, 26) - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/uranium value_per_unit = 0.05 beauty_modifier = 0.3 //It shines so beautiful @@ -88,10 +82,9 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Adds firestacks on hit (Still needs support to turn into gas on destruction) /datum/material/plasma name = "plasma" - id = "plasma" desc = "Isn't plasma a state of matter? Oh whatever." color = list(298/255, 46/255, 352/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/plasma value_per_unit = 0.1 beauty_modifier = 0.15 @@ -111,7 +104,6 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Can cause bluespace effects on use. (Teleportation) (Not yet implemented) /datum/material/bluespace name = "bluespace crystal" - id = "bluespace_crystal" desc = "Crystals with bluespace properties" color = list(119/255, 217/255, 396/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) alpha = 200 @@ -123,10 +115,9 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Honks and slips /datum/material/bananium name = "bananium" - id = "bananium" desc = "Material with hilarious properties" color = list(460/255, 464/255, 0, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //obnoxiously bright yellow - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/bananium value_per_unit = 0.5 beauty_modifier = 0.5 @@ -146,11 +137,10 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Mediocre force increase /datum/material/titanium name = "titanium" - id = "titanium" desc = "Titanium" color = "#b3c0c7" strength_modifier = 1.3 - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/titanium value_per_unit = 0.0625 beauty_modifier = 0.05 @@ -158,11 +148,10 @@ Unless you know what you're doing, only use the first three numbers. They're in /datum/material/runite name = "runite" - id = "runite" desc = "Runite" color = "#3F9995" strength_modifier = 1.3 - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/runite beauty_modifier = 0.5 armor_modifiers = list("melee" = 1.35, "bullet" = 2, "laser" = 0.5, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 1.4, "acid" = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle. @@ -170,7 +159,6 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Force decrease /datum/material/plastic name = "plastic" - id = "plastic" desc = "Plastic" color = "#caccd9" strength_modifier = 0.85 @@ -182,7 +170,6 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Force decrease and mushy sound effect. (Not yet implemented) /datum/material/biomass name = "biomass" - id = "biomass" desc = "Organic matter" color = "#735b4d" strength_modifier = 0.8 @@ -190,12 +177,11 @@ Unless you know what you're doing, only use the first three numbers. They're in /datum/material/wood name = "wood" - id = "wood" desc = "Flexible, durable, but flamable. Hard to come across in space." color = "#bb8e53" strength_modifier = 0.5 sheet_type = /obj/item/stack/sheet/mineral/wood - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) value_per_unit = 0.06 beauty_modifier = 0.1 armor_modifiers = list("melee" = 1.1, "bullet" = 1.1, "laser" = 0.4, "energy" = 0.4, "bomb" = 1, "bio" = 0.2, "rad" = 0, "fire" = 0, "acid" = 0.3) @@ -215,11 +201,10 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Stronk force increase /datum/material/adamantine name = "adamantine" - id = "adamantine" desc = "A powerful material made out of magic, I mean science!" color = "#6d7e8e" strength_modifier = 1.5 - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/adamantine value_per_unit = 0.25 beauty_modifier = 0.4 @@ -228,10 +213,9 @@ Unless you know what you're doing, only use the first three numbers. They're in ///RPG Magic. (Admin only) /datum/material/mythril name = "mythril" - id = "mythril" desc = "How this even exists is byond me" color = "#f2d5d7" - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/mythril value_per_unit = 0.75 beauty_modifier = 0.5 @@ -246,3 +230,134 @@ Unless you know what you're doing, only use the first three numbers. They're in . = ..() if(istype(source, /obj/item)) qdel(source.GetComponent(/datum/component/fantasy)) + +//I don't like sand. It's coarse, and rough, and irritating, and it gets everywhere. +/datum/material/sand + name = "sand" + desc = "You know, it's amazing just how structurally sound sand can be." + color = "#EDC9AF" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/sandblock + value_per_unit = 0.001 + strength_modifier = 0.5 + integrity_modifier = 0.1 + armor_modifiers = list("melee" = 0.25, "bullet" = 0.25, "laser" = 1.25, "energy" = 0.25, "bomb" = 0.25, "bio" = 0.25, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = 0.25 + turf_sound_override = FOOTSTEP_SAND + texture_layer_icon_state = "sand" + +//And now for our lavaland dwelling friends, sand, but in stone form! Truly revolutionary. +/datum/material/sandstone + name = "sandstone" + desc = "Bialtaakid 'ant taerif ma hdha." + color = "#B77D31" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/sandstone + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.5, "bullet" = 0.5, "laser" = 1.25, "energy" = 0.5, "bomb" = 0.5, "bio" = 0.25, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = 0.3 + turf_sound_override = FOOTSTEP_WOOD + texture_layer_icon_state = "brick" + +/datum/material/snow + name = "snow" + desc = "There's no business like snow business." + color = "#FFFFFF" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/snow + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.25, "bullet" = 0.25, "laser" = 0.25, "energy" = 0.25, "bomb" = 0.25, "bio" = 0.25, "rad" = 1.5, "fire" = 0.25, "acid" = 1.5) + beauty_modifier = 0.3 + turf_sound_override = FOOTSTEP_SAND + texture_layer_icon_state = "sand" + +/datum/material/runedmetal + name = "runed metal" + desc = "Mir'ntrath barhah Nar'sie." + color = "#3C3434" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/runed_metal + value_per_unit = 0.75 + armor_modifiers = list("melee" = 1.2, "bullet" = 1.2, "laser" = 1, "energy" = 1, "bomb" = 1.2, "bio" = 1.2, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = -0.15 + texture_layer_icon_state = "runed" + +/datum/material/bronze + name = "bronze" + desc = "Clock Cult? Never heard of it." + color = "#92661A" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/tile/bronze + value_per_unit = 0.025 + armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = 0.2 + +/datum/material/paper + name = "paper" + desc = "Ten thousand folds of pure starchy power." + color = "#E5DCD5" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/paperframes + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.1, "bullet" = 0.1, "laser" = 0.1, "energy" = 0.1, "bomb" = 0.1, "bio" = 0.1, "rad" = 1.5, "fire" = 0, "acid" = 1.5) + beauty_modifier = 0.3 + turf_sound_override = FOOTSTEP_SAND + texture_layer_icon_state = "paper" + +/datum/material/paper/on_applied_obj(obj/source, amount, material_flags) + . = ..() + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/paper = source + paper.resistance_flags |= FLAMMABLE + paper.obj_flags |= UNIQUE_RENAME + +/datum/material/paper/on_removed_obj(obj/source, material_flags) + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/paper = source + paper.resistance_flags &= ~FLAMMABLE + return ..() + +/datum/material/cardboard + name = "cardboard" + desc = "They say cardboard is used by hobos to make incredible things." + color = "#5F625C" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/cardboard + value_per_unit = 0.003 + armor_modifiers = list("melee" = 0.25, "bullet" = 0.25, "laser" = 0.25, "energy" = 0.25, "bomb" = 0.25, "bio" = 0.25, "rad" = 1.5, "fire" = 0, "acid" = 1.5) + beauty_modifier = -0.1 + +/datum/material/cardboard/on_applied_obj(obj/source, amount, material_flags) + . = ..() + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/cardboard = source + cardboard.resistance_flags |= FLAMMABLE + cardboard.obj_flags |= UNIQUE_RENAME + +/datum/material/cardboard/on_removed_obj(obj/source, material_flags) + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/cardboard = source + cardboard.resistance_flags &= ~FLAMMABLE + return ..() + +/datum/material/bone + name = "bone" + desc = "Man, building with this will make you the coolest caveman on the block." + color = "#e3dac9" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/bone + value_per_unit = 0.05 + armor_modifiers = list("melee" = 1.2, "bullet" = 0.75, "laser" = 0.75, "energy" = 1.2, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = -0.2 + +/datum/material/bamboo + name = "bamboo" + desc = "If it's good enough for pandas, it's good enough for you." + color = "#339933" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/bamboo + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.5, "bullet" = 0.5, "laser" = 0.5, "energy" = 0.5, "bomb" = 0.5, "bio" = 0.51, "rad" = 1.5, "fire" = 0.5, "acid" = 1.5) + beauty_modifier = 0.2 + turf_sound_override = FOOTSTEP_WOOD + texture_layer_icon_state = "bamboo" diff --git a/code/datums/materials/meat.dm b/code/datums/materials/meat.dm new file mode 100644 index 0000000000..14a373f2d2 --- /dev/null +++ b/code/datums/materials/meat.dm @@ -0,0 +1,32 @@ +///It's gross, gets the name of it's owner, and is all kinds of fucked up +/datum/material/meat + name = "meat" + desc = "Meat" + color = rgb(214, 67, 67) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/meat + value_per_unit = 0.05 + beauty_modifier = -0.3 + strength_modifier = 0.7 + armor_modifiers = list("melee" = 0.3, "bullet" = 0.3, "laser" = 1.2, "energy" = 1.2, "bomb" = 0.3, "bio" = 0, "rad" = 0.7, "fire" = 1, "acid" = 1) + item_sound_override = 'sound/effects/meatslap.ogg' + turf_sound_override = FOOTSTEP_MEAT + texture_layer_icon_state = "meat" + +/datum/material/meat/on_removed(atom/source, material_flags) + . = ..() + qdel(source.GetComponent(/datum/component/edible)) + +/datum/material/meat/on_applied_obj(obj/O, amount, material_flags) + . = ..() + O.obj_flags |= UNIQUE_RENAME //So you can name it after the person its made from, a depressing comprimise. + make_edible(O, amount, material_flags) + +/datum/material/meat/on_applied_turf(turf/T, amount, material_flags) + . = ..() + make_edible(T, amount, material_flags) + +/datum/material/meat/proc/make_edible(atom/source, amount, material_flags) + var/nutriment_count = 3 * (amount / MINERAL_MATERIAL_AMOUNT) + var/oil_count = 2 * (amount / MINERAL_MATERIAL_AMOUNT) + source.AddComponent(/datum/component/edible, list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/cooking_oil = oil_count), null, RAW | MEAT | GROSS, null, 30, list("Fleshy")) diff --git a/code/datums/materials/pizza.dm b/code/datums/materials/pizza.dm new file mode 100644 index 0000000000..2a9542234f --- /dev/null +++ b/code/datums/materials/pizza.dm @@ -0,0 +1,30 @@ +/datum/material/pizza + name = "pizza" + desc = "~Jamme, jamme, n'coppa, jamme ja! Jamme, jamme, n'coppa jamme ja, funi-culi funi-cala funi-culi funi-cala!! Jamme jamme ja funiculi funicula!~" + color = "#FF9F23" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/pizza + value_per_unit = 0.05 + beauty_modifier = 0.1 + strength_modifier = 0.7 + armor_modifiers = list("melee" = 0.3, "bullet" = 0.3, "laser" = 1.2, "energy" = 1.2, "bomb" = 0.3, "bio" = 0, "rad" = 0.7, "fire" = 1, "acid" = 1) + item_sound_override = 'sound/effects/meatslap.ogg' + turf_sound_override = FOOTSTEP_MEAT + texture_layer_icon_state = "pizza" + +/datum/material/pizza/on_removed(atom/source, material_flags) + . = ..() + qdel(source.GetComponent(/datum/component/edible)) + +/datum/material/pizza/on_applied_obj(obj/O, amount, material_flags) + . = ..() + make_edible(O, amount, material_flags) + +/datum/material/pizza/on_applied_turf(turf/T, amount, material_flags) + . = ..() + make_edible(T, amount, material_flags) + +/datum/material/pizza/proc/make_edible(atom/source, amount, material_flags) + var/nutriment_count = 3 * (amount / MINERAL_MATERIAL_AMOUNT) + var/oil_count = 2 * (amount / MINERAL_MATERIAL_AMOUNT) + source.AddComponent(/datum/component/edible, list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/cooking_oil = oil_count), null, GRAIN | MEAT | DAIRY | VEGETABLES, null, 30, list("crust", "tomato", "cheese", "meat")) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2a6835cc23..8ac9bc4276 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -67,7 +67,7 @@ var/datum/skill_holder/skill_holder /datum/mind/New(var/key) - skill_holder = new() + skill_holder = new(src) src.key = key soulOwner = src martial_art = default_martial_art diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm index 1475cfa356..335ecf889f 100644 --- a/code/datums/mutations/actions.dm +++ b/code/datums/mutations/actions.dm @@ -42,6 +42,7 @@ school = "evocation" charge_max = 600 clothes_req = NONE + antimagic_allowed = TRUE range = 20 base_icon_state = "fireball" action_icon_state = "fireball0" @@ -122,6 +123,7 @@ desc = "A rare genome that attracts odd forces not usually observed. May sometimes pull you in randomly." school = "evocation" clothes_req = NONE + antimagic_allowed = TRUE charge_max = 600 invocation = "DOOOOOOOOOOOOOOOOOOOOM!!!" invocation_type = "shout" @@ -155,6 +157,7 @@ dropmessage = "You let the electricity from your hand dissipate." hand_path = /obj/item/melee/touch_attack/shock charge_max = 400 + antimagic_allowed = TRUE clothes_req = NONE action_icon_state = "zap" @@ -212,6 +215,7 @@ desc = "Get a scent off of the item you're currently holding to track it. With an empty hand, you'll track the scent you've remembered." charge_max = 100 clothes_req = NONE + antimagic_allowed = TRUE range = -1 include_user = TRUE action_icon_state = "nose" @@ -290,6 +294,7 @@ name = "Drop a limb" desc = "Concentrate to make a random limb pop right off your body." clothes_req = NONE + antimagic_allowed = TRUE charge_max = 100 action_icon_state = "autotomy" @@ -327,6 +332,7 @@ name = "Lay Web" desc = "Drops a web. Only you will be able to traverse your web easily, making it pretty good for keeping you safe." clothes_req = NONE + antimagic_allowed = TRUE charge_max = 4 SECONDS //the same time to lay a web action_icon = 'icons/mob/actions/actions_genetic.dmi' action_icon_state = "lay_web" @@ -368,6 +374,7 @@ name = "Launch spike" desc = "Shoot your tongue out in the direction you're facing, embedding it and dealing damage until they remove it." clothes_req = NONE + antimagic_allowed = TRUE charge_max = 100 action_icon = 'icons/mob/actions/actions_genetic.dmi' action_icon_state = "spike" diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 5282156042..d275684bba 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -462,6 +462,10 @@ suffix = "whiteship_pod" name = "Salvage Pod" +/datum/map_template/shuttle/whiteship/cog + suffix = "cog" + name = "NT Prisoner Transport" + /datum/map_template/shuttle/cargo/box suffix = "box" name = "supply shuttle (Box)" @@ -628,4 +632,4 @@ /datum/map_template/shuttle/hunter/bounty suffix = "bounty" - name = "Bounty Hunter Ship" \ No newline at end of file + name = "Bounty Hunter Ship" diff --git a/code/datums/skills/_check_skills.dm b/code/datums/skills/_check_skills.dm index a94c7c95ba..2421bd36ff 100644 --- a/code/datums/skills/_check_skills.dm +++ b/code/datums/skills/_check_skills.dm @@ -11,6 +11,66 @@ if(!mind.skill_holder) to_chat(usr, "How do you check the skills of [(usr == src)? "yourself when you are" : "something"] without the capability for skills? (PROBABLY A BUG, PRESS F1.)") return - var/datum/browser/B = new(usr, "skilldisplay_[REF(src)]", "Skills of [src]") - B.set_content(mind.skill_html_readout()) - B.open() + + mind.skill_holder.ui_interact(src) + +/datum/skill_holder/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "skillpanel", "[owner.name]'s Skills", 620, 580, master_ui, state) + ui.set_autoupdate(FALSE) // This UI is only ever opened by one person, and never is updated outside of user input. + ui.open() + else if(need_static_data_update) + update_static_data(user) + need_static_data_update = FALSE + +/datum/skill_holder/ui_static_data(mob/user) + . = list() + .["skills"] = list() + for(var/path in GLOB.skill_datums) + var/datum/skill/S = GLOB.skill_datums[path] + var/list/dat = S.get_skill_data(src) + if(islist(dat["modifiers"])) + dat["modifiers"] = jointext(dat["modifiers"], ", ") + dat["percent_base"] = (dat["value_base"] / dat["max_value"]) + dat["percent_mod"] = (dat["value_mod"] / dat["max_value"]) + .["skills"] += list(dat) + +/datum/skill_holder/ui_data(mob/user) + . = list() + .["playername"] = owner.name + .["see_skill_mods"] = see_skill_mods + .["admin"] = check_rights(R_DEBUG) + +/datum/skill_holder/ui_act(action, params) + . = ..() + if(.) + return + switch(action) + if("toggle_mods") + see_skill_mods = !see_skill_mods + return TRUE + if ("adj_exp") + if(!check_rights(R_DEBUG)) + return + var/skill = text2path(params["skill"]) + var/number = input("Please insert the amount of experience/progress you'd like to add/subtract:") as num|null + if (number) + owner.set_skill_value(skill, owner.get_skill_value(skill, FALSE) + number) + return TRUE + if ("set_exp") + if(!check_rights(R_DEBUG)) + return + var/skill = text2path(params["skill"]) + var/number = input("Please insert the number you want to set the player's exp/progress to:") as num|null + if (!isnull(number)) + owner.set_skill_value(skill, number) + return TRUE + if ("set_lvl") + if(!check_rights(R_DEBUG)) + return + var/datum/skill/level/S = GLOB.skill_datums[text2path(params["skill"])] + var/number = input("Please insert a whole number between 0[S.associative ? " ([S.unskilled_tier])" : ""] and [S.max_levels][S.associative ? " ([S.levels[S.max_levels]])" : ""] corresponding to the level you'd like to set the player to.") as num|null + if (number >= 0 && number <= S.max_levels) + owner.set_skill_value(S.type, S.get_skill_level_value(number)) + return TRUE diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index 571a8274d8..e3f1d00ae6 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -8,6 +8,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) continue S = new path .[S.type] = S + . = sortTim(., /proc/cmp_skill_categories, TRUE) /** * Skill datums @@ -34,6 +35,8 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/competency_multiplier = 1 /// A list of ways this skill can affect or be affected through actions and skill modifiers. var/list/skill_traits = list(SKILL_SANITY, SKILL_INTELLIGENCE) + /// Index of this skill in the UI + var/ui_category = SKILL_UI_CAT_MISC /** * Ensures what someone's setting as a value for this skill is valid. @@ -57,10 +60,28 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) return new_value > existing /** - * Standard value "render" + * Get a list of data used in the skill panel menu. */ -/datum/skill/proc/standard_render_value(value, level) - return value +/datum/skill/proc/get_skill_data(datum/skill_holder/H) + var/skill_value = H.owner.get_skill_value(type, FALSE) + . = list( + "name" = name, + "desc" = desc, + "path" = type, + "value_base" = skill_value, + "value_mod" = skill_value, + "modifiers" = "None", + "max_value" = 1 //To avoid division by zero later on. + ) + var/list/mods = LAZYACCESS(H.skill_value_mods, type) + if(mods) + var/list/mod_names = list() + for(var/k in mods) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + mod_names |= M.name + skill_value = M.apply_modifier(skill_value, type, H, MODIFIER_TARGET_VALUE) + .["value_mod"] = skill_value + .["modifiers"] = mod_names //Will be jointext()'d later. // Just saying, the choice to use different sub-parent-types is to force coders to resolve issues as I won't be implementing custom procs to grab skill levels in a certain context. // Aka: So people don't forget to change checks if they change a skill's progression type. @@ -71,10 +92,12 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) competency_thresholds = list(THRESHOLD_COMPETENT = FALSE, THRESHOLD_EXPERT = TRUE, THRESHOLD_MASTER = TRUE) /datum/skill/binary/sanitize_value(new_value) - return new_value? TRUE : FALSE + return new_value >= 1 ? TRUE : FALSE -/datum/skill/binary/standard_render_value(value, level) - return value? "Yes" : "No" +/datum/skill/binary/get_skill_data(datum/skill_holder/H) + . = ..() + .["base_readout"] = .["value_base"] ? "Learned: Yes" : "Learned: No" + .["mod_readout"] = .["value_mod"] ? "Learned: Yes" : "Learned: No" /datum/skill/numerical abstract_type = /datum/skill/numerical @@ -84,14 +107,15 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/max_value = 100 /// Min value of this skill var/min_value = 0 - /// Display as a percent in standard_render_value? - var/display_as_percent = FALSE /datum/skill/numerical/sanitize_value(new_value) return clamp(new_value, min_value, max_value) -/datum/skill/numerical/standard_render_value(value, level) - return display_as_percent? "[round(value/max_value/100, 0.01)]%" : "[value] / [max_value]" +/datum/skill/numerical/get_skill_data(datum/skill_holder/H) + . = ..() + .["base_readout"] = "Skill Progress: \[[.["value_base"]] / [max_value]\]" + .["mod_readout"] = "Skill Progress: \[[.["value_mod"]] / [max_value]\]" + .["max_value"] = max_value /datum/skill/enum abstract_type = /datum/skill/enum @@ -123,13 +147,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/max_assoc = "" var/max_assoc_start = 1 for(var/lvl in 1 to max_levels) - var/value - switch(level_up_method) - if(STANDARD_LEVEL_UP) - value = XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl) - if(DWARFY_LEVEL_UP) - value = DORF_XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl) - value = round(value, 1) + var/value = round(get_skill_level_value(lvl), 1) if(!associative) levels += value continue @@ -167,8 +185,13 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) else if(. < 0) to_chat(M.current, "I feel like I've become worse at [name]!") -/datum/skill/level/standard_render_value(value, level) - var/current_lvl = associative ? (!level ? unskilled_tier : levels[level]) : level +/datum/skill/level/get_skill_data(datum/skill_holder/H) + . = ..() + var/skill_value_base = .["value_base"] + var/skill_value_mod = .["value_mod"] + .["level_based"] = TRUE + + var/level = LAZYACCESS(H.skill_levels, type) || 0 var/current_lvl_xp_sum = 0 if(level) current_lvl_xp_sum = associative ? levels[levels[level]] : levels[level] @@ -176,8 +199,50 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/next_lvl_xp = associative ? levels[levels[next_index]] : levels[next_index] if(next_lvl_xp > current_lvl_xp_sum) next_lvl_xp -= current_lvl_xp_sum + .["lvl_base_num"] = .["lvl_mod_num"] = level + .["lvl_base"] = .["lvl_mod"] = associative ? (!level ? unskilled_tier : levels[level]) : level + .["base_style"] = .["mod_style"] = "font-weight:bold; color:hsl([(level+1)*(350/max_levels+1)], 50%, 50%)" + .["xp_next_lvl_base"] = .["xp_next_lvl_mod"] = "\[[skill_value_base - current_lvl_xp_sum]/[next_lvl_xp]\]" - return "[associative ? current_lvl : "Lvl. [current_lvl]"] ([value - current_lvl_xp_sum]/[next_lvl_xp])[level == max_levels ? " \[MAX!\]" : ""]" + .["max_lvl"] = max_levels + var/max_value = associative ? levels[levels[max_levels]] : levels[max_levels] + .["max_value"] = max_value + + .["base_readout"] = "Overall Skill Progress: \[[skill_value_base]/[max_value]\]" + .["mod_readout"] = "Overall Skill Progress: \[[skill_value_mod]/[max_value]\]" + + var/list/mods = LAZYACCESS(H.skill_level_mods, type) + if(mods) //I'm not proud of doing the same-ish process twice a row but here we go. + var/list/mod_names = .["modifiers"] + if(!mod_names) + .["modifiers"] = mod_names = list() + for(var/k in mods) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + mod_names |= M.name + level = M.apply_modifier(level, type, H, MODIFIER_TARGET_LEVEL) + + if(level) + current_lvl_xp_sum = associative ? levels[levels[level]] : levels[level] + else + current_lvl_xp_sum = 0 + next_index = min(max_levels, level+1) + next_lvl_xp = associative ? levels[levels[next_index]] : levels[next_index] + if(next_lvl_xp > current_lvl_xp_sum) + next_lvl_xp -= current_lvl_xp_sum + .["lvl_mod_num"] = level + .["lvl_mod"] = associative ? (!level ? unskilled_tier : levels[level]) : level + .["mod_style"] = "font-weight:bold; color:hsl([(level+1)*(300/(max_levels+1))], 50%, 50%)" + .["xp_next_lvl_mod"] = "\[[skill_value_mod - current_lvl_xp_sum]/[next_lvl_xp]\]" + +/** + * Gets the base value required to reach a level specified by the 'num' arg. + */ +/datum/skill/level/proc/get_skill_level_value(num) + switch(level_up_method) + if(STANDARD_LEVEL_UP) + . = XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, num) + if(DWARFY_LEVEL_UP) + . = DORF_XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, num) /datum/skill/level/job abstract_type = /datum/skill/level/job diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index 0a5c4f8f58..8357211463 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -20,6 +20,18 @@ var/list/original_values var/list/original_affinities var/list/original_levels + /// The mind datum this skill is associated with, only used for the check_skills UI + var/datum/mind/owner + /// For UI updates. + var/need_static_data_update = TRUE + /// Whether modifiers and final skill values or only base values are displayed. + var/see_skill_mods = TRUE + /// The current selected skill category. + var/selected_category + +/datum/skill_holder/New(owner) + ..() + src.owner = owner /** * Grabs the value of a skill. @@ -79,6 +91,7 @@ CRASH("Invalid set_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. var/datum/skill/S = GLOB.skill_datums[skill] value = S.sanitize_value(value) + skill_holder.need_static_data_update = TRUE if(!isnull(value)) LAZYINITLIST(skill_holder.skills) S.set_skill_value(skill_holder, value, src, silent) @@ -183,18 +196,3 @@ divisor++ if(divisor) . = modifier_is_multiplier ? value*(sum/divisor) : value/(sum/divisor) - -/** - * Generates a HTML readout of our skills. - * Port to tgui-next when? - */ -/datum/mind/proc/skill_html_readout() - var/list/out = list("

Skills


") - out += "" - for(var/path in GLOB.skill_datums) - var/datum/skill/S = GLOB.skill_datums[path] - var/skill_value = get_skill_value(path) - var/skill_level = get_skill_level(path, round = TRUE) - out += "" - out += "
SkillValue
[S.name][S.standard_render_value(skill_value, skill_level)]
" - return out.Join("") diff --git a/code/datums/skills/_skill_modifier.dm b/code/datums/skills/_skill_modifier.dm index a28cf3aebd..c38cbf23c6 100644 --- a/code/datums/skills/_skill_modifier.dm +++ b/code/datums/skills/_skill_modifier.dm @@ -7,6 +7,8 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) * and cause lots of edge cases. These are fairly simple overall... make a subtype though, don't use this one. */ /datum/skill_modifier + /// Name and description of the skill modifier, used in the UI + var/name = "???" /// flags for this skill modifier. var/modifier_flags = NONE /// target skills, can be a specific skill typepath or a list of skill traits. @@ -110,6 +112,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) if(M.modifier_flags & MODIFIER_SKILL_LEVEL) ADD_MOD_STEP(skill_holder.skill_level_mods, path, skill_holder.original_levels, get_skill_level(path, FALSE)) LAZYSET(skill_holder.all_current_skill_modifiers, id, TRUE) + skill_holder.need_static_data_update = TRUE if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND) M.RegisterSignal(src, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer) @@ -141,6 +144,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) if(M.modifier_flags & MODIFIER_SKILL_LEVEL && skill_holder.skill_level_mods) REMOVE_MOD_STEP(skill_holder.skill_level_mods, path, skill_holder.original_levels) LAZYREMOVE(skill_holder.all_current_skill_modifiers, id) + skill_holder.need_static_data_update = TRUE if(!mind_transfer && M.modifier_flags & MODIFIER_SKILL_BODYBOUND) M.UnregisterSignal(src, COMSIG_MIND_TRANSFER) @@ -165,11 +169,7 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill) var/datum/skill/S = GLOB.skill_datums[skillpath] if(method == MODIFIER_TARGET_VALUE && S.progression_type == SKILL_PROGRESSION_LEVEL) var/datum/skill/level/L = S - switch(L.level_up_method) - if(STANDARD_LEVEL_UP) - mod = XP_LEVEL(L.standard_xp_lvl_up, L.xp_lvl_multiplier, S.competency_thresholds[mod]) - if(DWARFY_LEVEL_UP) - mod = DORF_XP_LEVEL(L.standard_xp_lvl_up, L.xp_lvl_multiplier, S.competency_thresholds[mod]) + mod = L.get_skill_level_value(L.competency_thresholds[mod]) else mod = S.competency_thresholds[mod] diff --git a/code/datums/skills/engineering.dm b/code/datums/skills/engineering.dm index db7b33450c..1226664953 100644 --- a/code/datums/skills/engineering.dm +++ b/code/datums/skills/engineering.dm @@ -1,5 +1,6 @@ /datum/skill/level/job/wiring name = "Wiring" - desc = "How proficient and knowledged you are at wiring beyond laying cables on the floor." + desc = "How proficient and knowledged you are at wiring beyond making post-futuristic wire art." name_color = COLOR_PALE_ORANGE skill_traits = list(SKILL_SANITY, SKILL_INTELLIGENCE, SKILL_USE_TOOL, SKILL_TRAINING_TOOL) + ui_category = SKILL_UI_CAT_ENG diff --git a/code/datums/skills/medical.dm b/code/datums/skills/medical.dm index 404c141157..4cf10c4c96 100644 --- a/code/datums/skills/medical.dm +++ b/code/datums/skills/medical.dm @@ -1,5 +1,6 @@ /datum/skill/numerical/surgery name = "Surgery" - desc = "How proficient you are at doing surgery." + desc = "How proficient you are at performing surgical procedures." name_color = COLOR_PALE_BLUE_GRAY competency_multiplier = 1.5 // 60% surgery speed up at max value of 100, considering the base multiplier. + ui_category = SKILL_UI_CAT_MED diff --git a/code/datums/skills/modifiers/job.dm b/code/datums/skills/modifiers/job.dm index 7d79ae89b3..e989ab11e3 100644 --- a/code/datums/skills/modifiers/job.dm +++ b/code/datums/skills/modifiers/job.dm @@ -1,6 +1,7 @@ /// Jobbie skill modifiers. /datum/skill_modifier/job + name = "Job Training" modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF priority = MODIFIER_SKILL_PRIORITY_MAX @@ -23,7 +24,7 @@ modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF level_mod = JOB_SKILL_TRAINED -/datum/skill_modifier/job/level/New(id) +/datum/skill_modifier/job/level/New(id, register = FALSE) if(level_mod) value_mod = GET_STANDARD_LVL(level_mod) ..() diff --git a/code/datums/skills/modifiers/mood.dm b/code/datums/skills/modifiers/mood.dm index 30f24afcc4..a22b75d5b5 100644 --- a/code/datums/skills/modifiers/mood.dm +++ b/code/datums/skills/modifiers/mood.dm @@ -1,8 +1,10 @@ /datum/skill_modifier/bad_mood + name = "Mood (Dejected)" modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND target_skills = list(SKILL_SANITY) /datum/skill_modifier/great_mood + name = "Mood (Elated)" modifier_flags = MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND target_skills = list(SKILL_SANITY) affinity_mod = 1.2 diff --git a/code/datums/skills/modifiers/organs.dm b/code/datums/skills/modifiers/organs.dm index 13ebaf0658..313604f6b2 100644 --- a/code/datums/skills/modifiers/organs.dm +++ b/code/datums/skills/modifiers/organs.dm @@ -1,4 +1,5 @@ /datum/skill_modifier/brain_damage + name = "Brain Damage" target_skills = list(SKILL_INTELLIGENCE) modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND value_mod = 0.85 @@ -6,6 +7,7 @@ affinity_mod = 0.85 /datum/skill_modifier/heavy_brain_damage + name = "Brain Damage (Severe)" target_skills = list(SKILL_INTELLIGENCE) modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_BODYBOUND|MODIFIER_SKILL_HANDICAP|MODIFIER_USE_THRESHOLDS priority = MODIFIER_SKILL_PRIORITY_LOW diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 925da7c057..faed65e9c4 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -81,11 +81,11 @@ owner.adjustStaminaLoss(-0.5) //reduce stamina loss by 0.5 per tick, 10 per 2 seconds if(human_owner && human_owner.drunkenness) human_owner.drunkenness *= 0.997 //reduce drunkenness by 0.3% per tick, 6% per 2 seconds - if(prob(20)) - if(carbon_owner) - carbon_owner.handle_dreams() - if(prob(10) && owner.health > owner.crit_threshold) - owner.emote("snore") + if(carbon_owner && !carbon_owner.dreaming && prob(2)) + carbon_owner.dream() + // 2% per second, tick interval is in deciseconds + if(prob((tick_interval+1) * 0.2) && owner.health > owner.crit_threshold) + owner.emote("snore") /datum/status_effect/staggered id = "staggered" @@ -711,8 +711,9 @@ datum/status_effect/pacify if(hearing_args[HEARING_SPEAKER] == owner) return var/mob/living/carbon/C = owner + var/hypnomsg = uncostumize_say(hearing_args[HEARING_RAW_MESSAGE], hearing_args[HEARING_MESSAGE_MODE]) C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis - addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hearing_args[HEARING_RAW_MESSAGE]), 10) + addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hypnomsg), 10) addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it qdel(src) diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 33c8384d72..12c223f500 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -6,6 +6,7 @@ var/id = "effect" //Used for screen alerts. var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means. var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second. + var/next_tick //The scheduled time for the next tick. var/mob/living/owner //The mob affected by the status effect. var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves @@ -31,7 +32,7 @@ return if(duration != -1) duration = world.time + duration - tick_interval = world.time + tick_interval + next_tick = world.time + tick_interval if(alert_type) var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) A.attached_effect = src //so the alert can reference us, if it needs to @@ -52,9 +53,9 @@ if(!owner) qdel(src) return - if(tick_interval < world.time) + if(next_tick < world.time) tick() - tick_interval = world.time + initial(tick_interval) + next_tick = world.time + tick_interval if(duration != -1 && duration < world.time) qdel(src) @@ -221,7 +222,7 @@ threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again on_threshold_drop() if(stacks_added > 0) - tick_interval += delay_before_decay //refreshes time until decay + next_tick += delay_before_decay //refreshes time until decay stacks = min(stacks, max_stacks) status_overlay.icon_state = "[overlay_state][stacks]" status_underlay.icon_state = "[underlay_state][stacks]" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e3f4829d3d..fedbeb97c0 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -48,6 +48,7 @@ var/rad_insulation = RAD_NO_INSULATION ///The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.) + ///The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use [set_custom_materials][/atom/proc/set_custom_materials]. var/list/custom_materials ///Bitfield for how the atom handles materials. var/material_flags = NONE @@ -114,11 +115,8 @@ if (canSmoothWith) canSmoothWith = typelist("canSmoothWith", canSmoothWith) - var/temp_list = list() - for(var/i in custom_materials) - temp_list[SSmaterials.GetMaterialRef(i)] = custom_materials[i] //Get the proper instanced version - custom_materials = null //Null the list to prepare for applying the materials properly - set_custom_materials(temp_list) + // apply materials properly from the default custom_materials value + set_custom_materials(custom_materials) ComponentInitialize() @@ -438,7 +436,7 @@ var/blood_id = get_blood_id() if(!(blood_id in GLOB.blood_reagent_types)) return - return list("ANIMAL DNA" = "Y-") + return list("color" = list(BLOOD_COLOR_HUMAN), "ANIMAL DNA" = "Y-") /mob/living/carbon/get_blood_dna_list() var/blood_id = get_blood_id() @@ -446,13 +444,15 @@ return var/list/blood_dna = list() if(dna) + blood_dna["color"] = list(dna.species.exotic_blood_color) //so when combined, the list grows with the number of colors blood_dna[dna.unique_enzymes] = dna.blood_type else + blood_dna["color"] = list(BLOOD_COLOR_HUMAN) blood_dna["UNKNOWN DNA"] = "X*" return blood_dna /mob/living/carbon/alien/get_blood_dna_list() - return list("UNKNOWN DNA" = "X*") + return list("color" = list(BLOOD_COLOR_XENO), "UNKNOWN DNA" = "X*") //to add a mob's dna info into an object's blood_DNA list. /atom/proc/transfer_mob_blood_dna(mob/living/L) @@ -461,8 +461,10 @@ if(!new_blood_dna) return FALSE LAZYINITLIST(blood_DNA) //if our list of DNA doesn't exist yet, initialise it. + LAZYINITLIST(blood_DNA["color"]) var/old_length = blood_DNA.len blood_DNA |= new_blood_dna + blood_DNA["color"] += new_blood_dna["color"] if(blood_DNA.len == old_length) return FALSE return TRUE @@ -470,9 +472,12 @@ //to add blood dna info to the object's blood_DNA list /atom/proc/transfer_blood_dna(list/blood_dna, list/datum/disease/diseases) LAZYINITLIST(blood_DNA) + LAZYINITLIST(blood_dna["color"]) + var/old_length = blood_DNA.len blood_DNA |= blood_dna if(blood_DNA.len > old_length) + blood_DNA["color"] += blood_dna["color"] return TRUE //some new blood DNA was added @@ -544,23 +549,22 @@ /atom/proc/blood_DNA_to_color() var/list/colors = list()//first we make a list of all bloodtypes present - for(var/bloop in blood_DNA) - if(colors[blood_DNA[bloop]]) - colors[blood_DNA[bloop]]++ + for(var/blood_color in blood_DNA["color"]) + if(colors[blood_color]) + colors[blood_color]++ else - colors[blood_DNA[bloop]] = 1 + colors[blood_color] = 1 var/final_rgb = BLOOD_COLOR_HUMAN //a default so we don't have white blood graphics if something messed up - if(colors.len) var/sum = 0 //this is all shitcode, but it works; trust me - final_rgb = bloodtype_to_color(colors[1]) + final_rgb = colors[1] sum = colors[colors[1]] if(colors.len > 1) var/i = 2 while(i <= colors.len) var/tmp = colors[colors[i]] - final_rgb = BlendRGB(final_rgb, bloodtype_to_color(colors[i]), tmp/(tmp+sum)) + final_rgb = BlendRGB(final_rgb, colors[i], tmp/(tmp+sum)) sum += tmp i++ @@ -1006,26 +1010,21 @@ Proc for attack log creation, because really why not ///Sets the custom materials for an item. /atom/proc/set_custom_materials(var/list/materials, multiplier = 1) - - if(!materials) - materials = custom_materials - if(custom_materials) //Only runs if custom materials existed at first. Should usually be the case but check anyways for(var/i in custom_materials) var/datum/material/custom_material = SSmaterials.GetMaterialRef(i) custom_material.on_removed(src, material_flags) //Remove the current materials if(!length(materials)) + custom_materials = null return - custom_materials = list() //Reset the list + if(material_flags) + for(var/x in materials) + var/datum/material/custom_material = SSmaterials.GetMaterialRef(x) + custom_material.on_applied(src, materials[x] * multiplier * material_modifier, material_flags) - for(var/x in materials) - var/datum/material/custom_material = SSmaterials.GetMaterialRef(x) - - if(material_flags & MATERIAL_EFFECTS) - custom_material.on_applied(src, materials[custom_material] * multiplier * material_modifier, material_flags) - custom_materials[custom_material] += materials[x] * multiplier + custom_materials = SSmaterials.FindOrCreateMaterialCombo(materials, multiplier) /** * Returns true if this atom has gravity for the passed in turf diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm index ce864007f0..695fc79169 100644 --- a/code/game/gamemodes/clown_ops/bananium_bomb.dm +++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm @@ -51,4 +51,4 @@ H.dna.add_mutation(CLOWNMUT) H.dna.add_mutation(SMILE) - H.gain_trauma(/datum/brain_trauma/mild/phobia, TRAUMA_RESILIENCE_LOBOTOMY, "clowns") //MWA HA HA + H.gain_trauma(/datum/brain_trauma/mild/phobia/clowns, TRAUMA_RESILIENCE_LOBOTOMY) //MWA HA HA diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 131e61c674..2280bd45d6 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -36,7 +36,7 @@ targetitem = /obj/item/gun/energy/e_gun/hos difficulty = 10 excludefromjob = list("Head Of Security") - altitems = list(/obj/item/gun/ballistic/revolver/mws, /obj/item/choice_beacon/hosgun) //We now look for eather the alt verson of the hos gun or the beacon picker. + altitems = list(/obj/item/gun/ballistic/revolver/mws, /obj/item/choice_beacon/hosgun) //We now look for either the alt verson of the hos gun or the beacon picker. /datum/objective_item/steal/handtele name = "a hand teleporter." diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 4eeb6b8b0f..1f0687151d 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -46,29 +46,16 @@ "Dinnerware", "Imported" ) - var/list/allowed_materials = list( - /datum/material/iron, - /datum/material/glass, - /datum/material/gold, - /datum/material/silver, - /datum/material/diamond, - /datum/material/uranium, - /datum/material/plasma, - /datum/material/bluespace, - /datum/material/bananium, - /datum/material/titanium, - /datum/material/runite, - /datum/material/plastic, - /datum/material/adamantine, - /datum/material/mythril, - /datum/material/wood - ) + var/list/allowed_materials /// Base print speed var/base_print_speed = 10 /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container, allowed_materials, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) + var/list/mats = allowed_materials + if(!mats) + mats = SSmaterials.materialtypes_by_category[MAT_CATEGORY_RIGID] + AddComponent(/datum/component/material_container, mats, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) . = ..() wires = new /datum/wires/autolathe(src) stored_research = new stored_research diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index cfe9d14663..9afe4808fd 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -134,7 +134,7 @@ return examine(user) //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance) +/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance, list/traumas) if(panel_open) return FALSE if(mess || attempting) @@ -209,6 +209,12 @@ var/datum/quirk/Q = new V(H) Q.on_clone(quirks[V]) + for(var/t in traumas) + var/datum/brain_trauma/BT = t + var/datum/brain_trauma/cloned_trauma = BT.on_clone() + if(cloned_trauma) + H.gain_trauma(cloned_trauma, BT.resilience) + H.set_cloned_appearance() H.give_genitals(TRUE) @@ -271,9 +277,6 @@ var/obj/item/bodypart/BP = I BP.attach_limb(mob_occupant) - //Premature clones may have brain damage. - mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, -((speed_coeff / 2) * dmg_mult)) - use_power(7500) //This might need tweaking. else if((mob_occupant && mob_occupant.cloneloss <= (100 - heal_level))) @@ -399,6 +402,8 @@ to_chat(occupant, "There is a bright flash!
You feel like a new being.
") mob_occupant.flash_act() + mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, mob_occupant.getCloneLoss()) + occupant.forceMove(T) update_icon() mob_occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. @@ -474,10 +479,9 @@ unattached_flesh.Cut() H.setCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health - //H.setOrganLoss(ORGAN_SLOT_BRAIN, CLONE_INITIAL_DAMAGE) - // In addition to being cellularly damaged and having barely any - - // brain function, they also have no limbs or internal organs. + // In addition to being cellularly damaged, they also have no limbs or internal organs. + // Applying brainloss is done when the clone leaves the pod, so application of traumas can happen. + // based on the level of damage sustained. if(!HAS_TRAIT(H, TRAIT_NODISMEMBER)) var/static/list/zones = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 981a5643a8..7834d6f2a2 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -73,7 +73,7 @@ if(pod.occupant) continue //how though? - if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["quirks"], R.fields["bank_account"])) + if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["quirks"], R.fields["bank_account"], R.fields["traumas"])) temp = "[R.fields["name"]] => Cloning cycle in progress..." records -= R @@ -442,14 +442,17 @@ var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) var/datum/dna/dna var/datum/bank_account/has_bank_account + + // Do not use unless you know what they are. + var/mob/living/carbon/C = mob_occupant + var/mob/living/brain/B = mob_occupant + if(ishuman(mob_occupant)) - var/mob/living/carbon/C = mob_occupant dna = C.has_dna() var/obj/item/card/id/I = C.get_idcard() if(I) has_bank_account = I.registered_account if(isbrain(mob_occupant)) - var/mob/living/brain/B = mob_occupant dna = B.stored_dna if(!istype(dna)) @@ -497,11 +500,17 @@ R.fields["features"] = dna.features R.fields["factions"] = mob_occupant.faction R.fields["quirks"] = list() - R.fields["bank_account"] = has_bank_account for(var/V in mob_occupant.roundstart_quirks) var/datum/quirk/T = V R.fields["quirks"][T.type] = T.clone_data() + R.fields["traumas"] = list() + if(ishuman(mob_occupant)) + R.fields["traumas"] = C.get_traumas() + if(isbrain(mob_occupant)) + R.fields["traumas"] = B.get_traumas() + + R.fields["bank_account"] = has_bank_account if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning. R.fields["mind"] = "[REF(mob_occupant.mind)]" diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index b53b18a512..8b2eb9d1d7 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -18,7 +18,7 @@ var/secondsElectrified = 0 var/shockedby - var/visible = TRUE + var/visible = TRUE // To explain: Whether the door can block line of sight when closed or not. var/operating = FALSE var/glass = FALSE var/welded = FALSE diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 492e90720c..c9c577231e 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -54,6 +54,15 @@ else icon_state = "[src.base_state]open" +/obj/machinery/door/window/update_atom_colour() + if((color && (color_hex2num(color) < 255))) + visible = TRUE + if(density) + set_opacity(TRUE) + else + visible = FALSE + set_opacity(density && visible) + /obj/machinery/door/window/proc/open_and_close() open() if(src.check_access(null)) @@ -143,16 +152,18 @@ do_animate("opening") playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) src.icon_state ="[src.base_state]open" - sleep(10) + addtimer(CALLBACK(src, .proc/finish_opening), 10) + return TRUE +/obj/machinery/door/window/proc/finish_opening() + operating = FALSE density = FALSE -// src.sd_set_opacity(0) //TODO: why is this here? Opaque windoors? ~Carn + if(visible) + set_opacity(FALSE) air_update_turf(1) update_freelook_sight() - if(operating == 1) //emag again operating = FALSE - return 1 /obj/machinery/door/window/close(forced=0) if (src.operating) @@ -171,10 +182,13 @@ density = TRUE air_update_turf(1) update_freelook_sight() - sleep(10) + addtimer(CALLBACK(src, .proc/finish_closing), 10) + return TRUE +/obj/machinery/door/window/proc/finish_closing() + if(visible) + set_opacity(TRUE) operating = FALSE - return 1 /obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) diff --git a/code/game/machinery/sheetifier.dm b/code/game/machinery/sheetifier.dm new file mode 100644 index 0000000000..7b83401194 --- /dev/null +++ b/code/game/machinery/sheetifier.dm @@ -0,0 +1,44 @@ +/obj/machinery/sheetifier + name = "Sheet-meister 2000" + desc = "A very sheety machine" + icon = 'icons/obj/machines/sheetifier.dmi' + icon_state = "base_machine" + density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = 10 + active_power_usage = 100 + circuit = /obj/item/circuitboard/machine/sheetifier + layer = BELOW_OBJ_LAYER + var/busy_processing = FALSE + +/obj/machinery/sheetifier/Initialize() + . = ..() + AddComponent(/datum/component/material_container, list(/datum/material/meat), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/reagent_containers/food/snacks/meat/slab, CALLBACK(src, .proc/CanInsertMaterials), CALLBACK(src, .proc/AfterInsertMaterials)) + +/obj/machinery/sheetifier/update_overlays() + . = ..() + if(stat & (BROKEN|NOPOWER)) + return + var/mutable_appearance/on_overlay = mutable_appearance(icon, "buttons_on") + . += on_overlay + +/obj/machinery/sheetifier/update_icon_state() + icon_state = "base_machine[busy_processing ? "_processing" : ""]" + +/obj/machinery/sheetifier/proc/CanInsertMaterials() + return !busy_processing + +/obj/machinery/sheetifier/proc/AfterInsertMaterials(item_inserted, id_inserted, amount_inserted) + busy_processing = TRUE + update_icon() + var/datum/material/last_inserted_material = id_inserted + var/mutable_appearance/processing_overlay = mutable_appearance(icon, "processing") + processing_overlay.color = last_inserted_material.color + flick_overlay_static(processing_overlay, src, 64) + addtimer(CALLBACK(src, .proc/finish_processing), 64) + +/obj/machinery/sheetifier/proc/finish_processing() + busy_processing = FALSE + update_icon() + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) + materials.retrieve_all() //Returns all as sheets diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 4ddb5281ea..c13cb1d1c6 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -388,7 +388,7 @@ /obj/item/mecha_parts/mecha_equipment/generator/get_equip_info() var/output = ..() if(output) - return "[output] \[[fuel]: [round(fuel.amount*fuel.mats_per_stack,0.1)] cm3\] - [equip_ready?"A":"Dea"]ctivate" + return "[output] \[[fuel]: [round(fuel.amount*MINERAL_MATERIAL_AMOUNT,0.1)] cm3\] - [equip_ready?"A":"Dea"]ctivate" /obj/item/mecha_parts/mecha_equipment/generator/action(target) if(chassis) @@ -398,9 +398,9 @@ /obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/sheet/P) if(P.type == fuel.type && P.amount > 0) - var/to_load = max(max_fuel - fuel.amount*fuel.mats_per_stack,0) + var/to_load = max(max_fuel - fuel.amount*MINERAL_MATERIAL_AMOUNT,0) if(to_load) - var/units = min(max(round(to_load / P.mats_per_stack),1),P.amount) + var/units = min(max(round(to_load / MINERAL_MATERIAL_AMOUNT),1),P.amount) fuel.amount += units P.use(units) occupant_message("[units] unit\s of [fuel] successfully loaded.") @@ -454,7 +454,7 @@ if(cur_charge < chassis.cell.maxcharge) use_fuel = fuel_per_cycle_active chassis.give_power(power_per_cycle) - fuel.amount -= min(use_fuel/fuel.mats_per_stack,fuel.amount) + fuel.amount -= min(use_fuel/MINERAL_MATERIAL_AMOUNT,fuel.amount) update_equip_info() return 1 diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 93228c7fee..ca481f0d80 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -26,6 +26,7 @@ "Firefighter", "Odysseus", "Gygax", + "Medical-Spec Gygax", "Durand", "H.O.N.K", "Phazon", diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 5160282180..34cb57f661 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -642,6 +642,304 @@ user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Gygax Armor Plates.") return TRUE +//Begin Medigax +/datum/component/construction/unordered/mecha_chassis/medigax + result = /datum/component/construction/mecha/medigax + steps = list( + /obj/item/mecha_parts/part/medigax_torso, + /obj/item/mecha_parts/part/medigax_left_arm, + /obj/item/mecha_parts/part/medigax_right_arm, + /obj/item/mecha_parts/part/medigax_left_leg, + /obj/item/mecha_parts/part/medigax_right_leg, + /obj/item/mecha_parts/part/medigax_head + ) + +/datum/component/construction/mecha/medigax + result = /obj/mecha/medical/medigax + base_icon = "medigax" + steps = list( + //1 + list( + "key" = TOOL_WRENCH, + "desc" = "The hydraulic systems are disconnected." + ), + + //2 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_WRENCH, + "desc" = "The hydraulic systems are connected." + ), + + //3 + list( + "key" = /obj/item/stack/cable_coil, + "amount" = 5, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The hydraulic systems are active." + ), + + //4 + list( + "key" = TOOL_WIRECUTTER, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The wiring is added." + ), + + //5 + list( + "key" = /obj/item/circuitboard/mecha/gygax/main, + "action" = ITEM_DELETE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The wiring is adjusted." + ), + + //6 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Central control module is installed." + ), + + //7 + list( + "key" = /obj/item/circuitboard/mecha/gygax/peripherals, + "action" = ITEM_DELETE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Central control module is secured." + ), + + //8 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Peripherals control module is installed." + ), + + //9 + list( + "key" = /obj/item/circuitboard/mecha/gygax/targeting, + "action" = ITEM_DELETE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Peripherals control module is secured." + ), + + //10 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Weapon control module is installed." + ), + + //11 + list( + "key" = /obj/item/stock_parts/scanning_module, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Weapon control module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Scanner module is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Scanner module is secured." + ), + + //14 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Capacitor is installed." + ), + + //15 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Capacitor is secured." + ), + + //16 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + + //17 + list( + "key" = /obj/item/stack/sheet/metal, + "amount" = 5, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The power cell is secured." + ), + + //18 + list( + "key" = TOOL_WRENCH, + "back_key" = TOOL_CROWBAR, + "desc" = "Internal armor is installed." + ), + + //19 + list( + "key" = TOOL_WELDER, + "back_key" = TOOL_WRENCH, + "desc" = "Internal armor is wrenched." + ), + + //20 + list( + "key" = /obj/item/mecha_parts/part/medigax_armor, + "action" = ITEM_DELETE, + "back_key" = TOOL_WELDER, + "desc" = "Internal armor is welded." + ), + + //21 + list( + "key" = TOOL_WRENCH, + "back_key" = TOOL_CROWBAR, + "desc" = "External armor is installed." + ), + + //22 + list( + "key" = TOOL_WELDER, + "back_key" = TOOL_WRENCH, + "desc" = "External armor is wrenched." + ), + + ) + +/datum/component/construction/mecha/medigax/action(datum/source, atom/used_atom, mob/user) + return check_step(used_atom,user) + +/datum/component/construction/mecha/medigax/custom_action(obj/item/I, mob/living/user, diff) + if(!..()) + return FALSE + + switch(index) + if(1) + user.visible_message("[user] connects [parent] hydraulic systems", "You connect [parent] hydraulic systems.") + if(2) + if(diff==FORWARD) + user.visible_message("[user] activates [parent] hydraulic systems.", "You activate [parent] hydraulic systems.") + else + user.visible_message("[user] disconnects [parent] hydraulic systems", "You disconnect [parent] hydraulic systems.") + if(3) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to [parent].", "You add the wiring to [parent].") + else + user.visible_message("[user] deactivates [parent] hydraulic systems.", "You deactivate [parent] hydraulic systems.") + if(4) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of [parent].", "You adjust the wiring of [parent].") + else + user.visible_message("[user] removes the wiring from [parent].", "You remove the wiring from [parent].") + if(5) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] disconnects the wiring of [parent].", "You disconnect the wiring of [parent].") + if(6) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + else + user.visible_message("[user] removes the central control module from [parent].", "You remove the central computer mainboard from [parent].") + if(7) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + if(8) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + else + user.visible_message("[user] removes the peripherals control module from [parent].", "You remove the peripherals control module from [parent].") + if(9) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + else + user.visible_message("[user] removes the weapon control module from [parent].", "You remove the weapon control module from [parent].") + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + if(12) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(13) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(14) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(15) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + if(16) + if(diff==FORWARD) + user.visible_message("[user] secures the power cell.", "You secure the power cell.") + else + user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") + if(17) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") + else + user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") + if(18) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + else + user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") + if(19) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + if(20) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") + if(21) + if(diff==FORWARD) + user.visible_message("[user] secures Gygax Armor Plates.", "You secure Medical Gygax Armor Plates.") + else + user.visible_message("[user] pries Gygax Armor Plates from [parent].", "You pry Medical Gygax Armor Plates from [parent].") + if(22) + if(diff==FORWARD) + user.visible_message("[user] welds Gygax Armor Plates to [parent].", "You weld Medical Gygax Armor Plates to [parent].") + else + user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Medical Gygax Armor Plates.") + return TRUE +// End Medigax + /datum/component/construction/unordered/mecha_chassis/firefighter result = /datum/component/construction/mecha/firefighter steps = list( diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 811ffdef35..14df70438f 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -129,6 +129,47 @@ desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction." icon_state = "gygax_armor" +///////// Medical Gygax + +/obj/item/mecha_parts/chassis/medigax + name = "\improper Medical Gygax chassis" + construct_type = /datum/component/construction/unordered/mecha_chassis/medigax + +/obj/item/mecha_parts/part/medigax_torso + name = "\improper Medical Gygax torso" + desc = "A torso part of Gygax. Contains power unit, processing core and life support systems." + icon_state = "medigax_harness" + +/obj/item/mecha_parts/part/medigax_head + name = "\improper Medical Gygax head" + desc = "A Gygax head. Houses advanced surveillance and targeting sensors." + icon_state = "medigax_head" + +/obj/item/mecha_parts/part/medigax_left_arm + name = "\improper Medical Gygax left arm" + desc = "A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "medigax_l_arm" + +/obj/item/mecha_parts/part/medigax_right_arm + name = "\improper Medical Gygax right arm" + desc = "A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "medigax_r_arm" + +/obj/item/mecha_parts/part/medigax_left_leg + name = "\improper Medical Gygax left leg" + desc = "A Gygax left leg. Constructed with advanced servomechanisms and actuators to enable faster speed." + icon_state = "medigax_l_leg" + +/obj/item/mecha_parts/part/medigax_right_leg + name = "\improper Medical Gygax right leg" + desc = "A Gygax right leg. Constructed with advanced servomechanisms and actuators to enable faster speed." + icon_state = "medigax_r_leg" + +/obj/item/mecha_parts/part/medigax_armor + gender = PLURAL + name = "\improper Medical Gygax armor plates" + desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction." + icon_state = "medigax_armor" //////////// Durand diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index b1ab944b49..8b6146dee7 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -256,7 +256,7 @@ output_access_dialog(id_card, usr) if(href_list["del_req_access"] && add_req_access) - operation_req_access -= text2num(href_list["add_req_access"]) + operation_req_access -= text2num(href_list["del_req_access"]) output_access_dialog(id_card, usr) if(href_list["finish_req_access"]) diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index ecf39bcb0b..9175489c89 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -125,6 +125,24 @@ name = "\improper Dark Gygax wreckage" icon_state = "darkgygax-broken" +/obj/structure/mecha_wreckage/medigax + name = "\improper Medical Gygax wreckage" + icon_state = "medigax-broken" + +/obj/structure/mecha_wreckage/medigax/Initialize() + . = ..() + var/list/parts = list(/obj/item/mecha_parts/part/medigax_torso, + /obj/item/mecha_parts/part/medigax_head, + /obj/item/mecha_parts/part/medigax_left_arm, + /obj/item/mecha_parts/part/medigax_right_arm, + /obj/item/mecha_parts/part/medigax_left_leg, + /obj/item/mecha_parts/part/medigax_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + /obj/structure/mecha_wreckage/marauder name = "\improper Marauder wreckage" icon_state = "marauder-broken" diff --git a/code/game/mecha/medical/medigax.dm b/code/game/mecha/medical/medigax.dm new file mode 100644 index 0000000000..98b7c9455b --- /dev/null +++ b/code/game/mecha/medical/medigax.dm @@ -0,0 +1,34 @@ +/obj/mecha/medical/medigax + desc = "A Gygax with it's actuator overload stripped and a slick white paint scheme, for medical use, These exosuits are developed and produced by Vey-Med. (© All rights reserved)." + name = "\improper Medical Gygax" + icon_state = "medigax" + step_in = 1.75 // a little faster than an odysseus + max_temperature = 25000 + max_integrity = 250 + wreckage = /obj/structure/mecha_wreckage/odysseus + armor = list("melee" = 25, "bullet" = 20, "laser" = 30, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) + internal_damage_threshold = 35 + deflect_chance = 15 + step_energy_drain = 6 + infra_luminosity = 6 + + +/obj/mecha/medical/medigax/moved_inside(mob/living/carbon/human/H) + . = ..() + if(.) + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] + hud.add_hud_to(H) + +/obj/mecha/medical/medigax/go_out() + if(isliving(occupant)) + var/mob/living/carbon/human/L = occupant + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] + hud.remove_hud_from(L) + ..() + +/obj/mecha/medical/medigax/mmi_moved_inside(obj/item/mmi/mmi_as_oc, mob/user) + . = ..() + if(.) + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] + var/mob/living/brain/B = mmi_as_oc.brainmob + hud.add_hud_to(B) diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index a5acc7d394..fa16a95faf 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -91,7 +91,7 @@ var/mob/living/carbon/human/H = O var/obj/item/clothing/shoes/S = H.shoes if(S && S.bloody_shoes[blood_state]) - if(color != bloodtype_to_color(S.last_bloodtype)) + if(color != S.last_blood_color) return S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) shoe_types |= S.type @@ -104,7 +104,7 @@ var/mob/living/carbon/human/H = O var/obj/item/clothing/shoes/S = H.shoes if(S && S.bloody_shoes[blood_state]) - if(color != bloodtype_to_color(S.last_bloodtype))//last entry - we check its color + if(color != S.last_blood_color)//last entry - we check its color return S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) shoe_types |= S.type diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 57b25a8901..2c7f701a6e 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -451,7 +451,7 @@ lootcount = 1 spawn_on_turf = FALSE //Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that -//This is ment for "low" loot that anyone could fine in a toilet, for better gear use high loot toilet +//This is meant for "low" loot that anyone could find in a toilet, for better gear use high loot toilet loot = list("" = 30, /obj/item/lighter = 2, /obj/item/tape/random = 1, @@ -476,7 +476,7 @@ lootcount = 1 spawn_on_turf = FALSE //Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that -//This is ment for "prison" loot that is rather rare and ment for "prisoners if they get a crowbar to fine, or sec. +//This is meant for "prison" loot that is rather rare and meant for "prisoners if they get a crowbar to fine, or sec. loot = list("" = 10, /obj/item/lighter = 5, /obj/item/poster/random_contraband = 5, diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 60bae4016a..79e0eceb8f 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -778,6 +778,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb ..() /obj/item/proc/microwave_act(obj/machinery/microwave/M) + SEND_SIGNAL(src, COMSIG_ITEM_MICROWAVE_ACT, M) if(istype(M) && M.dirty < 100) M.dirty++ diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index ea839ae12d..56eb25f953 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -61,6 +61,14 @@ name = "Experimental Clone Pod (Machine Board)" build_path = /obj/machinery/clonepod/experimental +/obj/item/circuitboard/machine/sheetifier + name = "Sheet-meister 2000 (Machine Board)" + icon_state = "supply" + build_path = /obj/machinery/sheetifier + req_components = list( + /obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/matter_bin = 2) + /obj/item/circuitboard/machine/abductor name = "alien board (Report This)" icon_state = "abductor_mod" diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 050427702d..f5477ae5f6 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -88,6 +88,7 @@ var/obj/effect/decal/cleanable/C = locate() in target qdel(C) target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + target.clean_blood() SEND_SIGNAL(target, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) target.wash_cream() return @@ -180,4 +181,4 @@ name = "Canned Laughter" desc = "Just looking at this makes you want to giggle." icon_state = "laughter" - list_reagents = list(/datum/reagent/consumable/laughter = 50) \ No newline at end of file + list_reagents = list(/datum/reagent/consumable/laughter = 50) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index a4ed8dedd1..fc98da2c0d 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -737,12 +737,7 @@ to_chat(usr, "A color that dark on an object like this? Surely not...") return FALSE - - if(istype(target, /obj/structure/window)) - var/obj/structure/window/W = target - W.spraycan_paint(paint_color) - else - target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) + target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) . = use_charges(user, 2) var/fraction = min(1, . / reagents.maximum_volume) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 5728a97dda..6ac2d310a1 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -258,6 +258,9 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "\proper mini Integrated Subspace Transceiver " subspace_transmission = FALSE +/obj/item/radio/headset/silicon/pai/ComponentInitialize() + . = ..() + AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) /obj/item/radio/headset/silicon/ai name = "\proper Integrated Subspace Transceiver " diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index bafffa18e3..4ad71f7c46 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -510,7 +510,7 @@ oneuse = FALSE remarks = list("So that is how icing is made!", "Placing fruit on top? How simple...", "Huh layering cake seems harder then this...", "This book smells like candy", "A clown must have made this page, or they forgot to spell check it before printing...", "Wait, a way to cook slime to be safe?") -/obj/item/book/granter/crafting_recipe/coldcooking //IceCream +/obj/item/book/granter/crafting_recipe/coldcooking //Icecream name = "Cooking with Ice" desc = "A cook book that teaches you many old icecream treats." crafting_recipe_types = list(/datum/crafting_recipe/food/banana_split, /datum/crafting_recipe/food/root_float, /datum/crafting_recipe/food/bluecharrie_float, /datum/crafting_recipe/food/charrie_float) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 741607edc3..c6aa9f7bf4 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -689,7 +689,7 @@ item_state = "mace_greyscale" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Material type changes the prefix as well as the color. + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color. custom_materials = list(/datum/material/iron = 12000) //Defaults to an Iron Mace. slot_flags = ITEM_SLOT_BELT force = 14 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 6fdea26683..efcc075110 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -17,7 +17,6 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=1000) - mats_per_stack = 1000 max_amount = 50 attack_verb = list("hit", "bludgeoned", "whacked") hitsound = 'sound/weapons/grenadelaunch.ogg' diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index d28ae52b52..f5843a7df2 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -39,9 +39,11 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \ item_state = "sheet-sandstone" throw_speed = 3 throw_range = 5 - custom_materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/sandstone=MINERAL_MATERIAL_AMOUNT) sheettype = "sandstone" merge_type = /obj/item/stack/sheet/mineral/sandstone + walltype = /turf/closed/wall/mineral/sandstone + material_type = /datum/material/sandstone /obj/item/stack/sheet/mineral/sandstone/get_main_recipes() . = ..() @@ -107,6 +109,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ point_value = 25 merge_type = /obj/item/stack/sheet/mineral/diamond material_type = /datum/material/diamond + walltype = /turf/closed/wall/mineral/diamond GLOBAL_LIST_INIT(diamond_recipes, list ( \ new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \ @@ -135,6 +138,7 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/uranium material_type = /datum/material/uranium + walltype = /turf/closed/wall/mineral/uranium GLOBAL_LIST_INIT(uranium_recipes, list ( \ new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \ @@ -163,6 +167,7 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/plasma material_type = /datum/material/plasma + walltype = /turf/closed/wall/mineral/plasma /obj/item/stack/sheet/mineral/plasma/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins licking \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -205,6 +210,7 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/gold material_type = /datum/material/gold + walltype = /turf/closed/wall/mineral/gold GLOBAL_LIST_INIT(gold_recipes, list ( \ new/datum/stack_recipe("golden door", /obj/structure/mineral_door/gold, 10, one_per_turf = 1, on_floor = 1), \ @@ -236,6 +242,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ merge_type = /obj/item/stack/sheet/mineral/silver material_type = /datum/material/silver tableVariant = /obj/structure/table/optable + walltype = /turf/closed/wall/mineral/silver GLOBAL_LIST_INIT(silver_recipes, list ( \ new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \ @@ -266,6 +273,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ point_value = 50 merge_type = /obj/item/stack/sheet/mineral/bananium material_type = /datum/material/bananium + walltype = /turf/closed/wall/mineral/bananium GLOBAL_LIST_INIT(bananium_recipes, list ( \ new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ @@ -294,6 +302,7 @@ GLOBAL_LIST_INIT(bananium_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/titanium material_type = /datum/material/titanium + walltype = /turf/closed/wall/mineral/titanium GLOBAL_LIST_INIT(titanium_recipes, list ( \ new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), \ @@ -324,6 +333,7 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \ custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT) point_value = 45 merge_type = /obj/item/stack/sheet/mineral/plastitanium + walltype = /turf/closed/wall/mineral/plastitanium /obj/item/stack/sheet/mineral/plastitanium/fifty amount = 50 @@ -390,11 +400,14 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( name = "snow" icon_state = "sheet-snow" item_state = "sheet-snow" + custom_materials = list(/datum/material/snow = MINERAL_MATERIAL_AMOUNT) singular_name = "snow block" force = 1 throwforce = 2 grind_results = list(/datum/reagent/consumable/ice = 20) merge_type = /obj/item/stack/sheet/mineral/snow + walltype = /turf/closed/wall/mineral/snow + material_type = /datum/material/snow GLOBAL_LIST_INIT(snow_recipes, list ( \ new/datum/stack_recipe("Snow Wall", /turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index c11b619431..f0a57fddb2 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -205,7 +205,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ desc = "This sheet is an alloy of iron and plasma." icon_state = "sheet-plasteel" item_state = "sheet-metal" - custom_materials = list(/datum/material/iron=2000, /datum/material/plasma=2000) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT) throwforce = 10 flags_1 = CONDUCT_1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80) @@ -289,6 +289,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ novariants = TRUE material_type = /datum/material/wood grind_results = list(/datum/reagent/carbon = 20) + walltype = /turf/closed/wall/mineral/wood /obj/item/stack/sheet/mineral/wood/attackby(obj/item/W, mob/user, params) // NOTE: sheet_types.dm is where the WOOD stack lives. Maybe move this over there. // Taken from /obj/item/stack/rods/attackby in [rods.dm] @@ -344,11 +345,13 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ icon_state = "sheet-bamboo" item_state = "sheet-bamboo" icon = 'icons/obj/stack_objects.dmi' + custom_materials = list(/datum/material/bamboo = MINERAL_MATERIAL_AMOUNT) throwforce = 15 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/bamboo grind_results = list(/datum/reagent/carbon = 5) + material_type = /datum/material/bamboo /obj/item/stack/sheet/mineral/bamboo/get_main_recipes() . = ..() @@ -513,12 +516,14 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ desc = "Large sheets of card, like boxes folded flat." singular_name = "cardboard sheet" icon_state = "sheet-card" + custom_materials = list(/datum/material/cardboard = MINERAL_MATERIAL_AMOUNT) item_state = "sheet-card" resistance_flags = FLAMMABLE force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/cardboard novariants = TRUE + material_type = /datum/material/cardboard /obj/item/stack/sheet/cardboard/get_main_recipes() . = ..() @@ -558,10 +563,12 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ icon_state = "sheet-runed" item_state = "sheet-runed" icon = 'icons/obj/stack_objects.dmi' + custom_materials = list(/datum/material/runedmetal = MINERAL_MATERIAL_AMOUNT) sheettype = "runed" merge_type = /obj/item/stack/sheet/runed_metal novariants = TRUE grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15) + material_type = /datum/material/runedmetal /obj/item/stack/sheet/runed_metal/ratvar_act() new /obj/item/stack/tile/brass(loc, amount) @@ -680,6 +687,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ icon_state = "sheet-brass" item_state = "sheet-brass" icon = 'icons/obj/stack_objects.dmi' + custom_materials = list(/datum/material/bronze = MINERAL_MATERIAL_AMOUNT) resistance_flags = FIRE_PROOF | ACID_PROOF throwforce = 10 max_amount = 50 @@ -690,6 +698,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing merge_type = /obj/item/stack/tile/bronze tableVariant = /obj/structure/table/bronze + material_type = /datum/material/bronze /obj/item/stack/tile/bronze/attack_self(mob/living/user) if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message @@ -737,6 +746,7 @@ GLOBAL_LIST_INIT(bone_recipes, list( icon = 'icons/obj/mining.dmi' icon_state = "bone" item_state = "sheet-bone" + custom_materials = list(/datum/material/bone = MINERAL_MATERIAL_AMOUNT) singular_name = "bone" desc = "Someone's been drinking their milk." force = 7 @@ -747,6 +757,7 @@ GLOBAL_LIST_INIT(bone_recipes, list( throw_range = 3 grind_results = list(/datum/reagent/carbon = 10) merge_type = /obj/item/stack/sheet/bone + material_type = /datum/material/bone /obj/item/stack/sheet/bone/get_main_recipes() . = ..() @@ -774,6 +785,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( custom_materials = list(/datum/material/plastic=MINERAL_MATERIAL_AMOUNT) throwforce = 7 grind_results = list(/datum/reagent/glitter/white = 60) + material_type = /datum/material/plastic merge_type = /obj/item/stack/sheet/plastic /obj/item/stack/sheet/plastic/fifty @@ -799,9 +811,11 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra singular_name = "paper frame" icon_state = "sheet-paper" item_state = "sheet-paper" + custom_materials = list(/datum/material/paper = MINERAL_MATERIAL_AMOUNT) merge_type = /obj/item/stack/sheet/paperframes resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/paperframes + material_type = /datum/material/paper /obj/item/stack/sheet/paperframes/get_main_recipes() . = ..() @@ -842,3 +856,55 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra merge_type = /obj/item/stack/sheet/cotton/durathread pull_effort = 70 loom_result = /obj/item/stack/sheet/durathread + +/obj/item/stack/sheet/meat + name = "meat sheets" + desc = "Something's bloody meat compressed into a nice solid sheet" + singular_name = "meat sheet" + icon_state = "sheet-meat" + material_flags = MATERIAL_COLOR + custom_materials = list(/datum/material/meat = MINERAL_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/sheet/meat + material_type = /datum/material/meat + material_modifier = 1 //None of that wussy stuff + +/obj/item/stack/sheet/meat/fifty + amount = 50 +/obj/item/stack/sheet/meat/twenty + amount = 20 +/obj/item/stack/sheet/meat/five + amount = 5 + +/obj/item/stack/sheet/pizza + name = "pepperoni sheetzzas" + desc = "It's a delicious pepperoni sheetzza!" + singular_name = "pepperoni sheetzza" + icon_state = "sheet-pizza" + custom_materials = list(/datum/material/pizza = MINERAL_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/sheet/pizza + material_type = /datum/material/pizza + material_modifier = 1 + +/obj/item/stack/sheet/pizza/fifty + amount = 50 +/obj/item/stack/sheet/pizza/twenty + amount = 20 +/obj/item/stack/sheet/pizza/five + amount = 5 + +/obj/item/stack/sheet/sandblock + name = "blocks of sand" + desc = "You're too old to be playing with sandcastles. Now you build... sandstations." + singular_name = "block of sand" + icon_state = "sheet-sandstone" + custom_materials = list(/datum/material/sand = MINERAL_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/sheet/sandblock + material_type = /datum/material/sand + material_modifier = 1 + +/obj/item/stack/sheet/sandblock/fifty + amount = 50 +/obj/item/stack/sheet/sandblock/twenty + amount = 20 +/obj/item/stack/sheet/sandblock/five + amount = 5 diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index dfba533247..57c8ba75d8 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -10,10 +10,14 @@ throw_range = 3 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") novariants = FALSE - mats_per_stack = MINERAL_MATERIAL_AMOUNT - var/sheettype = null //this is used for girders in the creation of walls/false walls - var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity - var/shard_type // the shard debris typepath left over by solar panels and windows etc. + ///this is used for girders in the creation of walls/false walls + var/sheettype = null + ///turn-in value for the gulag stacker - loosely relative to its rarity + var/point_value = 0 + /// the shard debris typepath left over by solar panels and windows etc. + var/shard_type + ///What type of wall does this sheet spawn + var/walltype /obj/item/stack/sheet/Initialize(mapload, new_amount, merge) . = ..() diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 2c8e700316..16b46567c7 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -22,7 +22,7 @@ var/merge_type = null // This path and its children should merge with this stack, defaults to src.type var/full_w_class = WEIGHT_CLASS_NORMAL //The weight class the stack should have at amount > 2/3rds max_amount var/novariants = TRUE //Determines whether the item should update it's sprites based on amount. - var/mats_per_stack = 0 + var/list/mats_per_unit //list that tells you how much is in a single unit. ///Datum material type that this stack is made of var/material_type //NOTE: When adding grind_results, the amounts should be for an INDIVIDUAL ITEM - these amounts will be multiplied by the stack size in on_grind() @@ -47,8 +47,11 @@ if(!merge_type) merge_type = type if(custom_materials && custom_materials.len) + mats_per_unit = list() + var/in_process_mat_list = custom_materials.Copy() for(var/i in custom_materials) - custom_materials[SSmaterials.GetMaterialRef(i)] = mats_per_stack * amount + mats_per_unit[SSmaterials.GetMaterialRef(i)] = in_process_mat_list[i] + custom_materials[i] *= amount . = ..() if(merge) for(var/obj/item/stack/S in loc) @@ -60,7 +63,7 @@ var/datum/material/M = SSmaterials.GetMaterialRef(material_type) //First/main material for(var/i in M.categories) switch(i) - if(MAT_CATEGORY_RIGID) + if(MAT_CATEGORY_BASE_RECIPES) var/list/temp = SSmaterials.rigid_stack_recipes.Copy() recipes += temp update_weight() @@ -315,10 +318,13 @@ if (amount < used) return FALSE amount -= used - if(check) - zero_amount() - for(var/i in custom_materials) - custom_materials[i] = amount * mats_per_stack + if(check && zero_amount()) + return TRUE + if(length(mats_per_unit)) + var/temp_materials = custom_materials.Copy() + for(var/i in mats_per_unit) + temp_materials[i] = mats_per_unit[i] * src.amount + set_custom_materials(temp_materials) update_icon() update_weight() return TRUE @@ -350,10 +356,11 @@ source.add_charge(amount * cost) else src.amount += amount - if(custom_materials && custom_materials.len) - for(var/i in custom_materials) - custom_materials[SSmaterials.GetMaterialRef(i)] = MINERAL_MATERIAL_AMOUNT * src.amount - set_custom_materials() //Refresh + if(length(mats_per_unit)) + var/temp_materials = custom_materials.Copy() + for(var/i in mats_per_unit) + temp_materials[i] = mats_per_unit[i] * src.amount + set_custom_materials(temp_materials) update_icon() update_weight() diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 0635c55ca3..13fca1e8fe 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -9,16 +9,35 @@ throw_speed = 3 throw_range = 7 max_amount = 60 - mats_per_stack = 500 var/turf_type = null var/mineralType = null novariants = TRUE + var/human_maxHealth = 100 /obj/item/stack/tile/Initialize(mapload, amount) . = ..() pixel_x = rand(-3, 3) pixel_y = rand(-3, 3) //randomize a little +/obj/item/stack/tile/examine(mob/user) + . = ..() + if(throwforce && !is_cyborg) //do not want to divide by zero or show the message to borgs who can't throw + var/verb + switch(CEILING(human_maxHealth / throwforce, 1)) //throws to crit a human + if(1 to 3) + verb = "superb" + if(4 to 6) + verb = "great" + if(7 to 9) + verb = "good" + if(10 to 12) + verb = "fairly decent" + if(13 to 15) + verb = "mediocre" + if(!verb) + return + . += "Those could work as a [verb] throwing weapon." + /obj/item/stack/tile/attackby(obj/item/W, mob/user, params) if (istype(W, /obj/item/weldingtool)) @@ -470,7 +489,7 @@ /obj/item/stack/tile/plasteel name = "floor tile" singular_name = "floor tile" - desc = "Those could work as a pretty decent throwing weapon." + desc = "The ground you walk on." icon_state = "tile" force = 6 custom_materials = list(/datum/material/iron=500) @@ -482,7 +501,15 @@ resistance_flags = FIRE_PROOF /obj/item/stack/tile/plasteel/cyborg - desc = "The ground you walk on." //Not the usual floor tile desc as that refers to throwing, Cyborgs can't do that - RR custom_materials = null // All other Borg versions of items have no Metal or Glass - RR is_cyborg = 1 cost = 125 + +/obj/item/stack/tile/material + name = "floor tile" + singular_name = "floor tile" + desc = "The ground you walk on." + throwforce = 10 + icon_state = "material_tile" + turf_type = /turf/open/floor/material + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index ee515d321f..aac642a05e 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -444,4 +444,22 @@ STR.max_combined_w_class = 30 STR.max_items = 3 STR.display_numerical_stacking = FALSE - STR.can_hold = typecacheof(list(/obj/item/ammo_box/magazine, /obj/item/ammo_casing)) \ No newline at end of file + STR.can_hold = typecacheof(list(/obj/item/ammo_box/magazine, /obj/item/ammo_casing)) + +/obj/item/storage/bag/material + name = "material pouch" + desc = "A pouch for sheets and RCD ammunition that manages to hang where you would normally put things in your pocket." + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "materialpouch" + slot_flags = ITEM_SLOT_POCKET + w_class = WEIGHT_CLASS_BULKY + resistance_flags = FLAMMABLE + +/obj/item/storage/bag/material/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = INFINITY + STR.max_items = 2 + STR.display_numerical_stacking = TRUE + STR.can_hold = typecacheof(list(/obj/item/rcd_ammo, /obj/item/stack/sheet)) \ No newline at end of file diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index 826a00b90d..454475625d 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -106,10 +106,10 @@ /obj/item/storage/briefcase/medical name = "medical briefcase" icon_state = "medbriefcase" - desc = "A white with a blue cross brieface, this is ment to hold medical gear that would not be able to normally fit in a bag." + desc = "A white with a blue cross brieface, this is meant to hold medical gear that would not be able to normally fit in a bag." /obj/item/storage/briefcase/medical/PopulateContents() new /obj/item/clothing/neck/stethoscope(src) new /obj/item/healthanalyzer(src) - ..() //In case of paperwork + ..() //Incase of paperwork diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 37b6baaa0b..d7065df0f0 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -370,6 +370,14 @@ for(var/i in 1 to 7) new /obj/item/reagent_containers/pill/breast_enlargement(src) +/obj/item/storage/pill_bottle/neurine + name = "bottle of neurine pills" + desc = "Contains pills to treat non-severe mental traumas." + +/obj/item/storage/pill_bottle/neurine/PopulateContents() + for(var/i in 1 to 5) + new /obj/item/reagent_containers/pill/neurine(src) + ///////////// //Organ Box// ///////////// diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 7e89ddbd8d..fd50bd022f 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -25,7 +25,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "toolbox_default" item_state = "toolbox_default" can_rubberify = FALSE - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS /obj/item/storage/toolbox/Initialize(mapload) if(has_latches) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 54ac2a5559..1203c5a1df 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -103,6 +103,8 @@ take_damage(400, BRUTE, "melee", 0, get_dir(src, B)) /obj/proc/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, armor_penetration = 0) //used by attack_alien, attack_animal, and attack_slime + if(SEND_SIGNAL(src, COMSIG_OBJ_ATTACK_GENERIC, user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) & COMPONENT_STOP_GENERIC_ATTACK) + return FALSE user.do_attack_animation(src) user.changeNext_move(CLICK_CD_MELEE) return take_damage(damage_amount, damage_type, damage_flag, sound_effect, get_dir(src, user), armor_penetration) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 2225c4c0c2..299ba7b659 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -155,7 +155,7 @@ ///Material chair /obj/structure/chair/greyscale icon_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS item_chair = /obj/item/chair/greyscale buildstacktype = null //Custom mats handle this @@ -384,7 +384,7 @@ /obj/item/chair/greyscale icon_state = "chair_greyscale_toppled" item_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS origin_type = /obj/structure/chair/greyscale /obj/item/chair/stool diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index cacf361722..ff62b9cc48 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -170,7 +170,7 @@ qdel(src) return - if(S.sheettype && S.sheettype != "runed") + if(S.sheettype != "runed") var/M = S.sheettype if(state == GIRDER_DISPLACED) var/F = text2path("/obj/structure/falsewall/[M]") @@ -188,9 +188,13 @@ transfer_fingerprints_to(FW) qdel(src) else - var/F = text2path("/turf/closed/wall/mineral/[M]") + var/list/material_list + var/F = S.walltype if(!F) - return + F = /turf/closed/wall/material + if(S.material_type) + material_list = list() + material_list[SSmaterials.GetMaterialRef(S.material_type)] = MINERAL_MATERIAL_AMOUNT * 2 if(S.get_amount() < 2) to_chat(user, "You need at least two sheets to add plating!") return @@ -201,7 +205,9 @@ S.use(2) to_chat(user, "You add the plating.") var/turf/T = get_turf(src) - T.PlaceOnTop(F) + var/turf/newturf = T.PlaceOnTop(F) + if(material_list) + newturf.set_custom_materials(material_list) transfer_fingerprints_to(T) qdel(src) return diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 012d92e103..777be608b5 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -134,6 +134,8 @@ if(!ishuman(pushed_mob)) return var/mob/living/carbon/human/H = pushed_mob + if(iscatperson(H)) + H.emote("nya") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table) /obj/structure/table/shove_act(mob/living/target, mob/living/user) @@ -218,7 +220,7 @@ /obj/structure/table/greyscale icon = 'icons/obj/smooth_structures/table_greyscale.dmi' icon_state = "table" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS buildstack = null //No buildstack, so generate from mat datums ///Table on wheels diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 5eecc6962a..acb88fbb1d 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -157,7 +157,6 @@ secret_type = /obj/effect/spawner/lootdrop/prison_loot_toilet /obj/structure/toilet/greyscale - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR buildstacktype = null @@ -582,6 +581,12 @@ G.use(1) return + if(istype(O, /obj/item/stack/ore/glass)) + new /obj/item/stack/sheet/sandblock(loc) + to_chat(user, "You wet the sand in the sink and form it into a block.") + O.use(1) + return + if(!istype(O)) return if(O.item_flags & ABSTRACT) //Abstract items like grabs won't wash. No-drop items will though because it's still technically an item in your hand. @@ -673,7 +678,7 @@ if(steps == 4 && istype(S, /obj/item/stack/sheet/mineral/wood)) if(S.use(3)) steps = 5 - desc = "A dug out well, A dug out well with out rope. Just add some cloth!" + desc = "A dug out well, A dug out well without rope. Just add some cloth!" icon_state = "well_4" return TRUE else @@ -702,11 +707,6 @@ icon_state = "puddle" resistance_flags = UNACIDABLE -/obj/structure/sink/greyscale - icon_state = "sink_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR - buildstacktype = null - //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/sink/puddle/attack_hand(mob/M) icon_state = "puddle-splash" @@ -722,6 +722,7 @@ qdel(src) /obj/structure/sink/greyscale + icon_state = "sink_greyscale" material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR buildstacktype = null diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index e896f8072b..17031a51df 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -271,29 +271,27 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) air_update_turf(TRUE) update_nearby_icons() -/obj/structure/window/proc/spraycan_paint(paint_color) - if(color_hex2num(paint_color) < 255) - set_opacity(255) - else - set_opacity(initial(opacity)) - add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) - /obj/structure/window/proc/electrochromatic_dim() if(electrochromatic_status == ELECTROCHROMATIC_DIMMED) return electrochromatic_status = ELECTROCHROMATIC_DIMMED - animate(src, color = "#222222", time = 2) - set_opacity(TRUE) + var/current = color + add_atom_colour("#222222", FIXED_COLOUR_PRIORITY) + var/newcolor = color + if(color != current) + color = current + animate(src, color = newcolor, time = 2) /obj/structure/window/proc/electrochromatic_off() if(electrochromatic_status == ELECTROCHROMATIC_OFF) return electrochromatic_status = ELECTROCHROMATIC_OFF var/current = color - update_atom_colour() + remove_atom_colour(FIXED_COLOUR_PRIORITY, "#222222") var/newcolor = color - color = current - animate(src, color = newcolor, time = 2) + if(color != current) + color = current + animate(src, color = newcolor, time = 2) /obj/structure/window/proc/remove_electrochromatic() electrochromatic_off() @@ -348,11 +346,9 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) GLOB.electrochromatic_window_lookup[electrochromatic_id] |= src /obj/structure/window/update_atom_colour() - if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED)) - return FALSE . = ..() - if(color && (color_hex2num(color) < 255)) - set_opacity(255) + if(electrochromatic_status == ELECTROCHROMATIC_DIMMED || (color && (color_hex2num(color) < 255))) + set_opacity(TRUE) else set_opacity(FALSE) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 9f5ce679f9..bdca384bd0 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -189,9 +189,12 @@ if(user && !silent) to_chat(user, "You remove the floor tile.") if(floor_tile && make_tile) - new floor_tile(src) + spawn_tile() return make_plating() +/turf/open/floor/proc/spawn_tile() + new floor_tile(src) + /turf/open/floor/singularity_pull(S, current_size) . = ..() switch(current_size) @@ -205,7 +208,7 @@ if(floor_tile) if(prob(70)) remove_tile() - else if(prob(50)) + else if(prob(50) && (/turf/open/space in baseturfs)) ReplaceWithLattice() /turf/open/floor/narsie_act(force, ignore_mobs, probability = 20) @@ -293,3 +296,13 @@ return TRUE return FALSE + +/turf/open/floor/material + name = "floor" + icon_state = "materialfloor" + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + +/turf/open/floor/material/spawn_tile() + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 2f4e2e0eee..f940761ff8 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -157,7 +157,7 @@ planetary_atmos = TRUE floor_tile = null initial_gas_mix = FROZEN_ATMOS - slowdown = 1.5 //So digging it out paths are usefull. + slowdown = 1.5 //So digging it out paths are useful. bullet_sizzle = TRUE footstep = FOOTSTEP_SAND barefootstep = FOOTSTEP_SAND diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 8e0eace9cd..f26a4b827a 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -76,11 +76,15 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR) - if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow - var/obj/item/stack/tile/light/L = W - var/turf/open/floor/light/F = T - F.state = L.state + if(istype(W, /obj/item/stack/tile/material)) + var/turf/newturf = PlaceOnTop(/turf/open/floor/material, flags = CHANGETURF_INHERIT_AIR) + newturf.set_custom_materials(W.custom_materials) + else if(W.turf_type) + var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR) + if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow + var/obj/item/stack/tile/light/L = W + var/turf/open/floor/light/F = T + F.state = L.state playsound(src, 'sound/weapons/genhit.ogg', 50, 1) else to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") diff --git a/code/game/turfs/simulated/wall/material_walls.dm b/code/game/turfs/simulated/wall/material_walls.dm new file mode 100644 index 0000000000..d3952609e0 --- /dev/null +++ b/code/game/turfs/simulated/wall/material_walls.dm @@ -0,0 +1,22 @@ +/turf/closed/wall/material + name = "wall" + desc = "A huge chunk of material used to separate rooms." + icon = 'icons/turf/walls/materialwall.dmi' + icon_state = "wall" + canSmoothWith = list(/turf/closed/wall/material) + smooth = SMOOTH_TRUE + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + +/turf/closed/wall/material/break_wall() + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) + return new girder_type(src) + +/turf/closed/wall/material/devastate_wall() + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) + +/turf/closed/wall/material/mat_update_desc(mat) + desc = "A huge chunk of [mat] used to separate rooms." diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 8d5e497138..d8a7ae45f4 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -85,6 +85,9 @@ if (opacity) has_opaque_atom = TRUE + // apply materials properly from the default custom_materials value + set_custom_materials(custom_materials) + ComponentInitialize() return INITIALIZE_HINT_NORMAL diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm index 9b15729a9e..7664d85b7d 100644 --- a/code/modules/admin/chat_commands.dm +++ b/code/modules/admin/chat_commands.dm @@ -84,7 +84,7 @@ GLOBAL_LIST(round_end_notifiees) if(!SSticker.IsRoundInProgress() && SSticker.HasRoundStarted()) return "[sender.mention], the round has already ended!" LAZYINITLIST(GLOB.round_end_notifiees) - GLOB.round_end_notifiees["<@[sender.mention]>"] = TRUE + GLOB.round_end_notifiees[sender.mention] = TRUE return "I will notify [sender.mention] when the round ends." /datum/tgs_chat_command/sdql diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm index 24149e7e6c..4f518b7f8e 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm @@ -234,3 +234,7 @@ for(var/turf/T in v) . += T return pick(.) + +/proc/__nan() + var/list/L = json_decode("{\"value\":NaN}") + return L["value"] diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index b5ed6c18df..9fa8145339 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -94,6 +94,9 @@ GLOBAL_LIST_EMPTY(antagonists) if(skill_modifiers) for(var/A in skill_modifiers) ADD_SINGLETON_SKILL_MODIFIER(owner, A, type) + var/datum/skill_modifier/job/M = GLOB.skill_modifiers[GET_SKILL_MOD_ID(A, type)] + if(istype(M)) + M.name = "[name] Training" SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src) /datum/antagonist/proc/is_banned(mob/M) diff --git a/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm b/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm index 640c53946f..25de64fe34 100644 --- a/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm +++ b/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm @@ -31,10 +31,6 @@ beating = 0 var/fakingit = 0 -/obj/item/organ/heart/vampheart/prepare_eat() - ..() - // Do cool stuff for eating vamp heart? - /obj/item/organ/heart/vampheart/Restart() beating = 0 // DONT run ..(). We don't want to start beating again. return 0 diff --git a/code/modules/antagonists/bloodsucker/powers/veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm index 422d645ad2..b170b9d442 100644 --- a/code/modules/antagonists/bloodsucker/powers/veil.dm +++ b/code/modules/antagonists/bloodsucker/powers/veil.dm @@ -101,7 +101,7 @@ H.update_hair() H.update_body_parts() - // Wait here til we deactivate power or go unconscious + // Wait here until we deactivate power or go unconscious var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) while (ContinueActive(owner) && istype(bloodsuckerdatum))//active && owner && owner.stat == CONSCIOUS) bloodsuckerdatum.AddBloodVolume(-0.2) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 35639bfd97..3267f2bdc1 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -397,20 +397,31 @@ escape_objective_possible = FALSE break var/changeling_objective = rand(1,3) + var/generic_absorb_objective = FALSE + var/multiple_lings = length(get_antag_minds(/datum/antagonist/changeling,TRUE)) > 1 switch(changeling_objective) if(1) - var/datum/objective/absorb/absorb_objective = new - absorb_objective.owner = owner - absorb_objective.gen_amount_goal(6, 8) - objectives += absorb_objective + generic_absorb_objective = TRUE if(2) - var/datum/objective/absorb_changeling/ac = new - ac.owner = owner - objectives += ac + if(multiple_lings) + var/datum/objective/absorb_changeling/ac = new + ac.owner = owner + objectives += ac + else + generic_absorb_objective = TRUE if(3) - var/datum/objective/absorb_most/ac = new - ac.owner = owner - objectives += ac + if(multiple_lings) + var/datum/objective/absorb_most/ac = new + ac.owner = owner + objectives += ac + else + generic_absorb_objective = TRUE + + if(generic_absorb_objective) + var/datum/objective/absorb/absorb_objective = new + absorb_objective.owner = owner + absorb_objective.gen_amount_goal(6, 8) + objectives += absorb_objective if(prob(60)) if(prob(85)) diff --git a/code/modules/antagonists/changeling/powers/spiders.dm b/code/modules/antagonists/changeling/powers/spiders.dm index 6bd15fea92..69900ea8f9 100644 --- a/code/modules/antagonists/changeling/powers/spiders.dm +++ b/code/modules/antagonists/changeling/powers/spiders.dm @@ -1,7 +1,7 @@ /obj/effect/proc_holder/changeling/spiders name = "Spread Infestation" desc = "Our form divides, creating arachnids which will grow into deadly beasts." - helptext = "The spiders are thoughtless creatures, and may attack their creators when fully grown. Requires at least 3 DNA gained through Absorb, and not through DNA sting. This ability is very loud, and will guarantee that our blood will react violently to heat." + helptext = "The spiders are thoughtless creatures, and may attack their creators when fully grown. Requires at least 3 DNA gained through Absorb (regardless of current amount), and not through DNA sting. This ability is very loud, and will guarantee that our blood will react violently to heat." chemical_cost = 45 dna_cost = 1 loudness = 4 diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 6616eea006..8e9a54a69a 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -257,6 +257,8 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( return if (active) return //prevent the AI from activating an already active doomsday + if (owner_AI.shunted) + return //prevent AI from activating doomsday while shunted. active = TRUE set_us_up_the_bomb(owner) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index aa2ec402d8..ab043ef1c9 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -560,6 +560,27 @@ . += "You cast it [times] times.
" return . +/datum/spellbook_entry/summon/curse_of_madness + name = "Curse of Madness" + desc = "Curses the station, warping the minds of everyone inside, causing lasting traumas. Warning: this spell can affect you if not cast from a safe distance." + cost = 4 + +/datum/spellbook_entry/summon/curse_of_madness/Buy(mob/living/carbon/human/user, obj/item/spellbook/book) + SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) + active = TRUE + var/message = stripped_input(user, "Whisper a secret truth to drive your victims to madness.", "Whispers of Madness") + if(!message) + return FALSE + curse_of_madness(user, message) + to_chat(user, "You have cast the curse of insanity!") + playsound(user, 'sound/magic/mandswap.ogg', 50, 1) + return TRUE + +/datum/spellbook_entry/summon/curse_of_madness/IsAvailible() + if(!SSticker.mode) // In case spellbook is placed on map + return FALSE + return (!CONFIG_GET(flag/no_summon_traumas) && ..()) + /obj/item/spellbook name = "spell book" desc = "An unearthly tome that glows with power." diff --git a/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm index fb254a2dcc..4d2e5e6fef 100644 --- a/code/modules/arousal/genitals.dm +++ b/code/modules/arousal/genitals.dm @@ -1,7 +1,7 @@ /obj/item/organ/genital color = "#fcccb3" w_class = WEIGHT_CLASS_SMALL - organ_flags = ORGAN_NO_DISMEMBERMENT + organ_flags = ORGAN_NO_DISMEMBERMENT|ORGAN_EDIBLE var/shape var/sensitivity = 1 // wow if this were ever used that'd be cool but it's not but i'm keeping it for my unshit code var/genital_flags //see citadel_defines.dm diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 13a1803188..dad1cfef5b 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -415,7 +415,7 @@ "dna_discovered.gif" = 'html/dna_discovered.gif', "dna_undiscovered.gif" = 'html/dna_undiscovered.gif', "dna_extra.gif" = 'html/dna_extra.gif' - ) +) /datum/asset/simple/vv assets = list( diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 547f74105b..c7e2609436 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -475,43 +475,26 @@ /obj/effect/spawner/lootdrop/snowdin/dungeonlite name = "dungeon lite" - loot = list(/obj/item/melee/classic_baton = 11, - /obj/item/melee/classic_baton/telescopic = 12, - /obj/item/book/granter/spell/smoke = 10, + loot = list(/obj/item/book/granter/spell/smoke = 10, /obj/item/book/granter/spell/blind = 10, /obj/item/storage/firstaid/regular = 45, /obj/item/storage/firstaid/toxin = 35, /obj/item/storage/firstaid/brute = 27, /obj/item/storage/firstaid/fire = 27, /obj/item/storage/toolbox/syndicate = 12, - /obj/item/grenade/plastic/c4 = 7, /obj/item/grenade/clusterbuster/smoke = 15, /obj/item/clothing/under/chameleon = 13, - /obj/item/clothing/shoes/chameleon/noslip = 10, /obj/item/borg/upgrade/ddrill = 3) /obj/effect/spawner/lootdrop/snowdin/dungeonmid name = "dungeon mid" - loot = list(/obj/item/defibrillator/compact = 6, - /obj/item/storage/firstaid/tactical = 35, - /obj/item/shield/energy = 6, - /obj/item/shield/riot/tele = 12, - /obj/item/dnainjector/lasereyesmut = 7, - /obj/item/gun/magic/wand/fireball/inert = 3, + loot = list(/obj/item/shield/riot = 12, /obj/item/pneumatic_cannon = 15, - /obj/item/melee/transforming/energy/sword = 7, - /obj/item/book/granter/spell/knock = 15, - /obj/item/book/granter/spell/summonitem = 20, - /obj/item/book/granter/spell/forcewall = 17, /obj/item/storage/backpack/holding = 12, - /obj/item/grenade/spawnergrenade/manhacks = 6, - /obj/item/grenade/spawnergrenade/spesscarp = 7, - /obj/item/grenade/clusterbuster/inferno = 3, /obj/item/stack/sheet/mineral/diamond{amount = 15} = 10, /obj/item/stack/sheet/mineral/uranium{amount = 15} = 10, /obj/item/stack/sheet/mineral/plasma{amount = 15} = 10, /obj/item/stack/sheet/mineral/gold{amount = 15} = 10, - /obj/item/book/granter/spell/barnyard = 4, /obj/item/pickaxe/drill/diamonddrill = 6, /obj/item/borg/upgrade/vtec = 7, /obj/item/borg/upgrade/disablercooler = 7) @@ -519,21 +502,12 @@ /obj/effect/spawner/lootdrop/snowdin/dungeonheavy name = "dungeon heavy" - loot = list(/obj/item/singularityhammer = 25, - /obj/item/mjollnir = 10, - /obj/item/fireaxe = 25, + loot = list(/obj/item/fireaxe = 25, /obj/item/organ/brain/alien = 17, - /obj/item/dualsaber = 15, - /obj/item/organ/heart/demon = 7, - /obj/item/gun/ballistic/automatic/c20r/unrestricted = 16, - /obj/item/gun/magic/wand/resurrection/inert = 15, - /obj/item/gun/magic/wand/resurrection = 10, - /obj/item/uplink/old = 2, - /obj/item/book/granter/spell/charge = 12, - /obj/item/grenade/clusterbuster/spawner_manhacks = 15, - /obj/item/book/granter/spell/fireball = 10, + /obj/item/organ/heart/cursed = 7, + /obj/item/book/granter/spell/forcewall = 17, + /obj/item/gun/magic/wand/fireball/inert = 3, /obj/item/pickaxe/drill/jackhammer = 30, - /obj/item/borg/upgrade/syndicate = 13, /obj/item/borg/upgrade/selfrepair = 17) /obj/effect/spawner/lootdrop/snowdin/dungeonmisc diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm deleted file mode 100644 index a477a223b2..0000000000 --- a/code/modules/awaymissions/mission_code/spacebattle.dm +++ /dev/null @@ -1,51 +0,0 @@ -//Spacebattle Areas - -/area/awaymission/spacebattle - name = "Space Battle" - icon_state = "awaycontent1" - requires_power = FALSE - -/area/awaymission/spacebattle/cruiser - name = "Nanotrasen Cruiser" - icon_state = "awaycontent2" - -/area/awaymission/spacebattle/syndicate1 - name = "Syndicate Assault Ship 1" - icon_state = "awaycontent3" - -/area/awaymission/spacebattle/syndicate2 - name = "Syndicate Assault Ship 2" - icon_state = "awaycontent4" - -/area/awaymission/spacebattle/syndicate3 - name = "Syndicate Assault Ship 3" - icon_state = "awaycontent5" - -/area/awaymission/spacebattle/syndicate4 - name = "Syndicate War Sphere 1" - icon_state = "awaycontent6" - -/area/awaymission/spacebattle/syndicate5 - name = "Syndicate War Sphere 2" - icon_state = "awaycontent7" - -/area/awaymission/spacebattle/syndicate6 - name = "Syndicate War Sphere 3" - icon_state = "awaycontent8" - -/area/awaymission/spacebattle/syndicate7 - name = "Syndicate Fighter" - icon_state = "awaycontent9" - -/area/awaymission/spacebattle/secret - name = "Hidden Chamber" - icon_state = "awaycontent10" - -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, - /obj/item/gun/ballistic/automatic/c20r, - /obj/item/shield/energy) - -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle - deathmessage = "falls limp as they release their grip from the energy weapons, activating their self-destruct function!" - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm index a4632f7ed0..ffa608f8fd 100644 --- a/code/modules/cargo/bounties/science.dm +++ b/code/modules/cargo/bounties/science.dm @@ -119,7 +119,7 @@ /datum/bounty/item/science/noneactive_reactivearmor name = "Reactive Armor Shells" - description = "Do to the breakthroughs in anomalies, we can not keep up in making reactive armor shells, can you send us a few?" + description = "Due to the breakthroughs in anomalies, we can not keep up in making reactive armor shells, can you send us a few?" reward = 2000 required_count = 5 wanted_types = list(/obj/item/reactive_armour_shell, /obj/item/clothing/suit/armor/reactive) @@ -138,14 +138,14 @@ /datum/bounty/item/science/anomaly_neutralizer name = "Anomaly Neutralizers" - description = "An idea for a long time was to use an unstable Supermatter Shard to help create the breeding grounds for an unstable part of space to harvest any anomalies we want. It worked a little too well and now were out of anomaly neutralizers please send us a baker's dozen." + description = "An idea for a long time was to use an unstable Supermatter Shard to help create the breeding grounds for an unstable part of space to harvest any anomalies we want. It worked a little too well and now we're out of anomaly neutralizers, please send us a baker's dozen." reward = 2500 required_count = 13 wanted_types = list(/obj/item/anomaly_neutralizer) /datum/bounty/item/science/integrated_circuit_printer name = "Integrated Circuit Printer" - description = "due to a paperwork error, a newly made integrated circuit manufacturer line is missing three of its printers needed to operate. Until the paper work is corrected we are outsourcing this problem, so please send us three integrated circuit printers." + description = "Due to a paperwork error, a newly made integrated circuit manufacturer line is missing three of its printers needed to operate. Until the paper work is corrected we are outsourcing this problem, so please send us three integrated circuit printers." reward = 2000 required_count = 3 wanted_types = list(/obj/item/integrated_circuit_printer) @@ -159,7 +159,7 @@ /datum/bounty/item/science/nanite_trash name = "Nanite Based Gear" - description = "CC wants to make nanite based gear available to a new wing of devolvement but lacks the hand held tools to get it full up and running. Please send us any you have." + description = "CC wants to make nanite based gear available to a new wing of development but lacks the hand held tools to get it fully up and running. Please send us any you have." reward = 2500 required_count = 20 //Its just metal wanted_types = list( /obj/item/nanite_remote, /obj/item/nanite_remote/comm, /obj/item/nanite_scanner) diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 2b93a25a61..695dab8133 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -303,7 +303,7 @@ export_types = list(/obj/mecha/combat/durand) /datum/export/large/mech/phazon - cost = 35000 //Little over half do to needing a core + cost = 35000 //Little over half due to needing a core unit_name = "working phazon" export_types = list(/obj/mecha/combat/phazon) diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm index a889f0ed13..6769dfec40 100644 --- a/code/modules/cargo/exports/tools.dm +++ b/code/modules/cargo/exports/tools.dm @@ -1,5 +1,5 @@ /datum/export/tool - k_elasticity = 1/500 //Tool selling almost allways fine a target + k_elasticity = 1/500 //Tool selling almost always find a target /datum/export/tool/toolbox cost = 6 diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 39487efc54..8ae002dd2f 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -268,9 +268,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) else prefs = new /datum/preferences(src) GLOB.preferences_datums[ckey] = prefs - if(SSinput.initialized) - set_macros() - update_movement_keys(prefs) + addtimer(CALLBACK(src, .proc/ensure_keys_set), 0) //prevents possible race conditions prefs.last_ip = address //these are gonna be used for banning prefs.last_id = computer_id //these are gonna be used for banning @@ -464,6 +462,11 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) Master.UpdateTickRate() +/client/proc/ensure_keys_set() + if(SSinput.initialized) + set_macros() + update_movement_keys(prefs) + ////////////// //DISCONNECT// ////////////// diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 347a77059a..240b275084 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -162,6 +162,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE ) + var/custom_speech_verb = "default" //if your say_mod is to be something other than your races + var/custom_tongue = "default" //if your tongue is to be something other than your races var/list/custom_names = list() var/preferred_ai_core_display = "Blue" @@ -440,6 +442,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if(use_skintones || mutant_colors) dat += "" + dat += APPEARANCE_CATEGORY_COLUMN + dat += "

Speech preferences

" + dat += "Custom Speech Verb:
" + dat += "[custom_speech_verb]
" + dat += "Custom Tongue:
" + dat += "[custom_tongue]
" + if(HAIR in pref_species.species_traits) dat += APPEARANCE_CATEGORY_COLUMN @@ -2323,7 +2332,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) new_body_size = danger if(dorfy != "No") features["body_size"] = new_body_size - + if("tongue") + var/selected_custom_tongue = input(user, "Choose your desired tongue (none means your species tongue)", "Character Preference") as null|anything in GLOB.roundstart_tongues + if(selected_custom_tongue) + custom_tongue = selected_custom_tongue + if("speech_verb") + var/selected_custom_speech_verb = input(user, "Choose your desired speech verb (none means your species speech verb)", "Character Preference") as null|anything in GLOB.speech_verbs + if(selected_custom_speech_verb) + custom_speech_verb = selected_custom_speech_verb else switch(href_list["preference"]) //CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj @@ -2720,6 +2736,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.update_body_size(old_size) + //speech stuff + var/new_tongue = GLOB.roundstart_tongues[custom_tongue] + if(new_tongue) + var/obj/item/organ/tongue/T = character.getorganslot(ORGAN_SLOT_TONGUE) + if(T) + qdel(T) + var/obj/item/organ/tongue/new_custom_tongue = new new_tongue + new_custom_tongue.Insert(character) + if(custom_speech_verb != "default") + character.dna.species.say_mod = custom_speech_verb + + SEND_SIGNAL(character, COMSIG_HUMAN_PREFS_COPIED_TO, src, icon_updates, roundstart_checks) //let's be sure the character updates diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 1ec3fc6404..aa1b6f801b 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -194,7 +194,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(current_version < 31) S["wing_color"] >> features["wings_color"] S["horn_color"] >> features["horns_color"] - + if(current_version < 33) features["flavor_text"] = html_encode(features["flavor_text"]) features["silicon_flavor_text"] = html_encode(features["silicon_flavor_text"]) @@ -479,6 +479,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["backbag"] >> backbag S["jumpsuit_style"] >> jumpsuit_style S["uplink_loc"] >> uplink_spawn_loc + S["custom_speech_verb"] >> custom_speech_verb + S["custom_tongue"] >> custom_tongue S["feature_mcolor"] >> features["mcolor"] S["feature_lizard_tail"] >> features["tail_lizard"] S["feature_lizard_snout"] >> features["snout"] @@ -756,6 +758,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style) WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) WRITE_FILE(S["species"] , pref_species.id) + WRITE_FILE(S["custom_speech_verb"] , custom_speech_verb) + WRITE_FILE(S["custom_tongue"] , custom_tongue) WRITE_FILE(S["feature_mcolor"] , features["mcolor"]) WRITE_FILE(S["feature_lizard_tail"] , features["tail_lizard"]) WRITE_FILE(S["feature_human_tail"] , features["tail_human"]) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 8f852356b7..662318fb82 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -244,7 +244,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix /obj/item/clothing/head/helmet/skull name = "skull helmet" diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 201c9e0bea..73675257e4 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -437,3 +437,12 @@ item_state = "hunter" armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/kepi + name = "kepi" + desc = "A white cap with visor. Oui oui, mon capitane!" + icon_state = "kepi" + +/obj/item/clothing/head/kepi/old + icon_state = "kepi_old" + desc = "A flat, white circular cap with a visor, that demands some honor from it's wearer." diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 5582947732..723fb93b78 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -238,7 +238,7 @@ item_state = "foilhat" armor = list("melee" = 0, "bullet" = 0, "laser" = -5,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = -5, "fire" = 0, "acid" = 0) equip_delay_other = 140 - var/datum/brain_trauma/mild/phobia/paranoia + var/datum/brain_trauma/mild/phobia/conspiracies/paranoia var/warped = FALSE clothing_flags = IGNORE_HAT_TOSS @@ -255,7 +255,8 @@ return if(paranoia) QDEL_NULL(paranoia) - paranoia = new("conspiracies") + paranoia = new() + paranoia.clonable = FALSE user.gain_trauma(paranoia, TRAUMA_RESILIENCE_MAGIC) to_chat(user, "As you don the foiled hat, an entire world of conspiracy theories and seemingly insane ideas suddenly rush into your mind. What you once thought unbelievable suddenly seems.. undeniable. Everything is connected and nothing happens just by accident. You know too much and now they're out to get you. ") diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 802dd7265e..447a531717 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -18,6 +18,7 @@ mutantrace_variation = STYLE_DIGITIGRADE var/last_bloodtype = "" //used to track the last bloodtype to have graced these shoes; makes for better performing footprint shenanigans var/last_blood_DNA = "" //same as last one + var/last_blood_color = "" /obj/item/clothing/shoes/ComponentInitialize() . = ..() @@ -48,6 +49,7 @@ if(blood_dna.len) last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works last_blood_DNA = blood_dna[blood_dna.len] + last_blood_color = blood_dna["color"] /obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 557b4860c9..0ef1a83bf5 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -286,7 +286,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix /obj/item/clothing/suit/armor/vest/durathread name = "makeshift vest" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index f0e01beddc..05abed603c 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -537,7 +537,7 @@ /obj/item/clothing/suit/hooded/wintercoat/captain name = "captain's winter coat" - desc = "A luxuriant winter coat, stuffed with the down of the endangered Uka bird and trimmed with genuine sable. The fabric is an indulgently soft micro-fiber, and the deep ultramarine color is only one that could be achieved with minute amounts of crystalline bluespace dust woven into the thread between the plectrums. Extremely lavish, and extremely durable. The tiny flakes of protective material make it nothing short of extremely light lamellar armor." + desc = "A luxurious winter coat, stuffed with the down of the endangered Uka bird and trimmed with genuine sable. The fabric is an indulgently soft micro-fiber, and the deep ultramarine color is only one that could be achieved with minute amounts of crystalline bluespace dust woven into the thread between the plectrums. Extremely lavish, and extremely durable. The tiny flakes of protective material make it nothing short of extremely light lamellar armor." icon_state = "coatcaptain" item_state = "coatcaptain" armor = list("melee" = 25, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) @@ -565,7 +565,7 @@ /obj/item/clothing/suit/hooded/wintercoat/security name = "security winter coat" - desc = "A red, armor-padded winter coat. It glitters with a mild ablative coating and a robust air of authority. The zipper tab is a pair of jingly little handcuffs and got annoying after the first ten seconds." + desc = "A red, armor-padded winter coat. It glitters with a mild ablative coating and a robust air of authority. The zipper tab is a pair of jingly little handcuffs that get annoying after the first ten seconds." icon_state = "coatsecurity" item_state = "coatsecurity" armor = list("melee" = 25, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index a8ab470d5d..b88bef1c87 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -17,9 +17,9 @@ var/holidayID = "" //string which should be in the SSeventss.holidays list if you wish this event to be holiday-specific //anything with a (non-null) holidayID which does not match holiday, cannot run. - var/wizardevent = 0 - - var/alertadmins = 1 //should we let the admins know this event is firing + var/wizardevent = FALSE + var/random = FALSE //If the event has occured randomly, or if it was forced by an admin or in-game occurance + var/alert_observers = TRUE //should we let the ghosts and admins know this event is firing //should be disabled on events that fire a lot var/list/gamemode_blacklist = list() // Event won't happen in these gamemodes @@ -33,7 +33,7 @@ min_players = CEILING(min_players * CONFIG_GET(number/events_min_players_mul), 1) /datum/round_event_control/wizard - wizardevent = 1 + wizardevent = TRUE var/can_be_midround_wizard = TRUE // Checks if the event can be spawned. Used by event controller and "false alarm" event. @@ -67,7 +67,7 @@ return EVENT_CANT_RUN triggering = TRUE - if (alertadmins) + if (alert_observers) message_admins("Random Event triggering in 10 seconds: [name] (CANCEL)") sleep(100) var/gamemode = SSticker.mode.config_tag @@ -92,7 +92,7 @@ log_admin_private("[key_name(usr)] cancelled event [name].") SSblackbox.record_feedback("tally", "event_admin_cancelled", 1, typepath) -/datum/round_event_control/proc/runEvent(random) +/datum/round_event_control/proc/runEvent() var/datum/round_event/E = new typepath() E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) E.control = src @@ -101,10 +101,9 @@ testing("[time2text(world.time, "hh:mm:ss")] [E.type]") if(random) - if(alertadmins) - deadchat_broadcast("[name] has just been randomly triggered!") //STOP ASSUMING IT'S BADMINS! log_game("Random Event triggering: [name] ([typepath])") - + if (alert_observers) + deadchat_broadcast("[name] has just been[random ? " randomly" : ""] triggered!") //STOP ASSUMING IT'S BADMINS! return E //Special admins setup @@ -140,6 +139,17 @@ /datum/round_event/proc/start() return +/** + * Called after something followable has been spawned by an event + * Provides ghosts a follow link to an atom if possible + * Only called once. + */ +/datum/round_event/proc/announce_to_ghosts(atom/atom_of_interest) + if(control.alert_observers) + if (atom_of_interest) + notify_ghosts("[control.name] has an object of interest: [atom_of_interest]!", source=atom_of_interest, action=NOTIFY_ORBIT, header="Something's Interesting!") + return + //Called when the tick is equal to the announceWhen variable. //Allows you to announce before starting or vice versa. //Only called once. diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm index d8122eac75..394294db37 100644 --- a/code/modules/events/anomaly.dm +++ b/code/modules/events/anomaly.dm @@ -8,7 +8,7 @@ /datum/round_event/anomaly var/area/impact_area - var/obj/effect/anomaly/newAnomaly + var/obj/effect/anomaly/anomaly_path = /obj/effect/anomaly/flux announceWhen = 1 @@ -27,7 +27,7 @@ //Subtypes from the above that actually should explode. var/list/unsafe_area_subtypes = typecacheof(list(/area/engine/break_room)) - + allowed_areas = make_associative(GLOB.the_station_areas) - safe_area_types + unsafe_area_subtypes return safepick(typecache_filter_list(GLOB.sortedAreas,allowed_areas)) @@ -44,6 +44,9 @@ priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") /datum/round_event/anomaly/start() - var/turf/T = safepick(get_area_turfs(impact_area)) + var/turf/T = pick(get_area_turfs(impact_area)) + var/newAnomaly if(T) - newAnomaly = new /obj/effect/anomaly/flux(T) \ No newline at end of file + newAnomaly = new anomaly_path(T) + if (newAnomaly) + announce_to_ghosts(newAnomaly) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index a6a0effa2b..395b3b88a5 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -1,6 +1,7 @@ /datum/round_event_control/anomaly/anomaly_bluespace name = "Anomaly: Bluespace" typepath = /datum/round_event/anomaly/anomaly_bluespace + max_occurrences = 1 weight = 5 gamemode_blacklist = list("dynamic") @@ -8,15 +9,10 @@ /datum/round_event/anomaly/anomaly_bluespace startWhen = 3 announceWhen = 10 - + anomaly_path = /obj/effect/anomaly/bluespace /datum/round_event/anomaly/anomaly_bluespace/announce(fake) if(prob(90)) priority_announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Unstable bluespace anomaly") - -/datum/round_event/anomaly/anomaly_bluespace/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/bluespace(T) diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index f4c78c0ec4..a9a7ed50b9 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -10,14 +10,10 @@ /datum/round_event/anomaly/anomaly_flux startWhen = 10 announceWhen = 3 + anomaly_path = /obj/effect/anomaly/flux /datum/round_event/anomaly/anomaly_flux/announce(fake) if(prob(90)) priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].","Localized hyper-energetic flux wave") - -/datum/round_event/anomaly/anomaly_flux/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/flux(T) diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index 8500b44597..cabd7face8 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -1,6 +1,7 @@ /datum/round_event_control/anomaly/anomaly_grav name = "Anomaly: Gravitational" typepath = /datum/round_event/anomaly/anomaly_grav + max_occurrences = 5 weight = 20 gamemode_blacklist = list("dynamic") @@ -9,14 +10,10 @@ /datum/round_event/anomaly/anomaly_grav startWhen = 3 announceWhen = 20 + anomaly_path = /obj/effect/anomaly/grav /datum/round_event/anomaly/anomaly_grav/announce(fake) if(prob(90)) priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Gravitational anomaly") - -/datum/round_event/anomaly/anomaly_grav/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/grav(T) diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 9594727784..8c8fbd6d36 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -1,6 +1,7 @@ /datum/round_event_control/anomaly/anomaly_pyro name = "Anomaly: Pyroclastic" typepath = /datum/round_event/anomaly/anomaly_pyro + max_occurrences = 5 weight = 20 gamemode_blacklist = list("dynamic") @@ -8,14 +9,10 @@ /datum/round_event/anomaly/anomaly_pyro startWhen = 3 announceWhen = 10 + anomaly_path = /obj/effect/anomaly/pyro /datum/round_event/anomaly/anomaly_pyro/announce(fake) if(prob(90)) priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Pyroclastic anomaly") - -/datum/round_event/anomaly/anomaly_pyro/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/pyro(T) diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index f6eaea40d5..96d084873d 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -10,14 +10,10 @@ /datum/round_event/anomaly/anomaly_vortex startWhen = 10 announceWhen = 3 + anomaly_path = /obj/effect/anomaly/bhole /datum/round_event/anomaly/anomaly_vortex/announce(fake) if(prob(90)) priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") else print_command_report("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name].","Vortex anomaly") - -/datum/round_event/anomaly/anomaly_vortex/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/bhole(T) diff --git a/code/modules/events/brain_trauma.dm b/code/modules/events/brain_trauma.dm index 9e8c7e483e..3e8182a827 100644 --- a/code/modules/events/brain_trauma.dm +++ b/code/modules/events/brain_trauma.dm @@ -30,4 +30,4 @@ BRAIN_TRAUMA_SPECIAL = 10 )) - H.gain_trauma_type(trauma_type, resistance) \ No newline at end of file + H.gain_trauma_type(trauma_type, resistance) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index e61af1368d..da5b4c0cb2 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -54,6 +54,7 @@ vendingMachines.Remove(originMachine) originMachine.shut_up = 0 originMachine.shoot_inventory = 1 + announce_to_ghosts(originMachine) /datum/round_event/brand_intelligence/tick() diff --git a/code/modules/events/camerafailure.dm b/code/modules/events/camerafailure.dm index e8556e9118..8d7ef3204c 100644 --- a/code/modules/events/camerafailure.dm +++ b/code/modules/events/camerafailure.dm @@ -3,7 +3,7 @@ typepath = /datum/round_event/camera_failure weight = 100 max_occurrences = 20 - alertadmins = 0 + alert_observers = FALSE /datum/round_event/camera_failure fakeable = FALSE diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index e6cb043165..2c553fc8a7 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -10,6 +10,7 @@ /datum/round_event/carp_migration announceWhen = 3 startWhen = 50 + var/hasAnnounced = FALSE /datum/round_event/carp_migration/setup() startWhen = rand(40, 60) @@ -22,10 +23,16 @@ /datum/round_event/carp_migration/start() + var/mob/living/simple_animal/hostile/carp/fish for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list) if(prob(95)) - new /mob/living/simple_animal/hostile/carp(C.loc) + fish = new (C.loc) else - new /mob/living/simple_animal/hostile/carp/megacarp(C.loc) - + fish = new /mob/living/simple_animal/hostile/carp/megacarp(C.loc) + fishannounce(fish) //Prefer to announce the megacarps over the regular fishies + fishannounce(fish) +/datum/round_event/carp_migration/proc/fishannounce(atom/fish) + if (!hasAnnounced) + announce_to_ghosts(fish) //Only anounce the first fish + hasAnnounced = TRUE diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index 802736d5d4..860685c787 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -4,7 +4,7 @@ weight = 200 max_occurrences = 1000 earliest_start = 0 MINUTES - alertadmins = 0 + alert_observers = FALSE gamemode_blacklist = list("dynamic") /datum/round_event/space_dust diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 6e6abb1cd4..5e5e318e3c 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -4,7 +4,7 @@ earliest_start = 10 MINUTES min_players = 5 weight = 40 - alertadmins = 0 + alert_observers = FALSE gamemode_blacklist = list("dynamic") /datum/round_event/electrical_storm diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm index e50d89a3a3..ae1d1320a5 100644 --- a/code/modules/events/ghost_role.dm +++ b/code/modules/events/ghost_role.dm @@ -37,7 +37,10 @@ signing up.") else if(status == SUCCESSFUL_SPAWN) message_admins("[role_name] spawned successfully.") - if(!spawned_mobs.len) + if(spawned_mobs.len) + for(var/mob/M in spawned_mobs) + announce_to_ghosts(M) + else message_admins("No mobs found in the `spawned_mobs` list, this is \ a bug.") else diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm index a47a8b81b4..b3bc571a4a 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -20,4 +20,4 @@ var/mob/living/carbon/human/winner = pickweight(heart_attack_contestants) var/datum/disease/D = new /datum/disease/heart_failure() winner.ForceContractDisease(D, FALSE, TRUE) - notify_ghosts("[winner] is beginning to have a heart attack!", enter_link="(Click to orbit)", source=winner, action=NOTIFY_ORBIT) + announce_to_ghosts(winner) \ No newline at end of file diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index d4f51e995e..0ace65ffd3 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -35,7 +35,8 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 var/z = pick(SSmapping.levels_by_trait(ZTRAIT_STATION)) var/turf/startT = spaceDebrisStartLoc(startside, z) var/turf/endT = spaceDebrisFinishLoc(startside, z) - new /obj/effect/immovablerod(startT, endT, C.special_target) + var/atom/rod = new /obj/effect/immovablerod(startT, endT, C.special_target) + announce_to_ghosts(rod) /obj/effect/immovablerod name = "immovable rod" @@ -61,10 +62,6 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 z_original = z destination = end special_target = aimed_at - if(notify) - notify_ghosts("\A [src] is inbound!", - enter_link="(Click to orbit)", - source=src, action=NOTIFY_ORBIT) GLOB.poi_list += src var/special_target_valid = FALSE diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index b0b12f3944..fd3a189eb3 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -80,8 +80,9 @@ var/mob/M = candidates[1] spawner.create(M.ckey) candidates -= M + announce_to_ghosts(M) else - notify_ghosts("Space pirates are waking up!", source = spawner, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) + announce_to_ghosts(spawner) priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", "commandreport") //CITADEL EDIT also metabreak here too diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm index cf6223bf0d..22e475a8ef 100644 --- a/code/modules/events/processor_overload.dm +++ b/code/modules/events/processor_overload.dm @@ -30,6 +30,7 @@ /datum/round_event/processor_overload/start() for(var/obj/machinery/telecomms/processor/P in GLOB.telecomms_list) if(prob(10)) + announce_to_ghosts(P) // Damage the surrounding area to indicate that it popped explosion(get_turf(P), 0, 0, 2) // Only a level 1 explosion actually damages the machine diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 85bcf4959d..c592e06e0e 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -383,7 +383,9 @@ /datum/spacevine_controller/New(turf/location, list/muts, potency, production, datum/round_event/event = null) vines = list() growth_queue = list() - spawn_spacevine_piece(location, null, muts) + var/obj/structure/spacevine/SV = spawn_spacevine_piece(location, null, muts) + if (event) + event.announce_to_ghosts(SV) START_PROCESSING(SSobj, src) vine_mutations_list = list() init_subtypes(/datum/spacevine_mutation/, vine_mutations_list) diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index 2cba5fc529..d1c327e0f7 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -35,6 +35,6 @@ var/spawn_type = /obj/structure/spider/spiderling if(prob(66)) spawn_type = /obj/structure/spider/spiderling/nurse - spawn_atom_to_turf(spawn_type, vent, 1, FALSE) + announce_to_ghosts(spawn_atom_to_turf(spawn_type, vent, 1, FALSE)) vents -= vent spawncount-- diff --git a/code/modules/events/stray_cargo.dm b/code/modules/events/stray_cargo.dm index 43c51fd5c8..02d02a8510 100644 --- a/code/modules/events/stray_cargo.dm +++ b/code/modules/events/stray_cargo.dm @@ -85,8 +85,8 @@ /datum/round_event_control/stray_cargo/syndicate name = "Stray Syndicate Cargo Pod" typepath = /datum/round_event/stray_cargo/syndicate - weight = 6 - max_occurrences = 1 + weight = 0 + max_occurrences = 0 earliest_start = 30 MINUTES /datum/round_event/stray_cargo/syndicate diff --git a/code/modules/events/wizard/madness.dm b/code/modules/events/wizard/madness.dm new file mode 100644 index 0000000000..ac86236623 --- /dev/null +++ b/code/modules/events/wizard/madness.dm @@ -0,0 +1,28 @@ +/datum/round_event_control/wizard/madness + name = "Curse of Madness" + weight = 1 + typepath = /datum/round_event/wizard/madness + earliest_start = 0 MINUTES + + var/forced_secret + +/datum/round_event_control/wizard/madness/admin_setup() + if(!check_rights(R_FUN)) + return + + var/suggested = pick(strings(REDPILL_FILE, "redpill_questions")) + + forced_secret = (input(usr, "What horrifying truth will you reveal?", "Curse of Madness", sortList(suggested)) as text|null) || suggested + +/datum/round_event/wizard/madness/start() + var/datum/round_event_control/wizard/madness/C = control + + var/horrifying_truth + + if(C.forced_secret) + horrifying_truth = C.forced_secret + C.forced_secret = null + else + horrifying_truth = pick(strings(REDPILL_FILE, "redpill_questions")) + + curse_of_madness(null, horrifying_truth) diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 43c3337a4b..860d3898f2 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -1,7 +1,3 @@ -/mob/living/carbon/proc/handle_dreams() - if(prob(10) && !dreaming) - dream() - /mob/living/carbon/proc/dream() set waitfor = FALSE var/list/dream_fragments = list() diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 7361e50606..8e5069925f 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -94,7 +94,7 @@ list_reagents = list(/datum/reagent/consumable/nuka_cola = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb - name = "Syndicat Bomb" + name = "Syndicate Bomb" list_reagents = list(/datum/reagent/consumable/ethanol/syndicatebomb = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 203eb3eef6..f83a1222fd 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -6,7 +6,6 @@ /// get_random_food proc. //////////////////////////////////////////////////////////////////////////////// -#define STOP_SERVING_BREAKFAST (15 MINUTES) /obj/item/reagent_containers/food possible_transfer_amounts = list() @@ -51,5 +50,3 @@ if((foodtype & BREAKFAST) && world.time - SSticker.round_start_time < STOP_SERVING_BREAKFAST) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "breakfast", /datum/mood_event/breakfast) last_check_time = world.time - -#undef STOP_SERVING_BREAKFAST diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index ccac1d4a77..900fc99171 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -303,12 +303,12 @@ All foods are distributed among various categories. Use common sense. var/obj/item/result if(cooked_type) result = new cooked_type(T) - //if the result is food, set its food quality to the original food item's quality - if(isfood(result)) - var/obj/item/reagent_containers/food/food_output = result - food_output.adjust_food_quality(food_quality + M.quality_increase) if(istype(M)) initialize_cooked_food(result, M.efficiency) + //if the result is food, set its food quality to the original food item's quality + if(isfood(result)) + var/obj/item/reagent_containers/food/food_output = result + food_output.adjust_food_quality(food_quality + M.quality_increase) else initialize_cooked_food(result, 1) SSblackbox.record_feedback("tally", "food_made", 1, result.type) diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index b8fa64a7bc..a35dcc1dc4 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -1,6 +1,7 @@ /obj/item/reagent_containers/food/snacks/meat var/subjectname = "" var/subjectjob = null + custom_materials = list(/datum/material/meat = MINERAL_MATERIAL_AMOUNT * 4) /obj/item/reagent_containers/food/snacks/meat/slab name = "meat" diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index f2253ee760..1117dbc3d3 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -312,7 +312,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake name = "pound cake" desc = "A condensed cake made for filling people up quickly." icon_state = "pound_cake" - slices_num = 7 //Its ment to feed the party + slices_num = 7 //Its meant to feed the party slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice bonus_reagents = list(/datum/reagent/consumable/nutriment = 60) tastes = list("cake" = 5, "sweetness" = 1, "batter" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index b699477245..39c9c6c04f 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -91,7 +91,7 @@ icon = 'icons/obj/food/snowcones.dmi' icon_state = "flavorless_sc" trash = /obj/item/reagent_containers/food/drinks/sillycup //We dont eat paper cups - bonus_reagents = list(/datum/reagent/water = 10) //Base line will allways give water + bonus_reagents = list(/datum/reagent/water = 10) //Base line will always give water list_reagents = list(/datum/reagent/water = 1) // We dont get food for water/juices filling_color = "#FFFFFF" //Ice is white tastes = list("ice" = 1, "water" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index ebc67a28c1..f30c182963 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -10,6 +10,17 @@ tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1) foodtype = GRAIN | DAIRY | VEGETABLES +/obj/item/reagent_containers/food/snacks/pizzaslice/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/kitchen/rollingpin)) + if(!isturf(loc)) + to_chat(user, "You need to put [src] on a surface to roll it out!") + return + new /obj/item/stack/sheet/pizza(loc) + to_chat(user, "You smoosh [src] into a cheesy sheet.") + qdel(src) + return + return ..() + /obj/item/reagent_containers/food/snacks/pizzaslice icon = 'icons/obj/food/pizzaspaghetti.dmi' list_reagents = list(/datum/reagent/consumable/nutriment = 5) diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm index 48990d88c9..de27d1eed7 100644 --- a/code/modules/hydroponics/grown/tea_coffee.dm +++ b/code/modules/hydroponics/grown/tea_coffee.dm @@ -48,7 +48,7 @@ /obj/item/seeds/tea/catnip name = "pack of catnip seeds" icon_state = "seed-catnip" - desc = "Long stocks with flowering tips that has a chemical to make feline attracted to it." + desc = "Long stocks with flowering tips that contain a chemical to make felines attracted to it." species = "catnip" plantname = "Catnip Plant" growthstages = 3 diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index 91cdea1246..eac16d2950 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -78,7 +78,7 @@ for(var/i in 1 to length(harvest_output)) harvest_output[i] = WEAKREF(harvest_output[i]) - if(harvest_output.len) + if(length(harvest_output)) set_pin_data(IC_OUTPUT, 1, harvest_output) push_data() if(1) diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm index 80c56d90c2..950525ab7f 100644 --- a/code/modules/integrated_electronics/subtypes/weaponized.dm +++ b/code/modules/integrated_electronics/subtypes/weaponized.dm @@ -81,7 +81,7 @@ to_chat(user, "There's no weapon to remove from the mechanism.") /obj/item/integrated_circuit/weaponized/weapon_firing/do_work() - if(!assembly || !installed_gun) + if(!assembly || !installed_gun || !installed_gun.can_shoot()) return if(isliving(assembly.loc)) var/mob/living/L = assembly.loc diff --git a/code/modules/keybindings/bindings_client.dm b/code/modules/keybindings/bindings_client.dm index b4940e0085..3a47cd2315 100644 --- a/code/modules/keybindings/bindings_client.dm +++ b/code/modules/keybindings/bindings_client.dm @@ -91,6 +91,11 @@ if(!(next_move_dir_add & movement)) next_move_dir_sub |= movement + if(prefs.modless_key_bindings[_key]) + var/datum/keybinding/kb = GLOB.keybindings_by_name[prefs.modless_key_bindings[_key]] + if(kb.can_use(src)) + kb.up(src) + // We don't do full key for release, because for mod keys you // can hold different keys and releasing any should be handled by the key binding specifically for (var/kb_name in prefs.key_bindings[_key]) diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 439929b9c1..1de3a86702 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -111,9 +111,6 @@ go_inert() return ..() -/obj/item/organ/regenerative_core/prepare_eat() - return null - /*************************Legion core********************/ /obj/item/organ/regenerative_core/legion desc = "A strange rock that crackles with power. It can be used to heal completely, but it will rapidly decay into uselessness." diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 02410960e7..b3462773d8 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -17,7 +17,6 @@ var/points = 0 //How many points this ore gets you from the ore redemption machine var/refined_type = null //What this ore defaults to being refined into novariants = TRUE // Ore stacks handle their icon updates themselves to keep the illusion that there's more going - mats_per_stack = MINERAL_MATERIAL_AMOUNT var/list/stack_overlays /obj/item/stack/ore/update_overlays() @@ -339,7 +338,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ throwforce = 2 w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/iron = 400) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS var/string_attached var/list/sideslist = list("heads","tails") var/cooldown = 0 diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 36babd9b95..6888a6590f 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -412,6 +412,8 @@ give_guns(humanc) if(GLOB.summon_magic_triggered) give_magic(humanc) + if(GLOB.curse_of_madness_triggered) + give_madness(humanc, GLOB.curse_of_madness_triggered) GLOB.joined_player_list += character.ckey GLOB.latejoiners += character diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 612358e802..8ca4e6a0e4 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -188,7 +188,7 @@ blood_data["viruses"] += D.Copy() blood_data["blood_DNA"] = dna.unique_enzymes - blood_data["bloodcolor"] = bloodtype_to_color(dna.blood_type) + blood_data["bloodcolor"] = dna.species.exotic_blood_color if(disease_resistances && disease_resistances.len) blood_data["resistances"] = disease_resistances.Copy() var/list/temp_chem = list() diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 08d415fc3c..be03827695 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -100,3 +100,9 @@ client.mouse_pointer_icon = M.mouse_pointer if (client && ranged_ability && ranged_ability.ranged_mousepointer) client.mouse_pointer_icon = ranged_ability.ranged_mousepointer + +/mob/living/brain/proc/get_traumas() + . = list() + if(istype(loc, /obj/item/organ/brain)) + var/obj/item/organ/brain/B = loc + . = B.traumas diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 687442c1f8..4fda02317e 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -76,9 +76,6 @@ REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, C) C.update_hair() -/obj/item/organ/brain/prepare_eat() - return // Too important to eat. - /obj/item/organ/brain/proc/transfer_identity(mob/living/L) name = "[L.name]'s brain" if(brainmob) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 8485fece85..8e3966eb03 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -1,7 +1,8 @@ /obj/item/organ/alien icon_state = "xgibmid2" + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/acid = 10) var/list/alien_powers = list() - organ_flags = ORGAN_NO_SPOIL + organ_flags = ORGAN_NO_SPOIL|ORGAN_EDIBLE /obj/item/organ/alien/Initialize() . = ..() @@ -26,12 +27,6 @@ owner.RemoveAbility(P) ..() -/obj/item/organ/alien/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/toxin/acid, 10) - return S - - /obj/item/organ/alien/plasmavessel name = "plasma vessel" icon_state = "plasma" @@ -39,17 +34,13 @@ zone = BODY_ZONE_CHEST slot = "plasmavessel" alien_powers = list(/obj/effect/proc_holder/alien/plant, /obj/effect/proc_holder/alien/transfer) + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/plasma = 10) var/storedPlasma = 100 var/max_plasma = 250 var/heal_rate = 5 var/plasma_rate = 10 -/obj/item/organ/alien/plasmavessel/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/toxin/plasma, storedPlasma/10) - return S - /obj/item/organ/alien/plasmavessel/large name = "large plasma vessel" icon_state = "plasma_large" diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 9bb50bdf42..bb92eb79bd 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -4,6 +4,7 @@ name = "alien embryo" icon = 'icons/mob/alien.dmi' icon_state = "larva0_dead" + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/acid = 10) var/stage = 0 var/bursting = FALSE @@ -16,11 +17,6 @@ if(prob(10)) AttemptGrow(0) -/obj/item/organ/body_egg/alien_embryo/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/toxin/acid, 10) - return S - /obj/item/organ/body_egg/alien_embryo/on_life() . = ..() if(!owner) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 7ce0fd38da..bfa9c40a7c 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -76,7 +76,7 @@ if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) affecting = bodyparts[1] SEND_SIGNAL(I, COMSIG_ITEM_ATTACK_ZONE, src, user, affecting) - send_item_attack_message(I, user, affecting.name) + send_item_attack_message(I, user, affecting.name, totitemdamage) I.do_stagger_action(src, user, totitemdamage) if(I.force) apply_damage(totitemdamage, I.damtype, affecting) //CIT CHANGE - replaces I.force with totitemdamage diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index b5835aef52..becff250b9 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -265,46 +265,3 @@ if(update) update_damage_overlays() update_stamina() - -/* TO_REMOVE -/mob/living/carbon/getOrganLoss(ORGAN_SLOT_BRAIN) - . = 0 - var/obj/item/organ/brain/B = getorganslot(ORGAN_SLOT_BRAIN) - if(B) - . = B.get_brain_damage() - -//Some sources of brain damage shouldn't be deadly -/mob/living/carbon/adjustOrganLoss(ORGAN_SLOT_BRAIN, amount, maximum = BRAIN_DAMAGE_DEATH) - if(status_flags & GODMODE) - return FALSE - var/prev_brainloss = getOrganLoss(ORGAN_SLOT_BRAIN) - var/obj/item/organ/brain/B = getorganslot(ORGAN_SLOT_BRAIN) - if(!B) - return - B.adjust_brain_damage(amount, maximum) - if(amount <= 0) //cut this early - return - var/brainloss = getOrganLoss(ORGAN_SLOT_BRAIN) - if(brainloss > BRAIN_DAMAGE_MILD) - if(prob(amount * ((2 * (100 + brainloss - BRAIN_DAMAGE_MILD)) / 100))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 2% - gain_trauma_type(BRAIN_TRAUMA_MILD) - if(brainloss > BRAIN_DAMAGE_SEVERE) - if(prob(amount * ((2 * (100 + brainloss - BRAIN_DAMAGE_SEVERE)) / 100))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 2% - if(prob(20)) - gain_trauma_type(BRAIN_TRAUMA_SPECIAL) - else - gain_trauma_type(BRAIN_TRAUMA_SEVERE) - - if(prev_brainloss < BRAIN_DAMAGE_MILD && brainloss >= BRAIN_DAMAGE_MILD) - to_chat(src, "You feel lightheaded.") - else if(prev_brainloss < BRAIN_DAMAGE_SEVERE && brainloss >= BRAIN_DAMAGE_SEVERE) - to_chat(src, "You feel less in control of your thoughts.") - else if(prev_brainloss < (BRAIN_DAMAGE_DEATH - 20) && brainloss >= (BRAIN_DAMAGE_DEATH - 20)) - to_chat(src, "You can feel your mind flickering on and off...") - -/mob/living/carbon/setBrainLoss(amount) - var/obj/item/organ/brain/B = getorganslot(ORGAN_SLOT_BRAIN) - if(B) - var/adjusted_amount = amount - B.get_brain_damage() - B.adjust_brain_damage(adjusted_amount, null) -*/ diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 4421c383e6..4166069833 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -982,7 +982,7 @@ if(target.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) target.visible_message("[target] can't hang onto [src]!") return - buckle_mob(target, TRUE, TRUE, FALSE, 0, 2, FALSE) + buckle_mob(target, TRUE, TRUE, FALSE, 1, 2, FALSE) else visible_message("[target] fails to climb onto [src]!") else diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 63ca3f372e..ec19cec055 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -77,7 +77,7 @@ var/turf/T = get_turf(src) if(S.bloody_shoes && S.bloody_shoes[S.blood_state]) var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints) in T - if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == bloodtype_to_color(S.last_bloodtype))) + if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == S.last_blood_color)) return S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP) var/obj/effect/decal/cleanable/blood/footprints/FP = new /obj/effect/decal/cleanable/blood/footprints(T) @@ -86,6 +86,7 @@ FP.bloodiness = S.bloody_shoes[S.blood_state] if(S.last_bloodtype) FP.blood_DNA += list(S.last_blood_DNA = S.last_bloodtype) + FP.blood_DNA["color"] += S.last_blood_color FP.update_icon() update_inv_shoes() //End bloody footprints diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index f256345c68..65313dbc37 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -39,6 +39,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/use_skintones = NO_SKINTONES // does it use skintones or not? (spoiler alert this is only used by humans) var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id. var/exotic_bloodtype = "" //If your race uses a non standard bloodtype (A+, O-, AB-, etc) + var/exotic_blood_color = BLOOD_COLOR_HUMAN //assume human as the default blood colour, override this default by species subtypes var/meat = /obj/item/reagent_containers/food/snacks/meat/slab/human //What the species drops on gibbing var/list/gib_types = list(/obj/effect/gibspawner/human, /obj/effect/gibspawner/human/bodypartless) var/skinned_type @@ -1726,7 +1727,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/weakness = H.check_weakness(I, user) apply_damage(totitemdamage * weakness, I.damtype, def_zone, armor_block, H) //CIT CHANGE - replaces I.force with totitemdamage - H.send_item_attack_message(I, user, hit_area) + H.send_item_attack_message(I, user, hit_area, totitemdamage) I.do_stagger_action(H, user, totitemdamage) diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 595a83de9b..a79f9e2392 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -15,6 +15,7 @@ disliked_food = TOXIC icon_limbs = DEFAULT_BODYPART_ICON_CITADEL exotic_bloodtype = "BUG" + exotic_blood_color = BLOOD_COLOR_BUG /datum/species/insect/spec_death(gibbed, mob/living/carbon/human/H) if(H) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index bc5f198b4d..7ca057711e 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -89,11 +89,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // //These count in on_life ticks which should be 2 seconds per every increment of 1 in a perfect world. var/dwarf_eth_ticker = 0 //Currently set =< 1, that means this will fire the proc around every 2 seconds var/last_alcohol_spam - -/obj/item/organ/dwarfgland/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/consumable/ethanol, stored_alcohol/10) - return S + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/ethanol = 10) /obj/item/organ/dwarfgland/on_life() //Primary loop to hook into to start delayed loops for other loops.. . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index ee4ef83a44..dbf097196d 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -11,6 +11,7 @@ disliked_food = null liked_food = GROSS exotic_bloodtype = "BUG" + exotic_blood_color = BLOOD_COLOR_BUG /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(istype(chem, /datum/reagent/toxin/pestkiller)) diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 94d5456c3d..96efaebd74 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -20,6 +20,7 @@ mutanteyes = /obj/item/organ/eyes/ipc exotic_bloodtype = "HF" + exotic_blood_color = BLOOD_COLOR_OIL var/datum/action/innate/monitor_change/screen diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index f76aa0854e..8eca716a6a 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -13,6 +13,7 @@ gib_types = list(/obj/effect/gibspawner/slime, /obj/effect/gibspawner/slime/bodypartless) exotic_blood = /datum/reagent/blood/jellyblood exotic_bloodtype = "GEL" + exotic_blood_color = "BLOOD_COLOR_SLIME" damage_overlay_type = "" var/datum/action/innate/regenerate_limbs/regenerate_limbs var/datum/action/innate/slime_change/slime_change //CIT CHANGE @@ -41,6 +42,11 @@ slime_change.Grant(C) //CIT CHANGE C.faction |= "slime" +/datum/species/jelly/handle_body(mob/living/carbon/human/H) + . = ..() + //update blood color to body color + exotic_blood_color = "#" + H.dna.features["mcolor"] + /datum/species/jelly/spec_life(mob/living/carbon/human/H) if(H.stat == DEAD || HAS_TRAIT(H, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for blooduskers return @@ -468,6 +474,7 @@ if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright H.dna.features["mcolor"] = sanitize_hexcolor(new_color, 6) H.update_body() + H.update_hair() else to_chat(H, "Invalid color. Your color is not bright enough.") else if(select_alteration == "Hair Style") @@ -533,7 +540,7 @@ H.update_body() else if (select_alteration == "Markings") - var/list/snowflake_markings_list = list() + var/list/snowflake_markings_list = list("None") for(var/path in GLOB.mam_body_markings_list) var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[path] if(istype(instance, /datum/sprite_accessory)) @@ -544,8 +551,6 @@ new_mam_body_markings = input(H, "Choose your character's body markings:", "Marking Alteration") as null|anything in snowflake_markings_list if(new_mam_body_markings) H.dna.features["mam_body_markings"] = new_mam_body_markings - if(new_mam_body_markings == "None") - H.dna.features["mam_body_markings"] = "Plain" for(var/X in H.bodyparts) //propagates the markings changes var/obj/item/bodypart/BP = X BP.update_limb(FALSE, H) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 196073773b..c42e0bf175 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -21,6 +21,7 @@ gib_types = list(/obj/effect/gibspawner/lizard, /obj/effect/gibspawner/lizard/bodypartless) skinned_type = /obj/item/stack/sheet/animalhide/lizard exotic_bloodtype = "L" + exotic_blood_color = BLOOD_COLOR_LIZARD disliked_food = GRAIN | DAIRY liked_food = GROSS | MEAT inert_mutation = FIREBREATH diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index 8257238e9c..78efddf70d 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -1,20 +1,28 @@ /datum/species/skeleton - // 2spooky - name = "Spooky Scary Skeleton" + name = "Skeleton" id = "skeleton" say_mod = "rattles" blacklisted = 0 sexes = 0 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL) - inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) + inherent_traits = list(TRAIT_NOBREATH,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID mutanttongue = /obj/item/organ/tongue/bone damage_overlay_type = ""//let's not show bloody wounds or burns over bones. disliked_food = NONE liked_food = GROSS | MEAT | RAW | DAIRY + brutemod = 1.25 + burnmod = 1.25 -/datum/species/skeleton/check_roundstart_eligible() +/datum/species/skeleton/New() + if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) //skeletons are stronger during the spooky season! + inherent_traits |= list(TRAIT_RESISTHEAT,TRAIT_RESISTCOLD) + brutemod = 1 + burnmod = 1 + ..() + +/datum/species/skeleton/greater/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) return TRUE return ..() @@ -27,4 +35,4 @@ inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT, TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) /datum/species/skeleton/space/check_roundstart_eligible() - return FALSE \ No newline at end of file + return FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 408d264546..af2e83ee0f 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -18,7 +18,7 @@ mutanteyes = /obj/item/organ/eyes/ipc exotic_bloodtype = "S" - + exotic_blood_color = BLOOD_COLOR_OIL /datum/species/synthliz/qualifies_for_rank(rank, list/features) return TRUE diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index f9c5db4789..4209e020e4 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -1,9 +1,13 @@ /mob/living/carbon/BiologicalLife(seconds, times_fired) - if(stat == DEAD) - return FALSE //Reagent processing needs to come before breathing, to prevent edge cases. handle_organs() - if(!(. = ..())) + . = ..() // if . is false, we are dead. + if(stat == DEAD) + stop_sound_channel(CHANNEL_HEARTBEAT) + handle_death() + rot() + . = FALSE + if(!.) return handle_blood() // handle_blood *could* kill us. @@ -21,12 +25,6 @@ if(stat != DEAD) handle_liver() - if(stat == DEAD) - stop_sound_channel(CHANNEL_HEARTBEAT) - handle_death() - rot() - . = FALSE - //Updates the number of stored chemicals for powers handle_changeling() diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 4899067d7b..1a796fb2bc 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -68,7 +68,7 @@ var/dam_colors = "#E62525" if(ishuman(src)) var/mob/living/carbon/human/H = src - dam_colors = bloodtype_to_color(H.dna.blood_type) + dam_colors = H.dna.species.exotic_blood_color var/mutable_appearance/damage_overlay = mutable_appearance('icons/mob/dam_mob.dmi', "blank", -DAMAGE_LAYER, color = dam_colors) overlays_standing[DAMAGE_LAYER] = damage_overlay diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index 32038a6102..654a979445 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -96,7 +96,13 @@ mobility_flags &= ~MOBILITY_STAND setMovetype(movement_type | CRAWLING) if(!lying) //force them on the ground - lying = pick(90, 270) + switch(dir) + if(NORTH, SOUTH) + lying = pick(90, 270) + if(EAST) + lying = 90 + else //West + lying = 270 if(has_gravity() && !buckled) playsound(src, "bodyfall", 20, 1) else diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 0072007cee..8f103c496e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -128,7 +128,7 @@ S.source = get_or_create_estorage(/datum/robot_energy_storage/wrapping_paper) if(S && S.source) - S.custom_materials = null + S.set_custom_materials(null) S.is_cyborg = 1 if(I.loc != src) diff --git a/code/modules/mob/living/simple_animal/friendly/panda.dm b/code/modules/mob/living/simple_animal/friendly/panda.dm index 7e523fea83..b3e8c1438f 100644 --- a/code/modules/mob/living/simple_animal/friendly/panda.dm +++ b/code/modules/mob/living/simple_animal/friendly/panda.dm @@ -21,3 +21,6 @@ response_harm_simple = "kick" gold_core_spawnable = FRIENDLY_SPAWN footstep_type = FOOTSTEP_MOB_CLAW + +/mob/living/simple_animal/pet/redpanda/stinky + name = "Stinky" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 69d4ebe4df..0ccc4525c7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -44,7 +44,7 @@ childtype = list(/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck = 45, /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen = 55) wanted_objects = list(/obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/, /obj/item/bodypart, /obj/item/organ/appendix, /obj/item/organ/ears, /obj/item/organ/eyes, /obj/item/organ/heart, /obj/item/organ/liver, \ - /obj/item/organ/lungs, /obj/item/organ/stomach, /obj/item/organ/tongue) // So we dont eat implants or brains. Still can eat robotic stuff thats subtyped of base line but thats a issue for a nother day. + /obj/item/organ/lungs, /obj/item/organ/stomach, /obj/item/organ/tongue) // So we dont eat implants or brains. Still can eat robotic stuff thats subtyped of base line but thats a issue for another day. var/obj/item/udder/gutlunch/udder = null /mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 28ca97dc2b..0b2588bc6c 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -349,7 +349,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp /mob/proc/reagent_check(datum/reagent/R) // utilized in the species code return 1 -/proc/notify_ghosts(message, ghost_sound, enter_link, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, ignore_dnr_observers = FALSE) //Easy notification of ghosts. +/proc/notify_ghosts(message, ghost_sound, enter_link, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, ignore_dnr_observers = FALSE, header) //Easy notification of ghosts. if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load return for(var/mob/dead/observer/O in GLOB.player_list) @@ -366,6 +366,8 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(A) if(O.client.prefs && O.client.prefs.UI_style) A.icon = ui_style2icon(O.client.prefs.UI_style) + if (header) + A.name = header A.desc = message A.action = action A.target = source diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index a403845ee2..14ddc5c720 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -57,6 +57,12 @@ else return ..() +/proc/uncostumize_say(input, message_mode) + . = input + if(message_mode == MODE_CUSTOM_SAY) + var/customsayverb = findtext(input, "*") + return lowertext(copytext_char(input, 1, customsayverb)) + /mob/proc/whisper_keybind() var/message = input(src, "", "whisper") as text|null if(!length(message)) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 6772fe3cf1..7d0ecf3e66 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1141,6 +1141,7 @@ return if(!is_station_level(z)) return + malf.ShutOffDoomsdayDevice() occupier = new /mob/living/silicon/ai(src, malf.laws, malf) //DEAR GOD WHY? //IKR???? occupier.adjustOxyLoss(malf.getOxyLoss()) if(!findtext(occupier.name, "APC Copy")) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 85999707a2..788b4b1441 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -228,6 +228,11 @@ var/last_chrg = inputting var/last_onln = outputting + //check for self-recharging cells in stock parts and use them to self-charge + for(var/obj/item/stock_parts/cell/C in component_parts) + if(C.self_recharge) + charge += min(capacity-charge, C.chargerate) // If capacity-charge is smaller than the attempted charge rate, this avoids overcharging + //inputting if(terminal && input_attempt) input_available = terminal.surplus() diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 8ebddaa24f..9ea030da99 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -114,11 +114,13 @@ /obj/item/ammo_box/update_icon() . = ..() desc = "[initial(desc)] There [stored_ammo.len == 1 ? "is" : "are"] [stored_ammo.len] shell\s left!" - for (var/material in bullet_cost) - var/material_amount = bullet_cost[material] - material_amount = (material_amount*stored_ammo.len) + base_cost[material] - custom_materials[material] = material_amount - set_custom_materials(custom_materials)//make sure we setup the correct properties again + if(length(bullet_cost)) + var/temp_materials = custom_materials.Copy() + for (var/material in bullet_cost) + var/material_amount = bullet_cost[material] + material_amount = (material_amount*stored_ammo.len) + base_cost[material] + temp_materials[material] = material_amount + set_custom_materials(temp_materials) /obj/item/ammo_box/update_icon_state() switch(multiple_sprites) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 49c069ca62..0c723199a1 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -34,13 +34,6 @@ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' ammo_type = list(/obj/item/ammo_casing/energy/kinetic/premium) -/obj/item/gun/energy/kinetic_accelerator/premiumka/dropped(mob/user) - . = ..() - if(!QDELING(src) && !holds_charge) - // Put it on a delay because moving item from slot to hand - // calls dropped(). - addtimer(CALLBACK(src, .proc/empty_if_not_held), 1.60) - /obj/item/ammo_casing/energy/kinetic/premium projectile_type = /obj/item/projectile/kinetic/premium @@ -151,7 +144,7 @@ addtimer(CALLBACK(src, .proc/empty_if_not_held), 2) /obj/item/gun/energy/kinetic_accelerator/proc/empty_if_not_held() - if(!ismob(loc)) + if(!ismob(loc) && !istype(loc, /obj/item/integrated_circuit)) empty() /obj/item/gun/energy/kinetic_accelerator/proc/empty() diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index ce87eddc67..0c8a9deaf8 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -9,7 +9,7 @@ fire_sound = 'sound/weapons/emitter.ogg' flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_HUGE - var/checks_antimagic = FALSE + var/checks_antimagic = TRUE var/max_charges = 6 var/charges = 0 var/recharge_rate = 4 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index f279047356..7c988ca730 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -239,7 +239,7 @@ else if(ishuman(target)) var/mob/living/carbon/human/H = target - new /obj/effect/temp_visual/dir_setting/bloodsplatter(target_loca, splatter_dir, bloodtype_to_color(H.dna.blood_type)) + new /obj/effect/temp_visual/dir_setting/bloodsplatter(target_loca, splatter_dir, H.dna.species.exotic_blood_color) else new /obj/effect/temp_visual/dir_setting/bloodsplatter(target_loca, splatter_dir, bloodtype_to_color()) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 50e818abe6..042d80dab3 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -386,7 +386,8 @@ return FALSE if("analyze") - var/datum/reagent/R = GLOB.name2reagent[params["id"]] + var/reagent = GLOB.name2reagent[params["id"]] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent] if(R) var/state = "Unknown" if(initial(R.reagent_state) == 1) @@ -399,13 +400,9 @@ var/T = initial(R.metabolization_rate) * (60 / P) if(istype(R, /datum/reagent/fermi)) fermianalyze = TRUE - var/datum/chemical_reaction/Rcr = get_chemical_reaction(R) + var/datum/chemical_reaction/Rcr = get_chemical_reaction(reagent) var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2 - var/datum/reagent/targetReagent = reagents.has_reagent(R) - - if(!targetReagent) - CRASH("Tried to find a reagent that doesn't exist in the chem_master!") - analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = targetReagent.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache) + analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = R.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache) else fermianalyze = FALSE analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold)) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index b22f34091f..385a82baa5 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2291,7 +2291,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/oil_drum name = "Oil Drum" color = "#000000" //(0, 0, 0) - description = "Industeral grade oil mixed with some ethanol to make it a drink. Somehow not known to be toxic." + description = "Industrial grade oil mixed with some ethanol to make it a drink. Somehow not known to be toxic." boozepwr = 45 taste_description = "oil spill" glass_icon_state = "oil_drum" @@ -2308,7 +2308,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/nord_king name = "Nord King" color = "#EB1010" //(235, 16, 16) - description = "Strong mead mixed with more honey and ethanol. Known to beloved by most palettes." + description = "Strong mead mixed with more honey and ethanol. Beloved by its human patrons." boozepwr = 50 //strong! taste_description = "honey and red wine" glass_icon_state = "nord_king" @@ -2347,7 +2347,7 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "grass and lime" glass_icon_state = "abduction_fruit" glass_name = "glass of Abduction Fruit" - glass_desc = "Mixed fruits that were never ment to be mixed..." + glass_desc = "Mixed fruits that were never meant to be mixed..." /datum/reagent/consumable/ethanol/abduction_fruit/on_mob_life(mob/living/carbon/M) if(isabductor(M) || isxenoperson(M)) @@ -2359,7 +2359,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bug_zapper name = "Bug Zapper" color = "#F5882A" //(222, 250, 205) - description = "Metals and lemon juice. Hardly even a drink." + description = "Copper and lemon juice. Hardly even a drink." boozepwr = 5 //No booze really taste_description = "copper and AC power" glass_icon_state = "bug_zapper" @@ -2381,7 +2381,7 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "dirt and iron" glass_icon_state = "mush_crush" glass_name = "glass of Mush Crush" - glass_desc = "Popular among people that want to grow their own food rather then drink the soil." + glass_desc = "Popular among people that want to grow their own food rather than drink the soil." /datum/reagent/consumable/ethanol/mush_crush/on_mob_life(mob/living/carbon/M) if(ispodperson(M) || ismush(M)) @@ -2456,7 +2456,7 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = RACE_DRINK else M.adjust_disgust(25) - M.adjustToxLoss(1, 0) //Low tox do to being carp + jell toxins. + M.adjustToxLoss(1, 0) //Low tox due to being carp + jell toxins. return ..() /datum/reagent/consumable/ethanol/laval_spit //Yes Laval diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 117748afc0..93842a16c2 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -70,6 +70,8 @@ B = new(T) if(data["blood_DNA"]) B.blood_DNA[data["blood_DNA"]] = data["blood_type"] + if(!B.blood_DNA["color"]) + B.blood_DNA["color"] = list(data["bloodcolor"]) if(B.reagents) B.reagents.add_reagent(type, reac_volume) B.update_icon() @@ -77,7 +79,7 @@ /datum/reagent/blood/on_new(list/data) if(istype(data)) SetViruses(src, data) - color = bloodtype_to_color(data["blood_type"]) + color = data["bloodcolor"] if(data["blood_type"] == "SY") name = "Synthetic Blood" taste_description = "oil" diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index df1b57c20b..a8aec91669 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -87,7 +87,7 @@ new /obj/item/stack/sheet/mineral/uranium(location) /datum/chemical_reaction/bluespacecrystalifaction - name = "Crystal Bluespace" + name = "Crystallized Bluespace" id = "crystalbluespace" required_reagents = list(/datum/reagent/consumable/frostoil = 5, /datum/reagent/bluespace = 20, /datum/reagent/iron = 1) mob_react = FALSE diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 328b30d092..37ea2ca70d 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -386,6 +386,20 @@ /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty list_reagents = list() +/obj/item/reagent_containers/glass/beaker/waterbottle/wataur + name = "Bottled Wataur" + desc = "Finally, a bottle as proportionate as you." + icon = 'icons/obj/drinks.dmi' + icon_state = "wataur" + custom_materials = list(/datum/material/plastic=0) + list_reagents = list(/datum/reagent/water = 100) + volume = 100 + amount_per_transfer_from_this = 20 + possible_transfer_amounts = list(5,10,15,20,25,30,50, 100) + container_flags = TEMP_WEAK|APTFT_ALTCLICK|APTFT_VERB + container_HP = 1 + cached_icon = "wataur" + /obj/item/reagent_containers/glass/get_belt_overlay() return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "bottle") diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index fca04f239e..ec1e7823ed 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -11,8 +11,8 @@ grind_results = list() var/apply_type = INGEST var/apply_method = "swallow" - var/roundstart = 0 - var/self_delay = 0 //pills are instant, this is because patches inheret their aplication from pills + var/roundstart = FALSE + var/self_delay = FALSE //pills are instant, this is because patches inheret their aplication from pills var/dissolvable = TRUE /obj/item/reagent_containers/pill/Initialize() @@ -83,119 +83,126 @@ desc = "Highly toxic." icon_state = "pill5" list_reagents = list(/datum/reagent/toxin = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/cyanide name = "cyanide pill" desc = "Don't swallow this." icon_state = "pill5" list_reagents = list(/datum/reagent/toxin/cyanide = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/adminordrazine name = "adminordrazine pill" desc = "It's magic. We don't have to explain it." icon_state = "pill16" list_reagents = list(/datum/reagent/medicine/adminordrazine = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/morphine name = "morphine pill" desc = "Commonly used to treat insomnia." icon_state = "pill8" list_reagents = list(/datum/reagent/medicine/morphine = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/stimulant name = "stimulant pill" desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!" icon_state = "pill19" list_reagents = list(/datum/reagent/medicine/ephedrine = 10, /datum/reagent/medicine/antihol = 10, /datum/reagent/consumable/coffee = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/salbutamol name = "salbutamol pill" desc = "Used to treat oxygen deprivation." icon_state = "pill16" list_reagents = list(/datum/reagent/medicine/salbutamol = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/charcoal name = "charcoal pill" desc = "Neutralizes many common toxins." icon_state = "pill17" list_reagents = list(/datum/reagent/medicine/charcoal = 10) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/epinephrine name = "epinephrine pill" desc = "Used to stabilize patients." icon_state = "pill5" list_reagents = list(/datum/reagent/medicine/epinephrine = 15) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/mannitol name = "mannitol pill" desc = "Used to treat brain damage." icon_state = "pill17" list_reagents = list(/datum/reagent/medicine/mannitol = 25) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/mutadone name = "mutadone pill" desc = "Used to treat genetic damage." icon_state = "pill20" list_reagents = list(/datum/reagent/medicine/mutadone = 25) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/salicyclic name = "salicylic acid pill" desc = "Used to dull pain." icon_state = "pill9" list_reagents = list(/datum/reagent/medicine/sal_acid = 24) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/oxandrolone name = "oxandrolone pill" desc = "Used to stimulate burn healing." icon_state = "pill11" list_reagents = list(/datum/reagent/medicine/oxandrolone = 24) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/insulin name = "insulin pill" desc = "Handles hyperglycaemic coma." icon_state = "pill18" list_reagents = list(/datum/reagent/medicine/insulin = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/psicodine name = "psicodine pill" - desc = "Used to treat mental instability and traumas." + desc = "Used to treat mental instability and phobias." list_reagents = list(/datum/reagent/medicine/psicodine = 10) icon_state = "pill22" - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/antirad name = "potassium iodide pill" desc = "Used to treat radition used to counter radiation poisoning." icon_state = "pill18" list_reagents = list(/datum/reagent/medicine/potass_iodide = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/antirad_plus name = "prussian blue pill" desc = "Used to treat heavy radition poisoning." icon_state = "prussian_blue" list_reagents = list(/datum/reagent/medicine/prussian_blue = 25) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/mutarad name = "radiation treatment deluxe pill" desc = "Used to treat heavy radition poisoning and genetic defects." icon_state = "anit_rad_fixgene" list_reagents = list(/datum/reagent/medicine/prussian_blue = 10, /datum/reagent/medicine/potass_iodide = 10, /datum/reagent/medicine/mutadone = 5) - roundstart = 1 + roundstart = TRUE + +/obj/item/reagent_containers/pill/neurine + name = "neurine pill" + desc = "Used to treat non-severe mental traumas." + list_reagents = list("neurine" = 10) + icon_state = "pill22" + roundstart = TRUE ///////////////////////////////////////// this pill is used only in a legion mob drop /obj/item/reagent_containers/pill/shadowtoxin diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm index 320f856b35..3c9c8f9aca 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm @@ -81,7 +81,16 @@ materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/airlock_painter category = list("initial", "Misc","Tool Designs") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SERVICE + +/datum/design/airlock_painter/decal + name = "Decal Painter" + id = "decal_painter" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 50, /datum/material/glass = 50) + build_path = /obj/item/airlock_painter/decal + category = list("initial","Tools","Tool Designs") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SERVICE /datum/design/cultivator name = "Cultivator" diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm index 516c91d426..1bb18482f3 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm @@ -148,7 +148,8 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/toy/crayon/spraycan - category = list("initial", "Tools") + category = list("initial", "Tools", "Tool Designs") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/geiger name = "Geiger Counter" diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm index 804556cb04..e0702be689 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm @@ -154,3 +154,12 @@ build_path = /obj/item/circuitboard/machine/shuttle/heater category = list ("Shuttle Machinery") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/sheetifier + name = "Sheetifier" + desc = "This machine turns weird things into sheets." + id = "sheetifier" + build_path = /obj/item/circuitboard/machine/sheetifier + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 02d16b8c2e..4efcad97ba 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -264,6 +264,79 @@ construction_time = 600 category = list("Gygax") +//Medical Gygax +/datum/design/medigax_chassis + name = "Exosuit Chassis (\"Medical Gygax\")" + id = "medigax_chassis" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/chassis/medigax + materials = list(/datum/material/iron=20000) + construction_time = 100 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_torso + name = "Exosuit Torso (\"Medical Gygax\")" + id = "medigax_torso" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_torso + materials = list(/datum/material/iron=20000,/datum/material/glass=10000,/datum/material/diamond=2000) + construction_time = 300 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_head + name = "Exosuit Head (\"Medical Gygax\")" + id = "medigax_head" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_head + materials = list(/datum/material/iron=10000,/datum/material/glass=5000, /datum/material/diamond=2000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_left_arm + name = "Exosuit Left Arm (\"Medical Gygax\")" + id = "medigax_left_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_left_arm + materials = list(/datum/material/iron=15000, /datum/material/diamond=1000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_right_arm + name = "Exosuit Right Arm (\"Medical Gygax\")" + id = "medigax_right_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_right_arm + materials = list(/datum/material/iron=15000, /datum/material/diamond=1000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_left_leg + name = "Exosuit Left Leg (\"Medical Gygax\")" + id = "medigax_left_leg" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_left_leg + materials = list(/datum/material/iron=15000, /datum/material/diamond=2000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_right_leg + name = "Exosuit Right Leg (\"Medical Gygax\")" + id = "medigax_right_leg" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_right_leg + materials = list(/datum/material/iron=15000, /datum/material/diamond=2000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_armor + name = "Exosuit Armor (\"Medical Gygax\")" + id = "medigax_armor" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_armor + materials = list(/datum/material/iron=15000,/datum/material/diamond=10000,/datum/material/titanium=10000) + construction_time = 600 + category = list("Medical-Spec Gygax") + //Durand /datum/design/durand_chassis name = "Exosuit Chassis (\"Durand\")" diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index a5df3f4d12..5a50120833 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -96,7 +96,7 @@ for(var/i in 1 to amount) var/obj/O = new path(get_turf(src)) if(efficient_with(O.type)) - O.set_custom_materials(matlist.Copy()) + O.set_custom_materials(matlist) O.rnd_crafted(src) SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]")) investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 503bd8bae7..a0f0c651f0 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -24,10 +24,10 @@ var/list/tiers = list() //Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on /datum/techweb/New() + hidden_nodes = SSresearch.techweb_nodes_hidden.Copy() for(var/i in SSresearch.techweb_nodes_starting) var/datum/techweb_node/DN = SSresearch.techweb_node_by_id(i) research_node(DN, TRUE, FALSE) - hidden_nodes = SSresearch.techweb_nodes_hidden.Copy() return ..() /datum/techweb/admin diff --git a/code/modules/research/techweb/nodes/engineering_nodes.dm b/code/modules/research/techweb/nodes/engineering_nodes.dm index eac8c2faf2..d024823c85 100644 --- a/code/modules/research/techweb/nodes/engineering_nodes.dm +++ b/code/modules/research/techweb/nodes/engineering_nodes.dm @@ -16,7 +16,9 @@ display_name = "Advanced Engineering" description = "Pushing the boundaries of physics, one chainsaw-fist at a time." prereq_ids = list("engineering", "emp_basic") - design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", "rcd_upgrade_simple_circuits", "rcd_ammo_large") + design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", + "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", + "rcd_upgrade_simple_circuits", "rcd_ammo_large", "sheetifier") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) /datum/techweb_node/anomaly diff --git a/code/modules/research/techweb/nodes/mecha_nodes.dm b/code/modules/research/techweb/nodes/mecha_nodes.dm index 4d1b703cae..2e77f697da 100644 --- a/code/modules/research/techweb/nodes/mecha_nodes.dm +++ b/code/modules/research/techweb/nodes/mecha_nodes.dm @@ -42,6 +42,14 @@ "gygax_peri", "gygax_targ", "gygax_armor") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) +/datum/techweb_node/medigax + id = "mech_medigax" + display_name = "EXOSUIT: Medical-Spec Gygax" + description = "Medical-Spec Gygax designs" + prereq_ids = list("mech_gygax", "mecha_odysseus") + design_ids = list("medigax_chassis", "medigax_torso", "medigax_head", "medigax_left_arm", "medigax_right_arm", "medigax_left_leg", "medigax_right_leg", "medigax_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + /datum/techweb_node/durand id = "mech_durand" display_name = "EXOSUIT: Durand" diff --git a/code/modules/research/techweb/nodes/tools_nodes.dm b/code/modules/research/techweb/nodes/tools_nodes.dm index 5d8d40f10d..b084979116 100644 --- a/code/modules/research/techweb/nodes/tools_nodes.dm +++ b/code/modules/research/techweb/nodes/tools_nodes.dm @@ -5,7 +5,7 @@ display_name = "Basic Tools" description = "Basic mechanical, electronic, surgical and botanical tools." prereq_ids = list("base") - design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash") + design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "decal_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash", "spraycan") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500) /datum/techweb_node/basic_mining diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm index 6945c93427..f5ddf12182 100644 --- a/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm @@ -58,7 +58,7 @@ . = ..() owner_rsd.overlay_holder.remove_client() eyeobj.invisibility = INVISIBILITY_MAXIMUM - if(user.client) + if(user?.client) user.client.images -= eyeobj.user_image /obj/machinery/computer/camera_advanced/shuttle_creator/attack_hand(mob/user) diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm index 919b1f0221..83c03ed33c 100644 --- a/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm @@ -12,8 +12,9 @@ holder.images += images /datum/shuttle_creator_overlay_holder/proc/remove_client() - holder.images -= images - holder = null + if(holder) + holder.images -= images + holder = null /datum/shuttle_creator_overlay_holder/proc/clear_highlights() if(holder) diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 143fe508b6..21552f7e87 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -120,7 +120,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th var/list/mobs_blacklist //The opposite of the above. var/stat_allowed = 0 //see if it requires being conscious/alive, need to set to 1 for ghostpells var/phase_allowed = 0 // If true, the spell can be cast while phased, eg. blood crawling, ethereal jaunting - var/antimagic_allowed = TRUE // If false, the spell cannot be cast while under the effect of antimagic + var/antimagic_allowed = FALSE // If false, the spell cannot be cast while under the effect of antimagic var/invocation = "HURP DURP" //what is uttered when the wizard casts the spell var/invocation_emote_self = null var/invocation_type = "none" //can be none, whisper, emote and shout diff --git a/code/modules/spells/spell_types/curse.dm b/code/modules/spells/spell_types/curse.dm new file mode 100644 index 0000000000..9449e4a5d0 --- /dev/null +++ b/code/modules/spells/spell_types/curse.dm @@ -0,0 +1,37 @@ +GLOBAL_VAR_INIT(curse_of_madness_triggered, FALSE) + +/proc/curse_of_madness(mob/user, message) + if(user) //in this case either someone holding a spellbook or a badmin + to_chat(user, "You sent a curse of madness with the message \"[message]\"!") + message_admins("[ADMIN_LOOKUPFLW(user)] sent a curse of madness with the message \"[message]\"!") + log_game("[key_name(user)] sent a curse of madness with the message \"[message]\"!") + + GLOB.curse_of_madness_triggered = message // So latejoiners are also afflicted. + + deadchat_broadcast("A Curse of Madness has stricken the station, shattering their minds with the awful secret: \"[message]\"") + + for(var/mob/living/carbon/human/H in GLOB.player_list) + if(H.stat == DEAD) + continue + var/turf/T = get_turf(H) + if(T && !is_station_level(T.z)) + continue + if(H.anti_magic_check(TRUE, FALSE, TRUE)) + to_chat(H, "You have a strange feeling for a moment, but then it passes.") + continue + give_madness(H, message) + +/proc/give_madness(mob/living/carbon/human/H, message) + H.playsound_local(H,'sound/magic/curse.ogg',40,1) + to_chat(H, "[message]") + to_chat(H, "Your mind shatters!") + switch(rand(1,10)) + if(1 to 3) + H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) + H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) + if(4 to 6) + H.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) + if(7 to 8) + H.gain_trauma_type(BRAIN_TRAUMA_MAGIC, TRAUMA_RESILIENCE_LOBOTOMY) + if(9 to 10) + H.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY) diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index 8f39da5031..26a6b57b25 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -12,6 +12,7 @@ range = 0 cast_sound = null mobs_whitelist = list(/mob/living/carbon/human) + antimagic_allowed = TRUE action_icon_state = "mime" action_background_icon_state = "bg_mime" @@ -40,6 +41,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/mime/speak/Trigger(mob/user, skip_can_cast = TRUE) if(user.mind?.miming) @@ -76,6 +78,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/forcewall/mime/Trigger(mob/user, skip_can_cast = TRUE) if(user.mind) @@ -107,6 +110,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" base_icon_state = "mime" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/aimed/finger_guns/Trigger(mob/user, skip_can_cast = TRUE) @@ -137,6 +141,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" hand_path = /obj/item/melee/touch_attack/mimerope + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/touch/mimerope/Trigger(mob/user, skip_can_cast = TRUE) if(user.mind) diff --git a/code/modules/spells/spell_types/santa.dm b/code/modules/spells/spell_types/santa.dm index 64ed925455..4f6957433b 100644 --- a/code/modules/spells/spell_types/santa.dm +++ b/code/modules/spells/spell_types/santa.dm @@ -13,3 +13,4 @@ summon_type = list("/obj/item/a_gift") summon_lifespan = 0 summon_amt = 5 + antimagic_allowed = TRUE diff --git a/code/modules/spells/spell_types/shadow_walk.dm b/code/modules/spells/spell_types/shadow_walk.dm index 83996b5bfb..1dd949caa0 100644 --- a/code/modules/spells/spell_types/shadow_walk.dm +++ b/code/modules/spells/spell_types/shadow_walk.dm @@ -12,6 +12,7 @@ action_icon = 'icons/mob/actions/actions_minor_antag.dmi' action_icon_state = "ninja_cloak" action_background_icon_state = "bg_alien" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/shadowwalk/cast(list/targets,mob/living/user = usr) var/L = user.loc diff --git a/code/modules/spells/spell_types/taeclowndo.dm b/code/modules/spells/spell_types/taeclowndo.dm index 5b1e09565b..59826daf07 100644 --- a/code/modules/spells/spell_types/taeclowndo.dm +++ b/code/modules/spells/spell_types/taeclowndo.dm @@ -10,6 +10,7 @@ cooldown_min = 30 action_icon = 'icons/obj/food/piecake.dmi' action_icon_state = "pie" + antimagic_allowed = TRUE ////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -24,6 +25,7 @@ range = 7 selection_type = "view" projectile_type = null + antimagic_allowed = TRUE active_msg = "You focus, your mind reaching to the clown dimension, ready to make a peel matrialize wherever you want!" deactive_msg = "You relax, the peel remaining right in the \"thin air\" it would appear out of." @@ -62,6 +64,7 @@ charge_max = 100 clothes_req = NONE cooldown_min = 100 + antimagic_allowed = TRUE action_icon = 'icons/mecha/mecha_equipment.dmi' action_icon_state = "mecha_honker" @@ -76,6 +79,7 @@ charge_max = 450 clothes_req = NONE cooldown_min = 450 + antimagic_allowed = TRUE action_icon = 'icons/obj/food/piecake.dmi' action_icon_state = "frostypie" diff --git a/code/modules/spells/spell_types/telepathy.dm b/code/modules/spells/spell_types/telepathy.dm index 4b4f91eb18..caf9ec79c6 100644 --- a/code/modules/spells/spell_types/telepathy.dm +++ b/code/modules/spells/spell_types/telepathy.dm @@ -8,6 +8,7 @@ action_icon = 'icons/mob/actions/actions_revenant.dmi' action_icon_state = "r_transmit" action_background_icon_state = "bg_spell" + antimagic_allowed = TRUE var/notice = "notice" var/boldnotice = "boldnotice" var/magic_check = FALSE diff --git a/code/modules/spells/spell_types/voice_of_god.dm b/code/modules/spells/spell_types/voice_of_god.dm index 495681a818..a920344adc 100644 --- a/code/modules/spells/spell_types/voice_of_god.dm +++ b/code/modules/spells/spell_types/voice_of_god.dm @@ -5,6 +5,7 @@ cooldown_min = 0 level_max = 1 clothes_req = NONE + antimagic_allowed = TRUE action_icon = 'icons/mob/actions/actions_items.dmi' action_icon_state = "voice_of_god" var/command diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index e9432e2f58..b104c2182a 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -306,6 +306,7 @@ sound = 'sound/magic/tail_swing.ogg' charge_max = 150 clothes_req = NONE + antimagic_allowed = TRUE range = 2 cooldown_min = 150 invocation_type = "none" diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index f493137424..4ce51ae119 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -61,7 +61,7 @@ time = 64 name = "manipulate organs" repeatable = 1 - implements = list(/obj/item/organ = 100, /obj/item/reagent_containers/food/snacks/organ = 0, /obj/item/organ_storage = 100) + implements = list(/obj/item/organ = 100, /obj/item/organ_storage = 100) var/implements_extract = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 55) var/current_type var/obj/item/organ/I = null @@ -85,6 +85,10 @@ if(target_zone != I.zone || target.getorganslot(I.slot)) to_chat(user, "There is no room for [I] in [target]'s [parse_zone(target_zone)]!") return -1 + var/obj/item/organ/meatslab = tool + if(!meatslab.useable) + to_chat(user, "[I] seems to have been chewed on, you can't use this!") + return -1 display_results(user, target, "You begin to insert [tool] into [target]'s [parse_zone(target_zone)]...", "[user] begins to insert [tool] into [target]'s [parse_zone(target_zone)].", "[user] begins to insert something into [target]'s [parse_zone(target_zone)].") @@ -111,9 +115,6 @@ else return -1 - else if(istype(tool, /obj/item/reagent_containers/food/snacks/organ)) - to_chat(user, "[tool] was bitten by someone! It's too damaged to use!") - return -1 /datum/surgery_step/manipulate_organs/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(current_type == "insert") if(istype(tool, /obj/item/organ_storage)) diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm index c737e8bc30..782991d79c 100644 --- a/code/modules/surgery/organs/appendix.dm +++ b/code/modules/surgery/organs/appendix.dm @@ -37,9 +37,3 @@ ..() if(inflamed) M.ForceContractDisease(new /datum/disease/appendicitis(), FALSE, TRUE) - -/obj/item/organ/appendix/prepare_eat() - var/obj/S = ..() - if(inflamed) - S.reagents.add_reagent(/datum/reagent/toxin/bad_food, 5) - return S diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 465c10c4cd..e251abfd35 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -61,10 +61,10 @@ return "a healthy" return "an unstable" -/obj/item/organ/heart/prepare_eat() - var/obj/S = ..() - S.icon_state = "[icon_base]-off" - return S +/obj/item/organ/heart/OnEatFrom(eater, feeder) + . = ..() + beating = FALSE + update_icon() /obj/item/organ/heart/on_life() . = ..() diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index b24034ca4a..2465b63800 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -23,6 +23,7 @@ var/toxLethality = LIVER_DEFAULT_TOX_LETHALITY//affects how much damage toxins do to the liver var/filterToxins = TRUE //whether to filter toxins var/cachedmoveCalc = 1 + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/iron = 5) /obj/item/organ/liver/on_life() . = ..() @@ -44,11 +45,6 @@ if(damage > 10 && prob(damage/3))//the higher the damage the higher the probability to_chat(owner, "You feel a dull pain in your abdomen.") -/obj/item/organ/liver/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/iron, 5) - return S - /obj/item/organ/liver/applyOrganDamage(d, maximum = maxHealth) . = ..() if(!. || QDELETED(owner)) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index b3020ae13f..949eef62d0 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -24,6 +24,8 @@ now_fixed = "Your lungs seem to once again be able to hold air." high_threshold_cleared = "The constriction around your chest loosens as your breathing calms down." + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/medicine/salbutamol = 5) + //Breath damage var/safe_oxygen_min = 16 // Minimum safe partial pressure of O2, in kPa @@ -458,11 +460,6 @@ else if(!(organ_flags & ORGAN_FAILING)) failed = FALSE -/obj/item/organ/lungs/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 5) - return S - /obj/item/organ/lungs/ipc name = "ipc lungs" icon_state = "lungs-c" diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 761ebc17a2..0378340117 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -8,7 +8,7 @@ var/zone = BODY_ZONE_CHEST var/slot // DO NOT add slots with matching names to different zones - it will break internal_organs_slot list! - var/organ_flags = NONE + var/organ_flags = ORGAN_EDIBLE var/maxHealth = STANDARD_ORGAN_THRESHOLD var/damage = 0 //total damage this organ has sustained ///Healing factor and decay factor function on % of maxhealth, and do not work by applying a static number per tick @@ -25,7 +25,23 @@ var/now_fixed var/high_threshold_cleared var/low_threshold_cleared - rad_flags = RAD_NO_CONTAMINATE + + ///When you take a bite you cant jam it in for surgery anymore. + var/useable = TRUE + var/list/food_reagents = list(/datum/reagent/consumable/nutriment = 5) + +/obj/item/organ/Initialize() + . = ..() + if(organ_flags & ORGAN_EDIBLE) + AddComponent(/datum/component/edible, food_reagents, null, RAW | MEAT | GROSS, null, 10, null, null, null, CALLBACK(src, .proc/OnEatFrom)) + START_PROCESSING(SSobj, src) + +/obj/item/organ/Destroy() + if(owner) + // The special flag is important, because otherwise mobs can die + // while undergoing transformation into different mobs. + Remove(TRUE) + return ..() /obj/item/organ/proc/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) if(!iscarbon(M) || owner == M) @@ -157,47 +173,8 @@ if(damage > high_threshold) . += "[src] is starting to look discolored." - -/obj/item/organ/proc/prepare_eat() - var/obj/item/reagent_containers/food/snacks/organ/S = new - S.name = name - S.desc = desc - S.icon = icon - S.icon_state = icon_state - S.w_class = w_class - - return S - -/obj/item/reagent_containers/food/snacks/organ - name = "appendix" - icon_state = "appendix" - icon = 'icons/obj/surgery.dmi' - list_reagents = list(/datum/reagent/consumable/nutriment = 5) - foodtype = RAW | MEAT | GROSS - - -/obj/item/organ/Initialize() - . = ..() - START_PROCESSING(SSobj, src) - -/obj/item/organ/Destroy() - if(owner) - // The special flag is important, because otherwise mobs can die - // while undergoing transformation into different mobs. - Remove(TRUE) - return ..() - -/obj/item/organ/attack(mob/living/carbon/M, mob/user) - if(M == user && ishuman(user)) - var/mob/living/carbon/human/H = user - if(status == ORGAN_ORGANIC) - var/obj/item/reagent_containers/food/snacks/S = prepare_eat() - if(S) - qdel(src) - if(H.put_in_active_hand(S)) - S.attack(H, H) - else - ..() +/obj/item/organ/proc/OnEatFrom(eater, feeder) + useable = FALSE //You can't use it anymore after eating it you spaztic /obj/item/organ/item_action_slot_check(slot,mob/user) return //so we don't grant the organ's action to mobs who pick up the organ. diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index f8547dda6e..1c4a2d3043 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -252,6 +252,7 @@ name = "robotic voicebox" desc = "A voice synthesizer that can interface with organic lifeforms." status = ORGAN_ROBOTIC + organ_flags = ORGAN_NO_SPOIL icon_state = "tonguerobot" say_mod = "states" attack_verb = list("beeped", "booped") diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm index 321b9121bc..d40e2fcbda 100644 --- a/code/modules/uplink/uplink_items/uplink_bundles.dm +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -193,6 +193,8 @@ var/datum/uplink_item/I = uplink_items[category][item] if(src == I || !I.item) continue + if(istype(I, /datum/uplink_item/bundles_TC/reroll)) //oops! + continue if(U.telecrystals < I.cost) continue if(I.limited_stock == 0) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index b9d60af1b6..21fc3504bc 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -525,7 +525,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(4) // paralyze this binch // the new paraplegic gets like 4 lines of losing their legs so skip them visible_message("[C]'s spinal cord is obliterated with a sickening crunch!", ignored_mobs = list(C)) - C.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) + C.gain_trauma(/datum/brain_trauma/severe/paralysis/spinesnapped) if(5) // skull squish! var/obj/item/bodypart/head/O = C.get_bodypart(BODY_ZONE_HEAD) if(O) diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index 92e40bc3a8..29d1e760d4 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -14,8 +14,7 @@ /obj/item/stock_parts/cell/upgraded = 2) premium = list(/obj/item/stock_parts/cell/upgraded/plus = 2, /obj/item/flashlight/lantern = 2, - /obj/item/beacon = 2, - /obj/item/airlock_painter/decal = 5) + /obj/item/beacon = 2) product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/assist diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm index b667f4c7c9..bb5b8ef288 100644 --- a/code/modules/vending/cola.dm +++ b/code/modules/vending/cola.dm @@ -15,7 +15,8 @@ /obj/item/reagent_containers/food/drinks/soda_cans/sol_dry = 10, /obj/item/reagent_containers/glass/beaker/waterbottle = 10) contraband = list(/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6, - /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6) + /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6, + /obj/item/reagent_containers/glass/beaker/waterbottle/wataur = 2) premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1, /obj/item/reagent_containers/food/drinks/soda_cans/air = 1, /obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1, diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index 50e0fb9cde..965ebddd15 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -15,7 +15,6 @@ /obj/item/electronics/airalarm = 10, /obj/item/electronics/firealarm = 10, /obj/item/electronics/firelock = 10, - /obj/item/airlock_painter/decal = 5, /obj/item/rcd_ammo = 3 ) contraband = list(/obj/item/stock_parts/cell/potato = 3, @@ -25,7 +24,8 @@ ) premium = list(/obj/item/storage/belt/utility = 3, /obj/item/storage/box/smart_metal_foam = 3, - /obj/item/rcd_ammo/large = 5 + /obj/item/rcd_ammo/large = 5, + /obj/item/storage/bag/material = 3 ) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/engivend diff --git a/code/modules/vending/kinkmate.dm b/code/modules/vending/kinkmate.dm index 24fb685eac..c416d87439 100644 --- a/code/modules/vending/kinkmate.dm +++ b/code/modules/vending/kinkmate.dm @@ -21,10 +21,10 @@ /obj/item/dildo/custom = 5, /obj/item/electropack/shockcollar = 3, /obj/item/assembly/signaler = 3, - /obj/item/clothing/under/shorts/polychromic/pantsu, - /obj/item/clothing/under/misc/poly_bottomless, - /obj/item/clothing/under/misc/poly_tanktop, - /obj/item/clothing/under/misc/poly_tanktop/female + /obj/item/clothing/under/shorts/polychromic/pantsu = 3, + /obj/item/clothing/under/misc/poly_bottomless = 3, + /obj/item/clothing/under/misc/poly_tanktop = 3, + /obj/item/clothing/under/misc/poly_tanktop/female = 3 ) contraband = list( /obj/item/clothing/neck/petcollar/locked = 2, diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 35e4b3232a..8ad4b0568c 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -15,8 +15,7 @@ /obj/item/secbat = 5) contraband = list(/obj/item/clothing/glasses/sunglasses = 2, /obj/item/storage/fancy/donut_box = 2, - /obj/item/ssword_kit = 1, - /obj/item/storage/bag/ammo = 1) + /obj/item/ssword_kit = 1) premium = list(/obj/item/coin/antagtoken = 1, /obj/item/clothing/head/helmet/blueshirt = 1, /obj/item/clothing/suit/armor/vest/blueshirt = 1, @@ -24,7 +23,7 @@ /obj/item/clothing/gloves/tackler = 5, /obj/item/grenade/stingbang = 1, /obj/item/ssword_kit = 1, - /obj/item/storage/bag/ammo = 2) + /obj/item/storage/bag/ammo = 3) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/security diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index c936d9c32c..2119197aed 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -18,8 +18,7 @@ /obj/item/clothing/gloves/color/fyellow = 4, /obj/item/multitool = 2) premium = list(/obj/item/clothing/gloves/color/yellow = 2, - /obj/item/weldingtool/hugetank = 2, - /obj/item/airlock_painter/decal = 3) + /obj/item/weldingtool/hugetank = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) refill_canister = /obj/item/vending_refill/tool resistance_flags = FIRE_PROOF diff --git a/config/awaymissionconfig.txt b/config/awaymissionconfig.txt index ef30ba732e..768942c434 100644 --- a/config/awaymissionconfig.txt +++ b/config/awaymissionconfig.txt @@ -7,16 +7,13 @@ #Do NOT tick the maps during compile -- the game uses this list to decide which map to load. Ticking the maps will result in them ALL being loaded at once. #DO tick the associated code file for the away mission you are enabling. Otherwise, the map will be trying to reference objects which do not exist, which will cause runtime errors! -#_maps/RandomZLevels/away_mission/blackmarketpackers.dmm -#_maps/RandomZLevels/away_mission/spacebattle.dmm #_maps/RandomZLevels/away_mission/TheBeach.dmm #_maps/RandomZLevels/away_mission/Academy.dmm #_maps/RandomZLevels/away_mission/wildwest.dmm #_maps/RandomZLevels/away_mission/challenge.dmm -#_maps/RandomZLevels/away_mission/centcomAway.dmm #_maps/RandomZLevels/away_mission/moonoutpost19.dmm #_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm #_maps/RandomZLevels/away_mission/caves.dmm #_maps/RandomZLevels/away_mission/snowdin.dmm #_maps/RandomZLevels/away_mission/research.dmm -#_maps/RandomZLevels/away_mission/SnowCabin.dmm +#_maps/RandomZLevels/away_mission/SnowCabin.dmm \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index e78ecfb9db..3ff7bdb144 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,135 @@ -->
+

29 June 2020

+

b1tt3r1n0 updated:

+ +

timothyteakettle updated:

+ + +

28 June 2020

+

Detective-Google updated:

+ +

Ghommie updated:

+ +

Ghommie porting PRs by Qustinnus/Floyd, Willow, cacogen, nemvar, Ghilker and EOBGames (Inept) updated:

+ +

MrJWhit updated:

+ +

Putnam3145 updated:

+ +

b1tt3r1n0 updated:

+ +

timothyteakettle updated:

+ + +

27 June 2020

+

Detective-Google updated:

+ +

timothyteakettle updated:

+ + +

26 June 2020

+

Ghommie updated:

+ +

silicons updated:

+ + +

25 June 2020

+

Anonymous updated:

+ +

Detective Google updated:

+ +

Detective-Google updated:

+ +

Funce updated:

+ +

Linzolle updated:

+ +

dapnee updated:

+ + +

24 June 2020

+

DeltaFire15 updated:

+ +

Detective-Google updated:

+ +

timothyteakettle updated:

+ +

22 June 2020

Ghommie (porting PRs by zxaber, Ryll-Ryll, AnturK) updated: