diff --git a/.vscode/settings.json b/.vscode/settings.json index 4f8e813f..69761b02 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,10 +3,7 @@ "./tgui" ], - "workbench.editorAssociations": [ - { - "filenamePattern": "*.dmi", - "viewType": "imagePreview.previewEditor" - } - ] + "workbench.editorAssociations": { + "*.dmi": "imagePreview.previewEditor" + } } \ No newline at end of file diff --git a/_maps/map_files/LayeniaStation/LayeniaStation.dmm b/_maps/map_files/LayeniaStation/LayeniaStation.dmm index ec55d891..dc5bfea0 100644 --- a/_maps/map_files/LayeniaStation/LayeniaStation.dmm +++ b/_maps/map_files/LayeniaStation/LayeniaStation.dmm @@ -648,6 +648,7 @@ "bNg" = (/obj/item/twohanded/required/kirbyplants/random,/turf/open/floor/plating/asteroid/layenia/garden,/area/security/prison) "bNi" = (/obj/machinery/light{dir = 1; pixel_y = 16},/obj/effect/turf_decal/stripes/line{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 8},/obj/effect/turf_decal/stripes/red/line{dir = 8},/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) "bNj" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/security/checkpoint/escape) +"bNk" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/neutral,/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/hallway/primary/port/fore) "bNr" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/freezer,/area/security/prison) "bNB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{dir = 4; name = "air scrubber"},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/crew_quarters/dorms) "bNG" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{name = "air supply pipe"},/obj/structure/disposalpipe/junction{dir = 8},/turf/open/floor/plasteel{dir = 8; icon_plating = "floor"; icon_state = "floor_whole"},/area/security/brig) @@ -839,6 +840,7 @@ "crq" = (/obj/structure/table,/obj/item/surgical_drapes,/obj/item/clothing/suit/apron/surgical{pixel_y = 11},/turf/open/floor/plasteel/freezer,/area/medical/sleeper) "crP" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel/dark,/area/security/execution/transfer) "crV" = (/obj/structure/closet/l3closet/virology,/obj/effect/turf_decal/stripes/line{dir = 10},/obj/machinery/light{dir = 1; pixel_y = 19},/obj/machinery/power/apc/highcap/five_k{areastring = "/area/medical/virology"; dir = 1; name = "Virology APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/plasteel,/area/medical/virology) +"csd" = (/obj/machinery/holopad,/obj/effect/turf_decal/box,/turf/open/floor/plasteel,/area/engine/break_room) "csu" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel/dark/side{dir = 6},/area/security/main) "csz" = (/obj/machinery/door/airlock/hatch{name = "MiniSat Foyer"; req_one_access_txt = "65"},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/delivery,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior) "csF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/turf/open/floor/wood,/area/library) @@ -893,6 +895,7 @@ "czQ" = (/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/cable{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/medical/virology) "czU" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "cargoshut1"; name = "shutters"},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{dir = 8; icon_plating = "floor"; icon_state = "floor_whole"},/area/hallway/primary/aft) "cAv" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/structure/cable{icon_state = "0-2"},/obj/machinery/power/apc{areastring = "/area/security/range"; dir = 1; name = "Shooting Range APC"; pixel_y = 24},/turf/open/floor/plasteel/dark,/area/security/range) +"cAw" = (/obj/effect/spawner/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/science) "cAL" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/port) "cAX" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{id = "hos"},/obj/machinery/door/firedoor,/obj/structure/cable{icon_state = "0-4"},/turf/open/floor/plating,/area/crew_quarters/heads/hos) "cBq" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/rnd/production/protolathe/department/science,/turf/open/floor/plasteel,/area/science/lab) @@ -978,7 +981,7 @@ "cNT" = (/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 10; name = "air supply pipe"},/turf/open/floor/plasteel/white/side{dir = 8},/area/science/research) "cNY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/maintenance/disposal/incinerator) "cOu" = (/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/white/corner{dir = 1},/area/science/misc_lab) -"cOv" = (/obj/structure/medkit_cabinet{pixel_y = 27},/obj/machinery/camera{c_tag = "Bridge West"; dir = 6},/turf/open/floor/plasteel/dark/side,/area/bridge) +"cOv" = (/obj/machinery/camera{c_tag = "Bridge West"; dir = 6},/obj/machinery/computer/lore_terminal/command,/turf/open/floor/plasteel/dark/side,/area/bridge) "cOH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{icon_state = "2-4"},/turf/open/floor/plasteel,/area/maintenance/disposal/incinerator) "cOU" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/engine,/area/engine/engineering/reactor_core) "cOZ" = (/mob/living/simple_animal/opossum/Trims,/turf/open/floor/plasteel,/area/quartermaster/storage) @@ -1132,7 +1135,7 @@ "dkD" = (/obj/machinery/door/airlock/external{name = "Disposal External Airlock"},/obj/effect/mapping_helpers/airlock/cyclelink_helper,/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plating,/area/maintenance/aft) "dkE" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{dir = 1; name = "Mining Desk"; req_access_txt = "48"},/obj/machinery/door/poddoor/preopen{id = "cargoshut1"; name = "shutters"},/turf/open/floor/plating,/area/quartermaster/miningdock) "dkN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) -"dkS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 4; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/research) +"dkS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 4; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/junction/flip{dir = 1},/turf/open/floor/plasteel/white,/area/science/research) "dkW" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/security/prison) "dkX" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/effect/turf_decal/stripes/red/line{dir = 8},/obj/effect/decal/cleanable/ash/large,/turf/open/floor/plating{icon_state = "panelscorched"},/area/layenia) "dla" = (/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai) @@ -1205,6 +1208,7 @@ "dvs" = (/obj/structure/extinguisher_cabinet{dir = 4; pixel_y = -27},/turf/open/floor/plasteel/dark,/area/chapel/main) "dvt" = (/turf/open/floor/engine/vacuum,/area/science/mixing) "dvz" = (/turf/closed/wall,/area/maintenance/port) +"dvA" = (/obj/structure/disposalpipe/segment{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/aft) "dvC" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/delivery,/obj/machinery/door/poddoor/preopen{dir = 8; id = "primaryshut1"; name = "primary blast door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel{dir = 8; icon_plating = "floor"; icon_state = "floor_whole"},/area/hallway/primary/port) "dvN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/science/research) "dvO" = (/obj/effect/turf_decal/tile/yellow{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) @@ -1294,7 +1298,7 @@ "dJj" = (/obj/machinery/chem_heater,/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{name = "air scrubber"},/turf/open/floor/plasteel/white,/area/medical/sleeper) "dJm" = (/turf/open/floor/plasteel/dark,/area/hallway/primary/port) "dJB" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/dark,/area/storage/tech) -"dJS" = (/obj/machinery/atmospherics/pipe/layer_manifold{dir = 8},/turf/closed/wall/r_wall,/area/engine/engineering/reactor_control) +"dJS" = (/obj/machinery/atmospherics/pipe/layer_manifold{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering/reactor_control) "dJY" = (/obj/structure/table,/obj/item/storage/pill_bottle/dice{pixel_x = -9; pixel_y = 10},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/item/toy/figure{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/dark,/area/security/prison) "dKc" = (/turf/open/floor/plasteel/white,/area/medical/medbay/central) "dKg" = (/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/effect/spawner/structure/window,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/science/robotics/lab) @@ -1661,7 +1665,7 @@ "eMc" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "inc_in"},/obj/structure/sign/warning/vacuum/external{pixel_x = -32},/turf/open/floor/engine/vacuum,/area/science/mixing) "eMm" = (/turf/closed/wall/r_wall,/area/crew_quarters/toilet/restrooms) "eMs" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/camera{c_tag = "Courtroom South"; dir = 1},/turf/open/floor/plasteel/dark,/area/security/courtroom) -"eMv" = (/obj/effect/turf_decal/tile/blue{dir = 8},/obj/machinery/light{dir = 8; pixel_x = -7; pixel_y = 0},/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel/dark/corner,/area/bridge) +"eMv" = (/obj/effect/turf_decal/tile/blue{dir = 8},/obj/machinery/light{dir = 8; pixel_x = -7; pixel_y = 0},/obj/structure/medkit_cabinet{pixel_y = 27},/turf/open/floor/plasteel/dark/corner,/area/bridge) "eMG" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/hydroponics) "eMS" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/carpet/red,/area/crew_quarters/bar) "eMZ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; layer = 2.4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 9; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/dark,/area/security/execution/transfer) @@ -2109,6 +2113,7 @@ "ghm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{dir = 8; id = "xenobio2"; name = "containment blast door"},/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/engine,/area/science/xenobiology) "ghv" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 9; name = "scrubbers pipe"},/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/quartermaster/warehouse) "ghB" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/closed/wall/r_wall,/area/engine/atmos) +"ghO" = (/obj/effect/turf_decal/bot,/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel,/area/hallway/primary/starboard) "ghX" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/purple{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{name = "air supply pipe"},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/hallway/primary/port) "ghY" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/effect/turf_decal/stripes/line{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},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/power/apc{areastring = "/area/science/mixing"; dir = 4; name = "Toxins Lab APC"; pixel_x = 26},/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/plasteel/dark,/area/science/mixing) "gib" = (/obj/item/twohanded/required/kirbyplants/random,/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/obj/machinery/camera{c_tag = "Research Division South"; dir = 8; network = list("ss13","rd")},/turf/open/floor/wood,/area/science/research) @@ -2164,7 +2169,7 @@ "gpE" = (/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plasteel,/area/teleporter) "gpP" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access_txt = "12"},/obj/effect/mapping_helpers/airlock/cyclelink_helper,/turf/open/floor/plating,/area/maintenance/port/aft) "gpS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard/central) -"gpT" = (/obj/machinery/atmospherics/pipe/layer_manifold{dir = 8},/turf/open/floor/plasteel,/area/science/mixing) +"gpT" = (/obj/machinery/atmospherics/pipe/layer_manifold{dir = 4},/turf/open/floor/plasteel,/area/science/mixing) "gpX" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Incinerator Output Pump"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 6; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 1; name = "air supply pipe"},/turf/open/floor/plasteel,/area/science/mixing) "gqj" = (/obj/machinery/door/window/westleft{dir = 1; name = "Brig Infirmary"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 6; name = "scrubbers pipe"},/turf/open/floor/plasteel/white,/area/security/prison) "gqq" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Brig Infirmary"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 9; name = "scrubbers pipe"},/turf/open/floor/plasteel/white,/area/security/prison) @@ -2318,7 +2323,7 @@ "gMY" = (/obj/structure/chair,/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/dark,/area/hallway/primary/fore) "gNc" = (/obj/structure/lattice/catwalk,/obj/structure/railing,/obj/structure/railing{dir = 8},/turf/open/floor/plating/asteroid/layenia,/area/layenia) "gNv" = (/obj/effect/turf_decal/arrows/white{dir = 8},/turf/open/floor/plasteel/dark,/area/crew_quarters/bar) -"gNE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 9; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 9; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 9},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{dir = 1; name = "air supply pipe"},/turf/open/floor/plating,/area/maintenance/aft) +"gNE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 9; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 9},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{dir = 1; name = "air supply pipe"},/turf/open/floor/plating,/area/maintenance/aft) "gNO" = (/obj/structure/table/wood,/obj/item/radio/intercom{dir = 8; name = "Station Intercom (Court)"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/security/courtroom) "gOn" = (/turf/open/indestructible/layenia/crystal,/area/layenia) "gOy" = (/obj/machinery/disposal/bin,/obj/machinery/light{dir = 1; pixel_y = 16},/obj/structure/disposalpipe/trunk,/obj/machinery/camera{c_tag = "Starboard Primary Hallway"},/turf/open/floor/plasteel/dark,/area/hallway/primary/starboard) @@ -2475,11 +2480,12 @@ "hnd" = (/obj/effect/turf_decal/tile/green{dir = 4},/obj/effect/turf_decal/tile/green{dir = 1},/obj/structure/cable{icon_state = "1-2"},/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plasteel/white/side,/area/medical/virology) "hnv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/disposalpipe/segment{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/aft) "hnD" = (/obj/machinery/camera{c_tag = "Chemistry"},/obj/machinery/chem_master,/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/effect/turf_decal/tile/yellow{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) -"hnH" = (/obj/structure/chair/stool,/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) +"hnH" = (/obj/structure/chair/stool,/obj/effect/turf_decal/stripes/line{dir = 9},/obj/machinery/atmospherics/components/binary/pump{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) "hnT" = (/obj/effect/turf_decal/stripes/line{dir = 9},/obj/effect/turf_decal/stripes/corner,/obj/machinery/conveyor{dir = 5; id = "QMLoad2"},/turf/open/floor/plating,/area/quartermaster/storage) "hoe" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/neutral{dir = 4},/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/hallway/primary/aft) "hog" = (/turf/open/floor/plating,/area/security/processing) "hoj" = (/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/security/brig) +"hor" = (/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel,/area/hallway/primary/port) "hox" = (/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/structure/chair/comfy{dir = 4},/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/structure/cable{icon_state = "0-8"},/obj/machinery/power/apc{areastring = "/area/crew_quarters/fitness/pool"; name = "Pool APC"; pixel_y = -24},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/crew_quarters/fitness/pool) "hoA" = (/obj/item/twohanded/required/kirbyplants/random,/turf/open/floor/plasteel,/area/security/prison) "hpD" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel,/area/security/brig) @@ -3002,7 +3008,7 @@ "iJG" = (/obj/effect/decal/cleanable/oil{icon_state = "floor5"},/turf/open/floor/plasteel,/area/security/prison) "iJM" = (/obj/effect/turf_decal/stripes/box,/obj/structure/railing{dir = 8},/obj/structure/railing,/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) "iJN" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/carpet,/area/crew_quarters/dorms) -"iJO" = (/obj/structure/cable/yellow{icon_state = "2-4"},/turf/open/floor/plasteel/dark,/area/engine/engineering/reactor_control) +"iJO" = (/obj/structure/cable/yellow{icon_state = "2-4"},/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel/dark,/area/engine/engineering/reactor_control) "iJV" = (/obj/docking_port/stationary{dir = 2; dwidth = 1; height = 4; name = "escape pod loader"; roundstart_template = /datum/map_template/shuttle/escape_pod/default; width = 3},/turf/open/indestructible/concrete,/area/layenia/cloudlayer) "iJX" = (/mob/living/simple_animal/pet/cat{name = "Stray Maintenance Cat"},/turf/open/floor/plating,/area/maintenance/port) "iKj" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/quartermaster/storage) @@ -3328,6 +3334,7 @@ "jKa" = (/obj/structure/closet/firecloset,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/dark,/area/science/misc_lab) "jKd" = (/obj/machinery/door/airlock/maintenance{name = "Law Office Maintenance"; req_access_txt = "38"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/turf/open/floor/plating,/area/lawoffice) "jKu" = (/obj/structure/table,/obj/item/camera_film,/obj/item/camera,/obj/machinery/light{dir = 1; pixel_y = 16},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{name = "air scrubber"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"jKw" = (/obj/machinery/atmospherics/pipe/layer_manifold{dir = 4},/turf/closed/wall,/area/maintenance/aft) "jKz" = (/obj/structure/table,/obj/item/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/pen/red,/obj/effect/turf_decal/tile/green,/obj/effect/turf_decal/tile/green{dir = 4},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/virology) "jKB" = (/obj/structure/sign/logo/kinaris{icon_state = "kinaris_sign4"; pixel_y = 32},/obj/structure/flora/crystal/small/pile,/turf/open/indestructible/layenia/crystal/garden,/area/bridge) "jKG" = (/obj/structure/table/wood,/obj/item/folder/blue,/obj/item/stamp/law,/obj/item/pen/red,/turf/open/floor/carpet,/area/lawoffice) @@ -3349,7 +3356,7 @@ "jNC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/science/lab) "jNJ" = (/obj/structure/cable{icon_state = "4-8"},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/light{dir = 1; pixel_y = 16},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel/dark,/area/security/main) "jNR" = (/obj/machinery/atmospherics/pipe/manifold4w/general/visible,/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/circuit/telecomms,/area/science/xenobiology) -"jNS" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/dark,/area/engine/break_room) +"jNS" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/effect/turf_decal/bot,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel/dark,/area/engine/break_room) "jNT" = (/obj/structure/chair/stool,/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 8},/obj/machinery/camera{c_tag = "Medbay Break Room"; dir = 4; network = list("ss13","medbay")},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay/central) "jNV" = (/obj/effect/turf_decal/stripes/line,/obj/effect/turf_decal/stripes/line{dir = 1},/obj/structure/fence{dir = 4},/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) "jNY" = (/obj/structure/table/wood,/obj/item/clipboard,/obj/item/clothing/glasses/meson/gar,/obj/machinery/light/small{dir = 1; pixel_y = 16},/turf/open/floor/wood,/area/crew_quarters/heads/chief) @@ -3423,7 +3430,7 @@ "jYc" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/machinery/computer/security/telescreen/prison{pixel_y = 30},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/security/prison) "jYe" = (/obj/machinery/atmospherics/pipe/simple/green/visible/layer3{dir = 8; name = "visible"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) "jYt" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/aft) -"jYA" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/camera{c_tag = "Research Division North"; network = list("ss13","rd")},/turf/open/floor/plasteel/white/side,/area/science/research) +"jYA" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/camera{c_tag = "Research Division North"; network = list("ss13","rd")},/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel/white/side,/area/science/research) "jYC" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/starboard) "jYD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/airalarm{pixel_y = 22},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/dark,/area/hallway/primary/fore) "jYF" = (/turf/closed/wall/r_wall,/area/maintenance/starboard/central) @@ -3569,7 +3576,7 @@ "kui" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{dir = 4; name = "air scrubber"},/turf/open/floor/plasteel,/area/crew_quarters/locker) "kuk" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/blue,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/machinery/power/apc{areastring = "/area/hallway/primary/aft"; dir = 8; name = "Aft Hall APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-2"},/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/hallway/primary/aft) "kup" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat/atmos) -"kur" = (/obj/machinery/door/airlock/security/glass{dir = 4; name = "Security Office"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/checkpoint/science) +"kur" = (/obj/machinery/door/airlock/security/glass{dir = 4; name = "Security Office"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/checkpoint/science) "kuA" = (/obj/effect/spawner/structure/window/reinforced,/obj/structure/cable{icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"},/turf/open/floor/plating,/area/medical/virology) "kuB" = (/obj/machinery/atmospherics/components/trinary/filter/atmos/n2,/turf/open/floor/plasteel,/area/engine/atmos) "kuD" = (/obj/item/twohanded/required/kirbyplants/random,/turf/open/floor/plasteel,/area/tcommsat/computer) @@ -3606,7 +3613,7 @@ "kzC" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/indestructible/concrete,/area/layenia/cloudlayer) "kzI" = (/turf/open/floor/grass,/area/layenia) "kzL" = (/obj/machinery/cryopod{dir = 4},/obj/machinery/computer/cryopod{pixel_x = -1; pixel_y = 26},/turf/open/floor/plasteel/dark,/area/security/prison) -"kzP" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/purple{dir = 8},/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"},/turf/open/floor/plasteel/white/corner,/area/hallway/primary/aft) +"kzP" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/purple{dir = 8},/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"},/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel/white/corner,/area/hallway/primary/aft) "kAb" = (/obj/structure/table,/obj/item/storage/firstaid/fire{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire,/obj/item/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/obj/machinery/door/window/northright{name = "First-Aid Supplies"; red_alert_access = 1; req_access_txt = "5"},/obj/effect/turf_decal/tile/blue{dir = 8},/obj/effect/turf_decal/tile/blue,/turf/open/floor/plasteel/white,/area/medical/sleeper) "kAl" = (/obj/effect/baseturf_helper/asteroid/layenia,/turf/closed/wall/r_wall,/area/maintenance/solars/port/aft) "kAp" = (/turf/open/floor/plasteel/freezer,/area/medical/sleeper) @@ -3740,6 +3747,7 @@ "kWZ" = (/obj/structure/cable{icon_state = "1-2"},/obj/effect/mapping_helpers/airlock/cyclelink_helper,/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) "kXh" = (/obj/machinery/shower{dir = 4; name = "emergency shower"},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel/freezer,/area/crew_quarters/fitness) "kXq" = (/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13: Auxiliary Dock, Station-Port"; width = 35},/turf/open/indestructible/concrete/smooth,/area/layenia) +"kXI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/closed/wall/r_wall,/area/engine/break_room) "kXX" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/hallway/primary/fore) "kYd" = (/obj/structure/sign/warning/securearea,/turf/closed/wall/r_wall,/area/science/xenobiology) "kYf" = (/obj/structure/lattice,/turf/open/space/basic,/area/layenia/cloudlayer) @@ -3792,7 +3800,7 @@ "lgf" = (/obj/effect/baseturf_helper/asteroid/layenia,/turf/closed/wall/r_wall,/area/maintenance/solars/port/fore) "lgh" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 1},/turf/open/floor/plasteel,/area/engine/atmos) "lgj" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 4},/turf/open/floor/plasteel,/area/engine/atmos) -"lgn" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 6; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/dark,/area/security/checkpoint/science) +"lgn" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 6; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/dark,/area/security/checkpoint/science) "lgo" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/structure/sign/poster/official/here_for_your_safety{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/primary/port) "lgw" = (/obj/structure/rack,/obj/item/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/obj/effect/turf_decal/stripes/line{dir = 9},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/white,/area/crew_quarters/heads/hor) "lgL" = (/obj/effect/spawner/structure/window/reinforced,/obj/structure/cable,/turf/open/floor/plating,/area/bridge) @@ -4224,7 +4232,7 @@ "myO" = (/obj/structure/table/reinforced,/obj/machinery/reagentgrinder{pixel_x = -1; pixel_y = 8},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/science/xenobiology) "myR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{dir = 4},/obj/effect/turf_decal/stripes/line,/obj/structure/cable/white{icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{name = "Atmospherics to Reactor"},/turf/open/floor/plasteel/dark,/area/engine/engineering/reactor_control) "myS" = (/obj/effect/turf_decal/tile/green{dir = 8},/obj/effect/turf_decal/tile/green{dir = 1},/turf/open/indestructible/concrete/smooth,/area/layenia) -"mze" = (/obj/effect/turf_decal/tile/red{dir = 8},/obj/effect/turf_decal/tile/red{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 5; name = "air supply pipe"},/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plasteel/dark,/area/security/checkpoint/science) +"mze" = (/obj/effect/turf_decal/tile/red{dir = 8},/obj/effect/turf_decal/tile/red{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 5; name = "air supply pipe"},/obj/structure/cable{icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/dark,/area/security/checkpoint/science) "mzg" = (/obj/effect/turf_decal/box,/obj/machinery/holopad,/turf/open/floor/plasteel{dir = 4; icon_plating = "floor"; icon_state = "floor_whole"},/area/quartermaster/office) "mzw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/science/misc_lab) "mzJ" = (/obj/machinery/light{dir = 8; pixel_x = -7; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/heads/captain) @@ -4247,6 +4255,7 @@ "mBF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel,/area/engine/engineering) "mBH" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/storage/tech) "mCB" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/door/airlock/glass{dir = 4; id_tag = "checkpointinner"; name = "inner airlock"},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/port) +"mCD" = (/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/engine/break_room) "mCJ" = (/obj/machinery/atmospherics/components/unary/vent_pump/on/layer3{dir = 1; name = "air vent"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel/white,/area/science/research) "mCL" = (/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{dir = 4; name = "air scrubber"},/obj/effect/landmark/start/station_engineer,/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/engine/engineering) "mCS" = (/obj/machinery/door/poddoor/preopen{id = "medpriv4"; name = "privacy door"},/obj/effect/spawner/structure/window,/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/sleeper) @@ -4267,7 +4276,7 @@ "mFO" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel/dark,/area/security/main) "mGa" = (/obj/machinery/gateway{dir = 1},/obj/effect/turf_decal/bot_white,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel/dark,/area/gateway) "mGd" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "mech bay"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{icon_plating = "floor"; icon_state = "floor_whole"},/area/science/robotics/lab) -"mGn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/power/apc{areastring = "/area/maintenance/fore"; dir = 1; name = "Fore Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/fore) +"mGn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/power/apc{areastring = "/area/maintenance/fore"; dir = 1; name = "Fore Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 1; name = "scrubbers pipe"},/turf/open/floor/plating,/area/maintenance/fore) "mGo" = (/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/effect/turf_decal/tile/yellow{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/engine/break_room) "mGu" = (/obj/machinery/computer/arcade/minesweeper{dir = 8},/turf/open/floor/carpet/black,/area/arcade) "mGx" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/effect/turf_decal/tile/yellow{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel,/area/engine/engineering) @@ -4836,7 +4845,7 @@ "okO" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/security/range) "okV" = (/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/yellow{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel{dir = 4; icon_state = "floor_plate"},/area/hallway/primary/fore) "okY" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{dir = 4; name = "air supply pipe"},/turf/open/floor/plasteel,/area/medical/virology) -"okZ" = (/obj/effect/turf_decal/stripes/corner{dir = 1},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/baseturf_helper/asteroid/layenia,/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/hallway/primary/aft) +"okZ" = (/obj/effect/turf_decal/stripes/corner{dir = 1},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/baseturf_helper/asteroid/layenia,/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/hallway/primary/aft) "olr" = (/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "1-8"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia/cloudlayer) "olu" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/machinery/door/airlock/command/glass{name = "Ferry Docking Airlock"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/bridge) "oly" = (/obj/structure/weightmachine/weightlifter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 4; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/wood,/area/crew_quarters/fitness) @@ -5219,7 +5228,7 @@ "pqe" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/fitness) "pqI" = (/turf/open/floor/plasteel/white,/area/science/lab) "pqP" = (/obj/effect/turf_decal/tile/yellow,/obj/effect/turf_decal/tile/yellow{dir = 8},/obj/effect/turf_decal/tile/yellow{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) -"pqW" = (/obj/item/wrench,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{dir = 6; name = "air supply pipe"},/obj/machinery/light/small{dir = 1; pixel_y = 16},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"pqW" = (/obj/item/wrench,/obj/machinery/light/small{dir = 1; pixel_y = 16},/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) "pqX" = (/turf/open/indestructible/layenia/crystal/garden,/area/hallway/primary/port/fore) "pqZ" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/engine/break_room) "prb" = (/obj/structure/flora/crystal/small/pile,/turf/open/floor/plating/asteroid/layenia/garden,/area/hallway/primary/port/fore) @@ -5487,7 +5496,7 @@ "qbU" = (/obj/machinery/telecomms/server/presets/engineering,/turf/open/floor/circuit/telecomms/mainframe,/area/tcommsat/server) "qcd" = (/turf/closed/wall/r_wall,/area/medical/sleeper) "qcl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 4; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) -"qcm" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/white/side{dir = 4},/area/science/research) +"qcm" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/science/research) "qco" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 6; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 5; name = "air supply pipe"},/turf/open/floor/plasteel,/area/security/main) "qcp" = (/obj/machinery/light{dir = 8; pixel_x = -7; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/turf/open/floor/plasteel{dir = 4; icon_state = "floor_plate"},/area/quartermaster/warehouse) "qcr" = (/turf/open/floor/plating,/area/maintenance/fore) @@ -5981,6 +5990,7 @@ "rqm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 10; name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/hallway/primary/aft) "rqp" = (/turf/open/floor/engine/o2,/area/engine/atmos) "rqO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white/side,/area/science/research) +"rqS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 1; name = "air supply pipe"},/turf/open/floor/plating,/area/maintenance/fore) "rre" = (/obj/structure/bed,/obj/item/bedsheet/red,/obj/machinery/atmospherics/components/unary/vent_pump/on/layer3{dir = 8; name = "air vent"},/turf/open/floor/carpet,/area/crew_quarters/bar) "rrp" = (/turf/closed/wall,/area/security/checkpoint/supply) "rrw" = (/obj/structure/table,/obj/item/storage/firstaid/regular{pixel_x = -9; pixel_y = 9},/obj/item/multitool{pixel_x = 6},/obj/effect/turf_decal/stripes/corner,/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel{dir = 4; icon_state = "floor_plate"},/area/quartermaster/sorting) @@ -6191,6 +6201,7 @@ "rSj" = (/obj/machinery/power/terminal{dir = 1},/obj/structure/cable{icon_state = "0-2"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/dark/telecomms,/area/tcommsat/server) "rSp" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/port) "rSq" = (/obj/effect/turf_decal/tile/purple{dir = 4},/obj/effect/turf_decal/tile/purple{dir = 8},/obj/machinery/light{pixel_y = -1},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/science/research) +"rSz" = (/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel{dir = 8; icon_state = "floor_plate"},/area/security/brig) "rSC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/quartermaster/miningdock) "rSE" = (/obj/structure/window/reinforced,/obj/machinery/doppler_array/research/science{dir = 2},/obj/effect/turf_decal/bot{dir = 2},/obj/effect/turf_decal/tile/purple,/obj/effect/turf_decal/tile/purple{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 9; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 9; name = "scrubbers pipe"},/obj/item/radio/intercom{name = "Station Intercom"; pixel_x = 26},/turf/open/floor/plasteel,/area/science/mixing) "rSI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fore/secondary) @@ -6309,7 +6320,7 @@ "sie" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/white,/area/medical/virology) "sij" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 1},/obj/structure/sign/warning/securearea{pixel_y = -32},/obj/machinery/light{pixel_y = -1},/obj/machinery/atmospherics/components/unary/vent_pump/on/layer3{dir = 8; name = "air vent"},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/hallway/primary/starboard) "sir" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-4"},/obj/machinery/power/apc{areastring = "/area/maintenance/fore/secondary"; dir = 1; name = "Fore Maintenance APC"; pixel_y = 24},/turf/open/floor/plating,/area/maintenance/fore/secondary) -"siu" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/dark,/area/engine/break_room) +"siu" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/turf_decal/bot,/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 1; name = "air supply pipe"},/turf/open/floor/plasteel/dark,/area/engine/break_room) "siv" = (/obj/machinery/portable_atmospherics/scrubber,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/dark,/area/science/misc_lab) "siG" = (/obj/machinery/computer/teleporter{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) "siH" = (/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/green{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel,/area/bridge) @@ -6609,6 +6620,7 @@ "sZv" = (/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/secondary/entry) "sZF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) "sZQ" = (/obj/machinery/light{pixel_y = -1},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{dir = 8; name = "air scrubber"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/turf/open/floor/plasteel/white,/area/medical/virology) +"taa" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel,/area/hallway/primary/port) "tag" = (/obj/machinery/door/airlock/research{dir = 4; name = "Testing Lab"; req_access_txt = "47"},/obj/machinery/door/firedoor,/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel,/area/science/research) "taj" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/maintenance/port/aft) "taq" = (/obj/machinery/door/airlock/security/glass{dir = 4; name = "Holding Area"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/security/checkpoint/escape) @@ -7234,6 +7246,7 @@ "uGR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{areastring = "/area/janitor"; dir = 4; name = "Custodial Closet APC"; pixel_x = 26},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/fore/secondary) "uHf" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel,/area/engine/break_room) "uHo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 10; name = "scrubbers pipe"},/turf/open/floor/carpet/red,/area/security/checkpoint/auxiliary) +"uHs" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{dir = 4; name = "air scrubber"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 1; name = "air supply pipe"},/turf/open/floor/plasteel,/area/engine/break_room) "uHB" = (/obj/machinery/computer/rdconsole/experiment,/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel/white,/area/science/misc_lab) "uHO" = (/obj/structure/railing{dir = 8},/obj/structure/railing,/turf/open/floor/plating/asteroid/layenia,/area/layenia) "uHV" = (/obj/effect/turf_decal/stripes/line{dir = 5},/obj/structure/closet/crate{icon_state = "crateopen"},/obj/item/toy/figure/ninja,/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) @@ -7375,7 +7388,7 @@ "vak" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/plasteel/dark,/area/hallway/primary/port) "vav" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/science/misc_lab) "vaV" = (/obj/machinery/atmospherics/components/binary/circulator/cold{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/circuit/green,/area/engine/engineering) -"vbb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/turf_decal/bot,/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel/dark,/area/engine/break_room) +"vbb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/turf_decal/bot,/obj/machinery/light{dir = 1; pixel_y = 16},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 1; name = "air supply pipe"},/turf/open/floor/plasteel/dark,/area/engine/break_room) "vbd" = (/obj/effect/turf_decal/bot,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/light{pixel_y = -1},/turf/open/floor/engine,/area/science/storage) "vbt" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/structure/chair,/obj/machinery/camera{c_tag = "Central Hallway North"; dir = 6},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/hallway/primary/central) "vby" = (/obj/machinery/light{dir = 1; pixel_y = 16},/obj/machinery/camera{c_tag = "MiniSat Exterior Entrance"; network = list("minisat"); start_active = 1},/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) @@ -7498,7 +7511,7 @@ "vtH" = (/obj/structure/flora/junglebush,/obj/structure/flora/ausbushes/brflowers,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/grass,/area/medical/sleeper) "vtI" = (/obj/effect/spawner/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"},/obj/structure/cable{icon_state = "0-2"},/turf/open/floor/plating,/area/security/checkpoint/engineering) "vtV" = (/obj/structure/chair,/turf/open/floor/plasteel/dark,/area/hallway/primary/fore) -"vuc" = (/obj/machinery/holopad,/obj/effect/turf_decal/box,/turf/open/floor/plasteel,/area/engine/break_room) +"vuc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 1; name = "air supply pipe"},/turf/open/floor/plasteel,/area/engine/break_room) "vui" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/engine/break_room) "vun" = (/obj/effect/turf_decal/loading_area{dir = 10; icon_state = "steel_panel"; name = "steel pannel"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/turf/open/floor/plasteel/dark,/area/crew_quarters/bar) "vur" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{dir = 8; id = "primaryshut1"; name = "primary blast door"},/obj/machinery/door/airlock/public/glass{dir = 4; name = "Central Access"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/dark,/area/hallway/primary/central) @@ -7602,7 +7615,7 @@ "vHU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel,/area/engine/engineering) "vId" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/structure/table,/obj/item/paper_bin{pixel_x = 1; pixel_y = 8},/obj/item/pen,/turf/open/floor/plasteel{dir = 8; icon_state = "floor_trim"},/area/hallway/primary/central) "vIi" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer1{dir = 6; name = "visible"},/obj/effect/turf_decal/stripes/line{dir = 8},/obj/effect/turf_decal/stripes/red/line{dir = 8},/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) -"vIp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/turf/open/floor/plasteel,/area/engine/break_room) +"vIp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{name = "air supply pipe"},/turf/open/floor/plasteel,/area/engine/break_room) "vIq" = (/obj/effect/turf_decal/stripes/corner,/turf/open/floor/plasteel,/area/hallway/primary/central) "vIB" = (/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit) "vIG" = (/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/blue{dir = 8},/obj/effect/turf_decal/tile/blue{dir = 4},/obj/structure/closet/secure_closet/freezer/cream_pie,/turf/open/floor/plasteel,/area/crew_quarters/theatre) @@ -7645,7 +7658,7 @@ "vNo" = (/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/hallway/primary/starboard) "vNs" = (/obj/machinery/door/firedoor,/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/primary/starboard) "vNw" = (/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/structure/sign/warning/electricshock{pixel_y = 32},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/hallway/primary/fore) -"vNz" = (/obj/effect/turf_decal/tile/blue{dir = 1},/turf/open/floor/plasteel/dark/side{dir = 4},/area/bridge) +"vNz" = (/obj/effect/turf_decal/tile/blue{dir = 1},/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel/dark/side{dir = 4},/area/bridge) "vNJ" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel{dir = 8; icon_state = "floor_trim"},/area/quartermaster/storage) "vNP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel{icon_plating = "floor"; icon_state = "floor_whole"},/area/security/brig) "vNT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 1; name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 6; name = "air supply pipe"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 6},/turf/open/floor/plasteel/white,/area/science/research) @@ -7798,7 +7811,7 @@ "whd" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper,/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/obj/effect/turf_decal/delivery,/obj/structure/fans/tiny,/turf/open/floor/plasteel/dark,/area/hallway/secondary/entry) "whi" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating{initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1},/area/layenia) "whr" = (/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/obj/structure/medkit_cabinet{pixel_y = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) -"why" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/blue{dir = 1},/obj/machinery/disposal/bin,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"why" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/blue{dir = 1},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) "whF" = (/obj/structure/chair/comfy/black,/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/wood,/area/library) "whP" = (/obj/structure/table/wood,/obj/machinery/light/small{dir = 1; pixel_y = 16},/turf/open/floor/wood,/area/crew_quarters/dorms) "wig" = (/obj/structure/displaycase/trophy,/turf/open/floor/wood,/area/library) @@ -7840,7 +7853,7 @@ "wnL" = (/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/effect/spawner/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"},/turf/open/floor/plating,/area/science/xenobiology) "wnW" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/brown,/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/aft) "woj" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/maintenance/port/aft) -"wom" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{name = "air scrubber"},/turf/open/floor/plasteel,/area/engine/break_room) +"wom" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/engine/break_room) "woo" = (/obj/machinery/gateway{dir = 8},/obj/effect/turf_decal/bot_white,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/gateway) "wop" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/structure/disposalpipe/segment{dir = 9},/turf/open/floor/plasteel,/area/janitor) "woy" = (/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior,/turf/open/floor/engine,/area/science/mixing) @@ -8043,6 +8056,7 @@ "wPe" = (/obj/machinery/atmospherics/components/unary/portables_connector{dir = 1},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel{icon_plating = "floor"; icon_state = "floor_whole"},/area/engine/engineering) "wPr" = (/turf/open/floor/carpet/purple,/area/crew_quarters/heads/hor) "wPM" = (/obj/structure/cable{icon_state = "1-2"},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) +"wPR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 1; name = "air supply pipe"},/turf/closed/wall/r_wall,/area/engine/break_room) "wPT" = (/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer3{dir = 4; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) "wPW" = (/obj/effect/turf_decal/tile/purple{dir = 4},/obj/effect/turf_decal/tile/purple,/obj/effect/turf_decal/tile/purple{dir = 8},/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/white,/area/medical/genetics) "wQm" = (/obj/item/twohanded/required/kirbyplants/random,/obj/structure/sign/warning/securearea{pixel_y = 32},/obj/structure/railing{dir = 8},/turf/open/floor/plasteel/dark,/area/hallway/primary/starboard) @@ -8257,7 +8271,7 @@ "xxg" = (/obj/structure/table/reinforced,/obj/item/multitool,/obj/item/screwdriver,/turf/open/floor/plasteel/white,/area/science/circuit) "xxr" = (/obj/effect/turf_decal/stripes/line,/obj/docking_port/stationary/random{dir = 2; id = "pod_lavaland4"; name = "lavaland"},/turf/open/indestructible/concrete,/area/layenia/cloudlayer) "xxF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{dir = 8; name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{dir = 4; name = "scrubbers pipe"},/turf/open/floor/plasteel,/area/security/main) -"xxL" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 1},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/security/brig) +"xxL" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 1},/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel{icon_state = "floor_plate"},/area/security/brig) "xxU" = (/obj/item/twohanded/required/fuel_rod,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/pool,/area/engine/engineering/reactor_core) "xxV" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/light{pixel_y = -1},/turf/open/floor/plasteel/dark,/area/gateway) "xxW" = (/turf/open/floor/plasteel/stairs/medium{dir = 4},/area/security/main) @@ -8413,7 +8427,7 @@ "xRH" = (/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/white/corner{dir = 1},/area/science/misc_lab) "xRM" = (/obj/structure/table/wood,/obj/item/pen,/turf/open/floor/carpet,/area/library) "xSc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/turf/open/floor/plasteel,/area/engine/atmos) -"xSh" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/neutral,/obj/machinery/camera{c_tag = "Chapel Hallway"},/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/hallway/primary/fore) +"xSh" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/tile/neutral,/obj/machinery/camera{c_tag = "Chapel Hallway"},/obj/machinery/computer/lore_terminal,/turf/open/floor/plasteel{dir = 1; icon_state = "floor_plate"},/area/hallway/primary/fore) "xSu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,/turf/open/floor/plasteel,/area/engine/atmos) "xSC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{name = "air supply pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{name = "scrubbers pipe"},/turf/open/floor/plasteel/dark,/area/medical/morgue) "xSK" = (/obj/machinery/power/terminal{dir = 1},/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/solars/port/aft) @@ -8631,7 +8645,7 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgT gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBcnBctBcjTgjTgjTgjTgjTgtyztyztyztyztyzkZatyztyztyztyzjTgjTgjTgjTgjTgtBctBctBctBctBctBcvlJtEkyfmgOnnUzprtvkavkavkavkavkaxspxspxspiOoxITmaOfsxekBazrrKtvXIftqftBfutePeuOPfuTviZiBioBToBToBToBToBTwjwtBbvRPwHkvFNfuWvoitdziygwIofvahKucjPjYcusjjQqfwljYcusjfxtqnQjYcusjfyCwGIrzxuLxuLxuLxmofcuMhHYfyPgqzdoVfyZhHYvmqxJUtqQnYhulbtwLtbwvKfhXYfKSfKWdHKxScxSuxYsybgycpjQYnJCxqDdsUotvtPCweofbOiyDrDurOkoHWwJorDupDFufIhACnhRrDueooarLwOKePNgTWgPqgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWyfmyfmtfkqucdVjkuptROiZnuATunJvRIiZnnUepCYfArnmMtrugPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBcuKhgTWgTWgTWgTWwsUtBcnBctBcfBVqBhqBhqBhlnmxIYxIYxIYxIYiHXfBpaeDxIYxIYxIYkJEqYxqYxqYxkJQtBctBctBctBctBctBctBcyfmyfmyfmnUzprtvkavkavkavkavkaqrlhogfDXiOowjmjTVeSsekBatkrKtslttQDtQDtQDmUEuOPnYFfElxnwpXJgPGsxDevQsFXwjwtBbvRPfFIfGffIufIGfJkfJrfJSibXaudqnTqnTtKvqnTtCgqnTtKvqnTaMIqnTqclfKiwGIpKwxJUxJUxJUxJUxJUhHYdKXobFqCxqpghHYvmqxJUtqQnYhulbtwLtbwvKffKQfKSfKWdHKwDZwSFqhxwSFwSFvRSdVuoRfbzmidPfNufNRxrurYutMbfFLwJowJoePNpDFufImKywdctMbwZuwOKwOKePNgPqvJJwsiwsivJJfoHfoHfoHdiGgPqdiGgPqtEkyfmtfktfklXcjLAtfktkLtlTpOWtortkLtrusUefQYtrutrugPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBctBctBctBcgTWgTWgTWgTWtBctBcnBctBcgdigdigdigdigdityztyztyztyztyzlvttyztyztyzlfDgdigdigdigdigditBctBctBctBctBctBcyfmyfmyfmyfmnUzprtvkavkavkavkavkaxspxspxspdTOxITqzmjSGekBfQmnERybdpkTwtTpkTfDnlZZrDHfRkfSlsyRcyFkFgcYYfTywjwtBbvRPvbAfTOwqpfUbfddmqVvbAsvAfUcrOznUanUanUafVjfVkfXCrOzrOzrOzjCJfXUwGIpKwxJUkYfkYfkYfxJUhHYhHYhHYsaMhHYhHYxJUxJUfYggcuvdCuLXuLXvKfgfrgfrfKWwbcrXkguVkuBnJCseSseSuaSjVvtoKvrttPCxwcghBqyObkQePNePNePNePNemgtqkbsmhRVePNePNePNePNePNgTWvJJiYmfqJrOBkAUfuBjdKgDHgTWgPqgTWyfmyfmyfmnGEnGEnGEnGEvsMtZtlgWjaHkGXnGEnGEnGEnGEnGEyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBctBcylMtBcgTWgTWgTWtBctBctBcnBctBctBctBctBctBctBctBctBctBctBctyzeKvtyztBctBctBctBctBctBctBctBctBctBctBctBctBctBcyfmyfmyfmyfmnUzgabvkavkavkavkavkagiYfhBgjrvZSxspglVxspekBwUDgulgulgulgulgulgulgulgulgulgmerUqbPabCmgmrotXwjwtBbvRPchcgmXgncchcgnqchcchcgoeuAIwGIwGIwGIwGIwGIwGIwGIgoGgoLgqjgqqgqvwGIpKwxJUpSppSppSpxJUxTZbajbgelTWiomoaGoaGxJUnxLdlwnxLnxLgrViOkgtNguFguSdHKhcQtPCluQmYPoWRxdOoWRmYPoWRmYPwgznJCuYSaqmoyGiwBwRVtBctBcqBcbxmbxmtBcdDhgTWgTWgTWgPqgTWvJJxGwntbvJJfOJxMZxMZnusgTWgPqgTWyfmyfmyfmnGEsiGiSflLJbrEaqTtcOmqMmpbnGEpGViJquLnnGEyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBctBcylMtBcgTWgTWgTWtBctBctBcnBctBctBctBctBctBctBctBctBctBctBctyzeKvtyztBctBctBctBctBctBctBctBctBctBctBctBctBctBcyfmyfmyfmyfmnUzgabvkavkavkavkavkagiYfhBgjrvZSxspglVxspekBwUDgulgulgulgulgulgulgulgulgulgmerUqbPabCmgmrotXwjwtBbrSzchcgmXgncchcgnqchcchcgoeuAIwGIwGIwGIwGIwGIwGIwGIgoGgoLgqjgqqgqvwGIpKwxJUpSppSppSpxJUxTZbajbgelTWiomoaGoaGxJUnxLdlwnxLnxLgrViOkgtNguFguSdHKhcQtPCluQmYPoWRxdOoWRmYPoWRmYPwgznJCuYSaqmoyGiwBwRVtBctBcqBcbxmbxmtBcdDhgTWgTWgTWgPqgTWvJJxGwntbvJJfOJxMZxMZnusgTWgPqgTWyfmyfmyfmnGEsiGiSflLJbrEaqTtcOmqMmpbnGEpGViJquLnnGEyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWuKhtBctBctBcgTWgTWgTWgTWtBctBctBcnBctBctBctBctBctBctBctBctBctBctBctyzeKvtyztBctBctBctBctBctBctBctBctBctBctBctBctBctBcyfmyfmyfmyfmnUzprtvkavkavkavkavkaxspxspxspfxhsCbsIcgwJekBgxnlpZieugyRgzRgAMuoMxwvkWwgBQgmefyvroFroFroFroFgCbtBbvvqxxLneTneTvjQkBLuMWgCvgDmtQShWntRtjUUkxiueSdPkwGIrhAsvPuAhrRHrTCwGIpKwxJUsBigFegFesBigIvxMyxMyjLexKidxEfiAxJUtvDugvxTrixpwcEvKfdZEubCgIDiKZsFnafokIheeIictpkCfuZjWtyktmVJgJVmlRsjFqyOixJbkQeFvtBctBcqBcbxmbxmtBcitUgPqgPqgPqbhTgPqiEgbJhjdKfuBfOJsPQoxRnusgPqwOpgPqtEkyfmyfmnGEppgjzChiWjsahHbyjtjWseYNfEpvtakAznYinGEyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBctBctBcgTWgTWgTWtBctBctBctBcnBctBctBctBctBctBctBctBctBctBctBctyzeKvtyztBctBctBctBctBctBctBctBctBctBctBctBctBcyfmyfmyfmyfmyfmnUzprtvkavkavkavkagLugLLhoghXSiOowjmgnMeSsekBpYKuoMgMhgNOgOVgOZgPdgPvgPTgulrXDlUksgOtzivMzsgOsgOvNPvMzvMzaoptzitzibNGtzitzimeApgVvRPtRtstIlAhgQwgRSwGIrhAsMnofuofugSqwGIpKwxJUuriuEquJDwKswgixMynpVcPssPBkhesOUxJUxJUxJUxJUizVxJUvKfhGqgWKwUutEPtDWyipwWRqqcoYvmdWwWRjRhoYvmskwWRmskoYvenbbkQbkQtBctBctBcqBcbxmbxmtBccRKgTWgTWgTWgPqgTWiEgxMZxMZxMZkAOxMZxMZnusgTWgPqgTWyfmyfmyfmnGEmnWvyclYignZhRhkxMjWsgGMnGExOClUHaCrnGEyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBcylMtBcgTWgTWgTWgTWtBctBcwsUtBcnPgtBctBctBctBctBctBctBctBctBcbgPjmaeKvjmabgPtBctBctBctBctBctBctBctBctBctBctBctBcyfmyfmyfmyfmyfmnUzprtvkavkavkavkavkaxspxspxspgXwgYThaftHNekBpYKuoMgzltEhtchggbpTmuoMqzohbljvakjbhIAhVimlclanhIAlTMmlcagvhIAnjvdWfhbQwngseLvQfavshVQhcDxHtlAhhdEgRSwGIwGIwGIwGIwGIwGIwGIpKwxJUkjYwuthfXwKswgixMyxMyrhaomVxMyxMycHXhgUiOhfxSubxeODvKfhGqgWKwUuxNLwzMpgJnhRpgJbNillCnhRllCmpvieQnhRieQfOmtBctBcfOWtBctBctBcoEilrPoFetBcxizgTWgTWgTWgPqgTWiEgfuBsPQjdKfOJjdKfuBnusgTWgPqgTWgTWyfmyfmnGEnGEnGEnGElzQkmsteSjmPvOenGEnGEnGEnGEnGEyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW @@ -8644,17 +8658,17 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgT gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmvlJwpFgOnyfmyfmyfmtBctBctBcyfmtBcgOngOnwpFuKhyfmyfmyfmyfmwedtBctBctBctBctyzeKvtyzmewmFGltMfGimufpiDltMejgxejxejxejxejxejyfmyfmyfmyfmyfmyfmyfmyfmylMgOnyfmtBcvqeooYepctWabYDbKpixavjThPdixiixXiyweMskWwpCEizFhPdeoSczLdKZvcofhjrdRrdRrdRrdRrdRqnyrdRiBdamqipGapkbJbsmvuDUoBTuALaELajSsnanxVbWItQTtQTxJUiBjdTZdvOiBPxJUiCJdQsarXxJUxaUqnHxMyxMyxMykoFhCZjennhwdpWvOHsECiDIiFfwrWpTXwrWfNkxGQwrWwrWrFligMiUdsWnafmoRRwlSiymbbgbBTmEncectBctBctBctBctBctBctBctBccRKgTWgTWgTWgTWgTWwOpgPqgPqgPqklggPqgPqwOpgPqwOpgPqgPqgPqgPqgPqqJHwgkrWoipjiNOoZQvbyipjxejxejuCcgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmgOnhhGvlJyfmyfmtBcgTWtBcyfmvlJgOnhhGgOnyfmyfmyfmyfmyfmpSstBctBctBctBctyzeKvtyztBctBxltMltMltMltMltMgTWgTWgTWgTWgTWgTWgTWyfmyfmwcKyfmyfmyfmyfmtBcgOnwpFyfmtqEtqEtqEtqEtqEazfxbCvjTvjTvjTqxDcGAcGAcGAcGAcGAcGAcGAcGAgbIvmOntmntmcbdntmntmkUZkUZkUZecQaBpbrziJclpkiJoiJDoBTsKewLylXpsnaiKOvXXtEKsnapUXeywiLPceXeywsnasnasnasnasnasnasnaioSxMydAdiaLdgevMCiMukATiMvnpGiMTeuOiNPboUkxnpusqDxqYfsqjsqjqBaeCevXmvXmvXmijQpjcbBTbBTmEnjOAxizwWhxhaayBxizwWhxhaayBxizgTWgTWgTWgTWgTWgPqgTWgTWgPqklggPqgTWgPqgTWgPqgTWgTWgTWgTWgPqgPqgPqxPYgPqiEgeOknusgPqgPqgPqgPqgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmvlJwpFgOngOnyfmyfmgTWgTWyfmwpFtBcvlJgOnwpFyfmyfmyfmyfmyfmtBctBctBctBctyzeKvtyztBctBclADgSCyjKiVKpQXgTWgTWgTWgTWgTWgTWgTWyfmyfmgOnvlJyfmyfmyfmgTWtBcgOntBcvqeiSXiVefBshytcXssYgexJsYgaifcGAiWiskbskbrtYdHZoiaiWZcGArnrkUZdfdiZXcPjjaBcPjrPhjaZkUZjdrjdGjdRwtgoBToBToBToBTaELaELajSsnabNctEKtEKpaZnwzfzOemxqEPdsisnacfToPKtzGjfzqAzsnaioSxMykEzjfUhWCsnLjgMjhpnBJvEgxJUvKfsXDrHisXDuPoxJUxJUxJUxJUxJUxJUxJUxJUxJUxJUxJUeAAeAAeAAuEpeAAgPqgPqgPqgPqgPqgPqgPqqurgPqgPqgPqgPqgPqgPqgPqgPqgPqklggPqgTWgPqgTWgPqgTWgTWgTWgTWgPqgPqchFgPqgPqiEgeOknusgPqgTWgTWgPqgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmyfmwpFvlJwpFyfmyfmgTWyfmtBcyfmgOnwpFvlJuKhyfmyfmyfmyfmtBctBctBcbgPjmaeKvjmabgPtBcxQunhRnhRnhRnusgTWgTWgTWgTWgTWgTWgTWyfmyfmylMwHbuKhyfmgTWgTWgTWtBcvqevqevqekdYqmDjjbqmDqmDqmDqmDkmvqTMskbmsfjjHjjViNnwWckOJcGArnrkUZiQLtpatpatpatpaqKwkUZkUZxoadbApdZjYDnkkamWamWamWmGnamWeWysnawwqtEKtEKpaZnwzmPmexOxBWxqusnauZEnPmnPmjkbnPmsnajkuxMykEzjlzvaVfZijmzuWQnBJtSifqBhmFlAUvzBhBqyheizrjqMjstnByqqiqqiqqiqqiqqilJMqqiqqiqqiqqiqqilJMqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqichLfaSchLqqichLchLqqichLchLchLchLqqiuodgPqgPqgPqrRMmIrhkmgPqgTWgTWgPqgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtEkyfmyfmyfmyfmyfmyfmyfmgTWyfmyfmyfmgOngOngOntBcyfmyfmyfmyfmyfmtzMtBctBctyzeKvtyztBcpPVqcTipjxejxejxAUgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmgOnylMyfmgTWgTWgTWuSTiQRjvBiQRuyjqmDqdHqmDqmDqmDqmDkmvqTMskbjwCjyXjzpgdhkDpkOJcGArnrkUZcPCuXqbHrjzYjAiawcntmpXgfCCdtQjArmVdvicsnasnasnasnasnaymipeIhHVhHVhHVhHVhVttQrnoxilSyhusnawdediOiuRiobnPmxCxjBVxMycJxmtZhtLemyjCEaCBhwBbfgvKfjCVlAUvpBeCPjfmofyjGgxeLwOpgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFxejgJFgJFfoHgJFfoHgJFgJFgJFgJFgJFdnsyfmyfmyfmeAAxdeeAAyfmyfmyfmgPqgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmyfmwpFvlJwpFyfmyfmgTWyfmtBcyfmgOnwpFvlJuKhyfmyfmyfmyfmtBctBctBcbgPjmaeKvjmabgPtBcxQunhRnhRnhRnusgTWgTWgTWgTWgTWgTWgTWyfmyfmylMwHbuKhyfmgTWgTWgTWtBcvqevqevqekdYqmDjjbqmDqmDqmDqmDkmvqTMskbmsfjjHjjViNnwWckOJcGArnrkUZiQLtpatpatpatpaqKwkUZkUZxoadbApdZjYDnkkamWamWrqSmGnamWeWysnawwqtEKtEKpaZnwzmPmexOxBWxqusnauZEnPmnPmjkbnPmsnajkuxMykEzjlzvaVfZijmzuWQnBJtSifqBhmFlAUvzBhBqyheizrjqMjstnByqqiqqiqqiqqiqqilJMqqiqqiqqiqqiqqilJMqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqiqqichLfaSchLqqichLchLqqichLchLchLchLqqiuodgPqgPqgPqrRMmIrhkmgPqgTWgTWgPqgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtEkyfmyfmyfmyfmyfmyfmyfmgTWyfmyfmyfmgOngOngOntBcyfmyfmyfmyfmyfmtzMtBctBctyzeKvtyztBcpPVqcTipjxejxejxAUgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmgOnylMyfmgTWgTWgTWuSTiQRjvBiQRuyjqmDqdHqmDqmDqmDqmDkmvqTMskbjwCjyXjzpgdhkDpkOJcGArnrkUZcPCuXqbHrjzYjAiawcntmpXgfCCdtQjArmVdvicsnasnawPRkXIsnaymipeIhHVhHVhHVhHVhVttQrnoxilSyhusnawdediOiuRiobnPmxCxjBVxMycJxmtZhtLemyjCEaCBhwBbfgvKfjCVlAUvpBeCPjfmofyjGgxeLwOpgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFgJFxejgJFgJFfoHgJFfoHgJFgJFgJFgJFgJFdnsyfmyfmyfmeAAxdeeAAyfmyfmyfmgPqgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWyfmyfmyfmyfmgTWyfmyfmwpFtBcwpFhhGgOnyfmyfmyfmyfmyfmyfmtBctBctyzeKvtyzxpHgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmwcKyfmyfmgTWgTWtBcvqevqevqejGZjJsqmDqmDqmDqmDqmDkmvqTMskbskbuBVjJFnrUblujOlcGArnrkUZjKdkUZiMbhzsjKGocwntmapkfCCaqUjArjKVsnaqaajajvbbjNSsnahHVhHVaMvjNYsIJkEWhHVodbnoxnAhjOTsnawdediOslDwYwnPmxCxewcxMybsDxOTbxSraYjQcusumBFtSivKfwmLlAUppMyhuyheipCerAxeLnusgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqklggPqklggPqgPqgPqgPqgPqyfmyfmyfmvlJtyzxdetyzylMyfmyfmtEkyfmyfmdiGyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWyfmuKhtBcuKhtBcvlJwpFyfmyfmyfmyfmyfmyfmtBctBctyzeKvnDpgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmyfmyfmyfmyfmtBctBcwpFvqejYNaUujYQbVaunkunkunkunkmVqcGAqTMqTMqTMqTMcGAuUhcGAcGAuKajXIrnwkUZkaokbmkbKpdQntmhdHfCCaqUjArnHdsnadyvjajsiujNSsnahHVuUdkcbuePmBwkeehHVeksnoxilSqYVsnaqVuvRbcFNkefnPmxCxxQgxMykghdmRvYQdmRkheeuAkhjguWvKfkjklAUppMyhuyhejhUhXwsnawOpfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHwOpfoHwOpfoHfoHfoHfoHbaleAAlfOtyztyzeAAsZfeAAtBcaUbyfmoYSoYSoYSoYSyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWtBcylMgTWyfmyfmtBctBcyfmyfmyfmyfmktDjWUyfmyfmtEktBctyztyzeKvtyzguZgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqnTyobMlVzoYPsaasaasaasaasaasaasaasaatqEtqEtqEkvpeXBkvyepcyiatfhbPSkeFkeFjVutixpFkkvWvjTvjTvjTtVOkUZkUZkUZkUZkUZkUZvAWfCCaqUjArapkkwnkwPfcdfcdwomkxehHVhHVhHVhHVuachHVhHVhHVtAnpmfkBVsnanyUimdcLtpLQmWQkCCrcturfkDntLItYgpIjpIjwFOqoirHlvKfkDvlAUppMyhuyhewgdrHbxMDvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkqoPbCwlLhlLhlLhrjKmTqtyztBcdnVyfmoYSjkzuFfoYSyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiFlfoHfoHfoHguZgTWgTWgTWgTWtBcgTWgTWyfmyfmyfmyfmyfmyfmyfmtBctBctBctBcalOtyztyzemJrTxikBwOpfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHnJFnJFnJFwZnsaahqVjAYpLVrIEkKfsxpqfwrIEkKwkrLtqExBXqmDkLzepcyiaekQbUjkeFkeFkLKaiMjjzkLbkNskNLvjTprSxXjkNZggrkrBqPVxGapZEfCCaqUjArapktJnkPlfcdvucsazdhMhHVkPqkPTkQdtcKayToJHhHVwcQgGYyhuuHfnvsqKQtJXkQwnPmxCxaYyxMyaNNxMykRVfedwPeoYslAPemivKfwmLlAUppMyhuyhesnasnasnasnaaFMxBmxBmxBmxBmxBmxBmxBmxBmxejxejxejxejwOpxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejvFVmLneAAtyztyztyzeAAefeeAAreBopNoYSoYSmSGojyoYSyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWtBcylMgTWyfmyfmtBctBcyfmyfmyfmyfmktDjWUyfmyfmtEktBctyztyzeKvtyzguZgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqnTyobMlVzoYPsaasaasaasaasaasaasaasaatqEtqEtqEkvpeXBkvyepcyiatfhbPSkeFkeFjVutixpFkkvWvjTvjTvjTtVOkUZkUZkUZkUZkUZkUZvAWfCCaqUjArapkkwnkwPfcduHswomkxehHVhHVhHVhHVuachHVhHVhHVtAnpmfkBVsnanyUimdcLtpLQmWQkCCrcturfkDntLItYgpIjpIjwFOqoirHlvKfkDvlAUppMyhuyhewgdrHbxMDvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkvwkqoPbCwlLhlLhlLhrjKmTqtyztBcdnVyfmoYSjkzuFfoYSyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiFlfoHfoHfoHguZgTWgTWgTWgTWtBcgTWgTWyfmyfmyfmyfmyfmyfmyfmtBctBctBctBcalOtyztyzemJrTxikBwOpfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHfoHnJFnJFnJFwZnsaahqVjAYpLVrIEkKfsxpqfwrIEkKwkrLtqExBXqmDkLzepcyiaekQbUjkeFkeFkLKaiMjjzkLbkNskNLvjTprSxXjkNZggrkrBqPVxGapZEfCCaqUjArapktJnkPlcsdvucsazdhMhHVkPqkPTkQdtcKayToJHhHVwcQgGYyhuuHfnvsqKQtJXkQwnPmxCxaYyxMyaNNxMykRVfedwPeoYslAPemivKfwmLlAUppMyhuyhesnasnasnasnaaFMxBmxBmxBmxBmxBmxBmxBmxBmxejxejxejxejwOpxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejvFVmLneAAtyztyztyzeAAefeeAAreBopNoYSoYSmSGojyoYSyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmorfyfmtEktBctBctBctBctBclfCjBPjBPqHZtEkeCdqoPqoPqoPqoPqoPqoPqoPqoPqoPqoPqoPqoPqoPqoPeZJgmBaFFqGesaaqJewXCqTLrIEvIGlhCqUOrIElkGadItqEfhEqmDkLzepcyiagRGgRolmOlnblnepomdQAnhrvjTlntvjTrnrksyksyksyksyksyksylnQfCCsZcjArapkloeioblnYvIpaemhAMhHVlpniQBlqqlqKsfvkiTqYvnDQryzsXNbTKhkamsjhMOeTlnPmxCxgkgxMymjUxMysXDsXDsXDoYslAPfIevKfjfelAUqkJyhuyhefWVxMMoNzdVxxBmpvBiOfaaYqdGuMuhdldJBxBmgPqgPqgPqgPqmapgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqyfmyfmwcKvlJuuUlEtxIYxIYxIYpWhdABgKCygjoYSyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqiEgorldiGpggnusgPqgPqgPqgPqgPqgPqgPqgPqtEktBctBctBctBcltjltyltNtBctBcalOxejwOpvQaosUqQOwOpxejxejxejxejxejxejxejxejxejxejxejxejxejnJFnJFnJFkgHsaaszVrmCrMcrIEsIglwHsYQrIEkgHwHEtqExBXqmDkLzepcyiagRGqfWqfWqfWqfWpomdaZnhrtpQhsNvjTrnrksylyiaPQqEMpIxrgGapkpvWcbhjArvjMjtybauluVrjZlyHlzihHVlzpoTllzRlAznJWxwylqPnDQdyjxIquHfwdefWagYWoulfZvxCxoInxKiaNNxMyylPxIDxMyoYslAPtjYvKfsXDlAUppMqYVyhesCHnrHnrHfbXxBmtHpvUrpcatEfflDhyclDkxBmxBmlHzlHPlIiklggTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmyfmwuvldJjjNjTBaexoYSoYSgdOpGaoYSyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgrCwwyjtmAnusgTWgTWgTWgPqiFlfoHfoHfoHalOtBctBctBctBclJVlJZbgPyfmyfmtEkgTWmcCxejxejxejpPQgPqgPqgPqgPqgPqgPqgPqgPqgPqnTytBctBctBcylMtBclVzudnsaarIEufCrIErIErIEuwGrIErIEkgHwLctqEvjTvjTvjTnrjwGNlLDepcqmDqmDepctbEhiPtYcvjTvjTvjTrnrksymSwciRlLHaHEksyksyiiZaeYlLWwtgsnasnasnahqkeZGhqkhHVlMuviIlMBlNDlNMlQBlQYnDQdyjyhusnauBGgmQtQVwdetvusnaaNougvuUajAmoScoScjAmjAmlwfxJUvKfxJUeholUMqRQclKwHwakBeQPwHwxBmdfEiaBxNTdPGbQixpjdfElVClXglXKlXRlZMklggTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmyfmyfmyfmyfmyfmyfmoYSoYSoYSoYSyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWmcCxejxejxejpPQgTWgTWgTWgPqiEgwOpwOpwOpmcBtBcyfmyfmmdxcfwlJZyfmyfmwcKylMgTWqITgTWgTWgTWqITgTWgTWgTWqITgTWgTWgTWtBctBctBctBcsGhtBctBcmcSlVzeVhwvTmqFmubmqFmqFjLTmdOgmBhGjuFXuTctqEmeemhdvjTjxhwSGswPmjYqmDqmDmjYvCcmSvnhrvjTtuhfGJuGRksysDlqOdqOdoexmlfksyddqcbhmlFacrhMbhCtpwZgGPmnmmnUvsnmoGmsibxfvsnmtrvsnvsnahEonRpoDpLnpLnpLnpLnpLnpLnpLnmuJlgdlgdmuJlgdlgdmuJlgdlgdmuJmvDhDllAUppMyhurOTejNmwbwyzgBUpsOiHEppEroIaskroIdbqiHEnQBkwxyfGcFHlZMklggTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWyfmyfmyfmyfmyfmyfmyfmyfmyfmyfmyfmyfmgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgPqiEgsRgdhjwQCwQCwQCwQCwQCwQCwQCwQCxHItccyeAyeAyeAtccyeAyeAyeAtccyeAyeAyeAtcccsUmGZmGZmGZmGZmGZmGZmGZmGZsTFsTFmGZvTTeAUeAUeAUeAUeAUudawLcwLcmAxmxIwLctqEcsNdfhgZZsTLmvdtWhbvjcqQcqQbvjprPaBFokpjRRjXIvSKgphmyLmAcsbigOQfPKwoppvimAOcbhmlFacrmAPmiRoLZvzHsXEpVJksEgWEgWEgWElfzmDAtljvuivzHdyjpSDpqZnSmuyIuyIuyIuyImEKuyIuyIuyImEKuyIuyIqLcuyIvsxkTJuyIuyIbWUppMyhuhtzuxuujhhRMaJvxBmdfEpXDnNwsLzjDLfpKoeWvRzbjlvpEitylZMklggTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgPqiEgsRgdhjwQCwQCwQCwQCwQCwQCwQCwQCxHItccyeAyeAyeAtccyeAyeAyeAtccyeAyeAyeAtcccsUmGZmGZmGZmGZmGZmGZmGZmGZsTFsTFmGZvTTeAUeAUeAUeAUeAUudawLcwLcmAxmxIwLctqEcsNdfhgZZsTLmvdtWhbvjcqQcqQbvjprPaBFokpjRRjXIvSKgphmyLmAcsbigOQfPKwoppvimAOcbhmlFacrmAPmiRoLZvzHsXEpVJksEgWEgWEgWElfzmDAtljvuivzHdyjpSDpqZnSmmCDuyIuyIuyImEKuyIuyIuyImEKuyIuyIqLcuyIvsxkTJuyIuyIbWUppMyhuhtzuxuujhhRMaJvxBmdfEpXDnNwsLzjDLfpKoeWvRzbjlvpEitylZMklggTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgPqiEgwOpwQCkXhsqknrEmHDimRnrEmHGrvOuUVwkfsksnLurfRtCKskspdmrfRtCKsksnLurfRmIBhQzxutiCCmISwhPmKceAUxuxuRMmKdklDhIFczNeAUvPxkAGcvpeAUmLjwLcmLomNFmPgmQQtqEmeeuflmQSqYMiBkmiXmjYqmDqmDmjYcSgmiXgRGvjTqPVePPuSJksyksyqOdqOdqOdnQNnYUmAOcbhmlFmQVmRabwrnZvhBnjmipAJpAJpAJpAJievpAJbgcpfEbOZpfEffmxWFjFjxWFxWFxWFxWFxWFxWFxWFxWFxWFksCxWFxWFxWFxWFxWFlRsxWFxWFxWFdIffUCliQrRPmTssfmaJvxBmdfEmuplhWhtJhQObeNrOHxBmxBmovKlHPtByklggTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgPqiEgwOpwQCmHDthhnrEmTDthhnrEmUbjyQuUVmUrxDBxDBxDBxDBaIpdgIaRwgekgekgekqDcuTiyeEaUQiCCossmUSpelmVWeljkSouXsuXspCWnUjmWgnGGylwfzteAUkgHwLcmWDeZcmXhmXttqEmxNmyFvjTvSAdvsepcepcqmDqmDepcepcepckWqvjTqPVqPVrnrmXLmXYqyLlIqykydBeksypvWcbhmlFmQVmZwxJomjBrjYndzuYxqMxncvuUXsVBuUXndzrJxnehnfuilSsqPvLHurhurhurhurhurhurhurhurhxYUurhurhurhurhurhurhjgwurhurhurhurhmZUiyyotGogZrYRhkBxBmcIbiUgdqFcXxegptXWsOYmBHqtzfoHfoHfoHwOpfoHxizeAAeAAgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgGFfoHfoHfoHguZgTWgTWgTWgPqiEgwOpwQCmTDmuFnrEbgothhnrEdyTiztuUVrbJxDBkMHsXBkOneqNngJwFUkOnsXBqKiaJsuTiaTJcGyiCCvYBlUcngWeAUnhlbPJnhnnilniMaDReAUeAUeAUeAUeAUewvxGaxGaxGaxGaxGavjTvjTvjTvjTvjTvjTvjTvsGnkWsLgvsGvjTvjTvjTvjTxGaxGalsxksyksyksyksyksyksyksygkrmgBnlpwtgsnabnKreWnohreWjuMjuMjuMuOOiayuOOjuMjuMjuMmjHlkWcvQfMpnoQnoQnoQnoQjuMjuMnpMnpMnpMjuMnpMnpMnpMnpMnpMjuMnpMnpMnpMjuMjuMpMyhVJcztdsvsnaxBmxBmxBmxBmxBmxBmxBmxBmxBmuXIuXIuXIuXIuXIuXIeAAnqDeAAgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW @@ -8668,7 +8682,7 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgT gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqiEgwOpwQCpfacommNqhlThlTrNjhlThXqrPepfIjdVgwHloklbzhoxuKjpjkphhpiSxeCkvNcEyuKReIWkDUgEMkyqskTeAUuQcoUVoUVaSVaBfmLApRhnGGuXlcvpeAUwwlsHStuvbSJqGXutLrNyqyMwMggyuutLdRllxTpjnutLssjklbuYvaoEkppaNIvxcvxcvxcvxcpjuuUitkxaZRpsBpjMvcpvAXdtBpjUesXmYLfmGvxJcSbaMppksaMprSjaMppljplEpmRpmZrlqdRepnFvsJdfWrGthFlbsvtzbvsJgPqgPqgPqvJJgPqgPqgPqgPqgPqvJJgPqgPqgPqjGYgOnlgLdaTvgfoQPmTkyiqwQDprtvkavkavkavkavkavkavkavkavkavkavkaprtkmweAAeAAeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiFlfoHfoHfoHfoHfoHfoHfoHfoHfoHwOpsRgwQCnrEnrEnrEnrEnrEnrEnrEnrEuUVuUVuUVhQojxJuUVuUVuUVuUVuUVuUVuUVuUVuUVrHfhQouUVrPerPerPeeAUbcLeAUvivmPdeAUbcLeAUpoYecgfzteAUpqXprbprdbSJqGXutLutLutLuEZgAeutLutLutLutLutLttittittittipWHpreprrvuZqmqvxcprLpsfbLBmEGuhspsMvARaOuvARptLrWGlqjrWGqypcSbeDIpuLpuLsjkpvYpvYpwHpwNpxEygQpxJiFkvsJpfzuCpnzbtMphKLvsJpyKpziwwXtivwwXwwXwwXwwXwwXtivwwXwwXpzLdsvtBcdsveEkvgfoQPfrwvlJavAprtvkavkavkavkavkavkavkavkavkavkavkaprteAAeAAeAAeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpxejxejxejxejwOpwOpwOpwOpwOpwOpwQCpBvbHUuzcnBSnrEmxLjKukiunBppBGpCovOwrWJtPqpDbqCRnoPmzPsODkBawYBpDttbHeiZcCnejjejjtuXspRejjuJKekdbZpcCnejjeAUeAUeAUeAUeAUpEQpEWpFdbHGfmCutLrNygCzqnmjtDutLoZcrmpqHfjXIkxdiptjXIkswrDwvxcpFBrDXhDavxcidHvlipFJpGolARqimpHuphkbnfgrGvgNvrqvrqcvNcSbkWXnYfpJZxNypLdpLzpLLpMlpOhmMQsuhiMVvsJvsJvsJqsqvsJvsJvsJqMMbHCcVxpYgsjAnNtgWcnNtsjApPjxUGpQdpQQdsvgOndsvdaTvgfoQPlgLtBcnUzprtprtprtprtprtprtprtprtprtprtprtprtprteAAnqDeAAeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqgPqiEgnusgPqgPqgPqgPqfDfadRadRadRadRadRxZCpTgnxDlCtsuleGIbHUpeFkdcsODpUgrChgfNpVcgfNpUGqGqpURpURsODfNzpZvpZvvDWpZvpZvpZvpZvoXmpVspZvpZvpZvvDWdlnpZvpVMvgBvTvmZMhWAhWAhWAhWAvipgqAutLutLutLutLpWtutLdGkhJVhOXpWDcHspWYcHscHsbwppYkxeepYIlSgvxcuSguSguSguSguSguSgpZjpZsdhoqkiqkiqkiqkiqkicSbnnLjWCdUwxNyqaxqbUqcXqdKqdZqeyqgpdaMvsJlrcmknnipnRairevsJiLTvUYuSmqanqanqgAqgAqgAqanqanuSmnNtqhDdsvgOndsvdaTgxlwJjdsvtBchGWxDVwuGkFGkFGkFGkFGkFGkFGkFGkFGkFGkFGkFGeAAnqDeAAeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqgPqiEgnusgPqgPqgPqgPqfDfadRadRadRadRadRxZCpTgnxDlCtsuleGIbHUpeFkdcsODpUgrChgfNpVcgfNpUGqGqpURpURsODfNzpZvpZvvDWpZvpZvpZvpZvoXmpVspZvpZvpZvvDWdlnpZvpVMvgBvTvmZMbNkhWAhWAhWAvipgqAutLutLutLutLpWtutLdGkhJVhOXpWDcHspWYcHscHsbwppYkxeepYIlSgvxcuSguSguSguSguSguSgpZjpZsdhoqkiqkiqkiqkiqkicSbnnLjWCdUwxNyqaxqbUqcXqdKqdZqeyqgpdaMvsJlrcmknnipnRairevsJiLTvUYuSmqanqanqgAqgAqgAqanqanuSmnNtqhDdsvgOndsvdaTgxlwJjdsvtBchGWxDVwuGkFGkFGkFGkFGkFGkFGkFGkFGkFGkFGkFGeAAnqDeAAeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgnusqITgTWgPqgTWqAEkLvoRyoRyoRyoRyxkKqhInxDlCtsuleGInFHvoHqiWsODqiXtijiQsvfrufovnvuLbuLbuLbqjnceuiPDpRdogDtDGtDGxiRtDGtDGpSrtDGeyytDGaCkkABjdikdyhlBhlBhlBhlBhlBhlBhlBuGIqnSlJEjXIjXIjXImdIrSIuxBbSzcHsqjGuExhHJlvDcHsxqkvxcqlSknDtUMlEDqmhqpeqpeqpeqpeiWVqppfogokVsbkmgTmgTmgTebacSbqrQvTYvTYriGvTYvTYapJphxrbxrbxqrZmtzvsJvsJqsqvsJvsJvsJvsJxqMqsshWdhWdqsEtoetoeqtcbnkhWdhWdioMxqMdsvquTdsvdaTvgfoQPdsvdsvnEuptcdsvtBctBctBctBctBctBctBctBctBctBctBceAAnqDeAAeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpwQCwQCquPquPxkKoRyoRyoRyoRyoRyxkKqvhnxDbHUwPdnrEeGIqvCeGIsODqvHkuipUuqwgqwCvDzriTriTriTqwNihVihVihVcUljkStewdtLjkSjkSqxjjkSwXcauTjkSjkSjlTqzdjkSjkSjkSjkSjkSjkSjkSnzFrtXtiZgIXhcUhcUhcUhcUmwzhcUhcUqzLhqKtRwjFzcHsvxcvxciWaexZuABqBTgmitohsSdqCqqEwqExazicVVcjwpaxlGmlGmlGmlMZcSbxgrfrkmZgxNyqEHvUJqENyeYqFtvgtfluqFvpYDqFGngyqFZdsveMvcOvqanqGnhWdnOBqsEqGsmGXtoebnkkRqhWdwwHqanxudqGudsvpbWvgfoQPqJlxbRqJWgJvdsvfvApPVipjpPVpPVpPVipjpPVpPVpPVlgSeAAnqDeAAeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpwQCbswsJoqKexkKoRyoRyoRyoRyoRyxkKkpRawtuFikpRnrErpLjporpLsODqKOrChqMdqMetUvrDTqOTqOWwpMsODqPtljzfawfawbljuYBkNvuYBuYBspRspRspRspRspRspRxdAspRegkrtUfbbspRtbicRVispirHirHhcUsIyqQfqQxwVDqQzjRwqRAhcUwvReEIodniIBcHsqRWvxcqscopBqSmlEDqSHbJQbJQppJqTmqTyqppekAkialGmqTKqTQlGmeDacSbwdhwdhwdhxNywdhwdhwdhiIZkTVvYdsPGqTWxzkpeQlfosIkmclqUAiwvidLqVxoLrnlLndrfZwfZwfZwndrmcYdAYiwvsjqtjUqVOqWqrBoqWNkOmqXsqXsqXshLLdsvgTWgTWgPqgTWgTWgTWgPqgTWtBctBctBceAAnqDeAAbgqprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW @@ -8681,8 +8695,8 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgT gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgnusdNvgTWgPqgTWjYYoRyoRyoRyoRyoRyipokpRcEslvpkpRwQCftOftOftOtdbvkavkavkatdotdstMwtdHnlQnlQcTDiDEiDEiDEiDEiDEiDExzHxZaxZasgqhcUtfEtfVeyunioaLoeetthbdmNthfdmNhcUexnetgsKKbvHdmNdmNdmNdmNdmNfAYhAVgoStHXtkdxaKafktlttmVtmXtnntnOgMxwmPtBctBcgPqgPqgPqgPqpEZtnYnwhtqohFLgPqgPqgPqgPqtBcwpFjYFjYFgpSouPesKmZDmXJrkYplYxDnmardfMxLeayAapVttHtuctuYvkYbFNdsvugQyjsybYmMosrFcZOugQdsvhWdxmOtwRtxPaAUgRptyntyCncqtzQhXPsHwhXPnolxjqwMkdyYdyYdyYmGBopkuxIhqnhqnhqnhqnhqntzXprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqgPqiEgnusgPqgPqgPqgPqkHtgdTgdTgdTgdTgdTclHtCbtCbtCbtCbwQCwyjwyjwyjiZUvkavkavkaprtmoQtGxtHabVObVObVObVObVObVObVObVOsnybVObVOtHunPBhcUtHwaZpiQptHQnUmdobtIZtJEdmNdmNprEquggNvsKKkmqmphhpIhpIauCbsGtMctLxtZJtHXtkdfFStMdtMPtMPtMPtNfrkvsNqvlJtBcgPqgPqgTWgTWgTWpEZtnYvjAtqohFLgTWgTWgTWgPqgPqtBcgOnjYFgpSrwDdPnhEIdkNrcGsloeFbxdNtNhkFkkFktObmnsteEplYhWdrwcdsvugQgUAufXtOzufXsGUugQdsvhWdwOCdsvdsvhXPsJxddPtPDtQytRahXPpiihXPtSMnAdnAdnAdnAdvIBiffbyZfdNtUNvTjvTjvTjdfttVdtVKvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpfoHfoHfoHfoHwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpxPRtXfbZftXfqBSbvFhARbvFtYGhTxnmunmunmunmuhTxtYGbvFoeAtYKszdiRjhcUhcUhcUhcUhcUhcUhcUhcUhcUhcUhcUhcUhcUwETifCsIatZitZiujWniofFAriaojiuqUtHXtkdvZPtZluaUuaZubAubOqrCsNqwpFgPqgPqgTWgTWgTWgTWpEZtnYbqNtqohFLgTWgTWgTWgTWgPqgPqtBcjYFrYvacUrjHiKAcTJavKaCaucFucPucXudkidVfEnpSPiIlplYshunPudsvugQoINufXuISfSfqunugQdsvcSeuhAxClhXPuiPnnQriPkcMriPriPtbNrpFhXPuiWuiWuiWuiWujdujeujEukYbXDlzalzalzalzalzalzaprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqwTpxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejwOpnusgPqrfyuXnuXnuXnuXnhYBbvFoHohTxoXRoQXeJSeJShTxrHSbvFjBYrWOiIsnPBmoQePguoalHyuozlgorQalHymCBlePpIBblKhcUuKQqvctYbtNyupuupuupDuVOupVykEupYtHXtkdxaKfhPuqEuqVurQubOutlsNqtBcgPqgTWgTWiFlmPwmPwgFRtnYbqNtqoiwmmPwmPwguZgTWgTWgPqtBcjYFkPMxXBdPnuuguwtendplYplYplYuuVplYplYuuVuuWplYplYhWdozXdsvugQugQugQugQugQugQugQdsvnzxxBcuvauvguwAdNRixqtrzqreobRhXPwNMhXPnYDrHtuwVlBGuxkujeujEukYbXDlzancFuxZncFlzaeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqiEgnusgPqfNHeBZxpzxpzxpzxpzbvFuyfhTxhTxhTxhTxhTxhTxuyfbvFbvFuyviIsnPBmoQvseroWlHyuozstMgrelHymCBleProWvsehcUiOxftwfvhfvhlDefvhfvhfvhueIvunbXJeJscHsuzsuzyuzTuzTuzTuAYuBMgMxtBcgPqgTWgTWpEZuDpasSvbtliJqQmesWuEKatFuEStKCgTWgTWgPqtBcjYFrVCxPbdPnqXZbhGoHsdPnuEWvNovNovNondkvNowxWblQdsvhWdrwcdsvuFpuFUuFZuIdjKBqlUuqFdsvhWdflYxClhXPuIioEueISuILuqomfWhXPjHRhXPuwHuKSrHtuLlnbCujeujEukYcmjlzauMhgKeuMolzaoDpprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqwTpxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejwOpnusgPqrfyuXnuXnuXnuXnhYBbvFoHohTxoXRoQXeJSeJShTxrHSbvFjBYrWOiIsnPBmoQePguoalHyuozlgorQahormCBlePpIBblKhcUuKQqvctYbtNyupuupuupDuVOupVykEupYtHXtkdxaKfhPuqEuqVurQubOutlsNqtBcgPqgTWgTWiFlmPwmPwgFRtnYbqNtqoiwmmPwmPwguZgTWgTWgPqtBcjYFkPMxXBdPnuuguwtendplYplYplYuuVplYplYuuVuuWplYplYhWdozXdsvugQugQugQugQugQugQugQdsvnzxxBcuvauvguwAdNRixqtrzqreobRhXPwNMhXPnYDrHtuwVlBGuxkujeujEukYbXDlzancFuxZncFlzaeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqiEgnusgPqfNHeBZxpzxpzxpzxpzbvFuyfhTxhTxhTxhTxhTxhTxuyfbvFbvFuyviIsnPBmoQvseroWlHyuozstMgrelHymCBleProWvsehcUiOxftwfvhfvhlDefvhfvhfvhueIvunbXJeJscHsuzsuzyuzTuzTuzTuAYuBMgMxtBcgPqgTWgTWpEZuDpasSvbtliJqQmesWuEKatFuEStKCgTWgTWgPqtBcjYFrVCxPbdPnqXZbhGoHsdPnuEWvNovNoghOndkvNowxWblQdsvhWdrwcdsvuFpuFUuFZuIdjKBqlUuqFdsvhWdflYxClhXPuIioEueISuILuqomfWhXPjHRhXPuwHuKSrHtuLlnbCujeujEukYcmjlzauMhgKeuMolzaoDpprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgnusgPqfNHnUzprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtbvFckexEAmoQenaaAXvVvfwuaonuOwaonaonqDnqGlvsehcUhcUwqTwqTwqThcUtbptbphcUwqTwqTwqThcUcHscHsuPbuQmuQmuQmcHscHsgMxtBcgPqgTWgTWpEZatWliJesWesWuRJesWncotEWauGtKCgTWgTWgPqtBcnFXmrBdPndPndKVlRArcGdPndPnmaboEpuSCuSDuTJuUZdPndsvuVVuXcdsvdsvogqogqogqogqogqdsvdsvuVVuaudsvhXPhXPhXPhXPhXPhXPhXPhXPhXPhXPrHtuXRrHtnYDuxkujeujEukYbXDlzancFuXTncFlzaeLvprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqgPqiEgnusgPqfNHnUzprtvkavkavkavkavkavkavkavkavkavkavkavkavkaprthTxiIsdHRmoQfwghQWcRFnefuYVtQjtpYaonwViuZpvseaWpgbNdJmraNdJmdbFmwVmwVfzVvaedEwvakftxcUVblKdJmdJmdJmdJmwViwWHrsIvibmPwmPwmPwgFRuQFesWesWvdkvdPvfcesWesWuSjeAcmPwmPwmPwvibnFXuPWgOydPnqXZbhGrcGdPnacVtKZjVgtUitUivfntKZejkbOotKZvftwQmoretUitUitUitUitUislkvfNtKZamNdPnbGZcRPpjvjqUtdrcRPdTEjqUttUdPnvgdvgdvgdvgdvhBujeujEukYkaTlzalzalzalzalzalzaprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpfoHkAUnUzprtvkavkavkavkavkavkavkavkavkavkavkavkavkaprthTxiIsjTEpUQfwghQWxWPviDaCQuHovmxaoneKxbBLlPWpcevmZvmZkobddGddGqXOqXOdmQddGddGddGddGxJPcJPcJPhRdxgdxgdxgdxgdyeSfUdrIwrIwrIwrIwliJesWvnlvnKvocvoZfcCesWtEWrIwrIwrIwrIwfUdvpzqWIwDXvpJkTPagxvpZvOWqWIqWIqWIqWIqWIqWIqWIqWIqWIqWIjfZqWIteknydnydpjjqWIqWIqWIqWIqWInrevLywiKwiKwiKwiKwiKwiKwiKwiKgyOvqcdUTdUTdUTdUTdUTnqEiffbyZfdNtUNvTjvTjvTjbHgtVdprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW @@ -8690,7 +8704,7 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgT gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpxejvzTnUzprtvkavkavkavkavkavkavkavkavkavkavkavkavkaprthTxiIsjTEpUQfwghQWxWPggBpjSmDLvzWaonyhlxRdjBGdvCqCOvCurjqoGAghXudPudPoGAoGAoGAoGAoGArvbylUylUylUylUkmlswDswDvCVvDPiGPiGPiGPiGPvBTesWvuXvFbvFEvHbvIdesWvIqiGPiGPiGPiGPvDPvpzkPtfCzvKigLrunDkPtkPtkPtkPtoHcmidoqtmidbxAkPtkPtkPtdoDvKYiXtmizmizsijkPtkPtkPtkPtkPtkPtvLyukWiBDukWukWuSAukWqtDuxPgMWvNsoKkscMscMscMscMvOavHFbyZniYvOuvTjvTjvTjvTjvQNprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqiEgorldiGpggnusgPqgfhgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqgPqiEgnusgPqfNHnUzprtvkavkavkavkavkavkavkavkavkavkavkavkavkaprthTxiIsnPBmoQfwghQWkJunefvRvcwyotmvSkkalkGyvseaWpocCdJmvSLdJmvSYvWJvWJkjFvaedEwvakhFrcUVfqKdJmdJmoFvdJmdJmfqKrsIdKxkqZkqZkqZiGvuQFesWesWvThvTJvUiesWesWuSjcfikqZkqZkqZdKxnFXjSUosmdPnnoLjSUcRPdfIjqUnoLnFXylLaUcylLdxfbeybeydxfgXNoUJeBlvXSvXSwAowAowAowAowAonFXnoLdPnpwddPntkvflJvYmflJflJxsqpwddPnpsogMywqnhQNvYRvYZirnukYwBDlzalzalzalzalzalzaprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgrCwwyjtmAnusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgnusgPqfNHnUzprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtbvFckenPBmoQfcjnQlpJBaonaoncgWaonaonvjchksvsedvhfNFjiAjiAjiAfNFwavoTMfNFjiAjiAjiAfNFaLgsVcwazwazsVcdiUdiUsVctWGtBcgPqgTWgTWpEZazNvBTesWesWwcfesWesWvIqazVtKCgTWgTWgPqtBcsRXsmSsmSsmSsmSsmSsmSsmSsmSsmSsmSlNuycldxfdxfpyWsfPgdzdNnwAoaxcwcjwcngvlwcAwdzmGaixIhSYpoHpoHpoHpoHmxenIweKudvnwfuxsqpemiOmjBHiOmjCIiOmiKEvYZirnukYwFXwgclzawgjwgDwgDwgKprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWmcCxejxejxejpPQgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgnusgPqfNHhGWxDVxDVxDVxDVbvFwhdhTxhTxhTxhTxhTxhTxwhdbvFbvFuyviIsnPBmoQvselrnlHyuozstMxwmwhrpjfrCDoIxvsefNFdFzrBsuERiCQjiAwlgsWNjiArBsuERoCorBssVcwhFkFOkFOwigwigwigkGltWGtBcgPqgTWgTWpEZwjcaAewjRvBTaLNvIqiZKaBCmvftKCgTWgTWgPqtBcsmSulmlgwhVXcdusCdwjTdDKaqCgYUwkvtyvjGIeZMdxfcbSxoHxoHcQvwAopEijPdwdDxfreLGwoowqbwVmpoHwqqdyzwqqpoHwqufykfykfykwjjxsqiOmqaXvYOyiIwrpiOmwsebhqtIUvDrdjAwsGlzawsMwtEwtWwuiprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWmcCxejxejxejpPQgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgnusgPqfNHhGWxDVxDVxDVxDVbvFwhdhTxhTxhTxhTxhTxhTxwhdbvFbvFuyviIsnPBmoQvselrnlHyuoztaaxwmwhrpjfrCDoIxvsefNFdFzrBsuERiCQjiAwlgsWNjiArBsuERoCorBssVcwhFkFOkFOwigwigwigkGltWGtBcgPqgTWgTWpEZwjcaAewjRvBTaLNvIqiZKaBCmvftKCgTWgTWgPqtBcsmSulmlgwhVXcdusCdwjTdDKaqCgYUwkvtyvjGIeZMdxfcbSxoHxoHcQvwAopEijPdwdDxfreLGwoowqbwVmpoHwqqdyzwqqpoHwqufykfykfykwjjxsqiOmqaXvYOyiIwrpiOmwsebhqtIUvDrdjAwsGlzawsMwtEwtWwuiprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgnusgPqfNHuXnuXnuXnuXnhYBbvFoHohTxoXRoQXeJSeJShTxrHSbvFqAnrWOiIsnPBmoQfqKnCowHLwvfstMtVHlVUmCBxvHeqBfqKfNFfNFjiAjiAjiAfNFuCbwvGfNFjiAjiAjiAfNFsVcwwekFOkFOrwBbHOkFOkFOgpttBcgPqgTWgTWmcCkqZkqZiGvtnYbqNtqocfikqZkqZpPQgTWgTWgPqtBcsmSlZjdPDeUaexQtZNwPrvjCikTeulwxwwxIgmuwyEdxfbtzoKDoKDnGgwAopEiraKwQvdiFvcAhMIwBEaYkpoHgADdgVwDrpoHwDufykfykwEebHSfiSiOmaXusOdhxdkFyiOmwEpvOTirnukYfIQwEPlzawsMwFMwGiwuiprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpfyzgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpgvebbjsncsmBdhHbvFhARbvFwGEhTxucjucjucjucjhTxwGEbvFjIQwGPrrGgttmoQwSixzmcUVcUVcUVcUVcUVcUVajEparcUVfNFglRxbvxbvxbvjERxbvxbvwDNwHfwHnwKoelpsVcwLpkFOkFOkFOfPJrKUwLNgpttBcgPqgPqgTWgTWgTWgTWpEZtnYbqNtqotKCgTWgTWgTWgTWgPqgPqtBcsmSoEawMvjwXogQwNOwPrjQkwPrilRwkvjUhdKsoKPdxfcwPhELiCddxfwAouPzraKwQvkblwAovGNcGRvGNpoHkzdtmUkzdpoHwUhfykfykwUsgRbrdZiOmaXusOdvqnuqaiOmwWjwXfwXSrRzxayxdslzaxeAxgkxgkxgMprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqmxggPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqiEgwOpiZUqKPvkavkaprtmoQnqNmoQxKKxKKxKKxKKxKKxKKxKKxKKpOFxKKxKKsZvnPBmoQioGcDxfTcfTcfTcuSBfTcfTcjjJhqYioGfNFlrpthwxbvthwttVsLMthwmSFnlrvLexqTlxFsVcxicxilxiyxkPfPJxkYtDmgpttBctBcgPqgPqgTWgTWgTWpEZtnYvLRtqotKCgTWgTWgTWgPqgPqtBctBcsmSsmSsmSsmSsmSxliikTxlpwPrvAJsmSdxfxmydxfdxfbcbcFJbSgdxfguObrLbFwnBXqySyjVeUUsuzlFBpoHogVoGVxoJpoHwNsfczpuFxoYfczccTiOmaXubqwvqnvbNiOmeHweHwgHLiKEiKEiKEeHwhBftLQtLQfHGprtvkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkavkaprtjeZwOpnusgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW @@ -8709,7 +8723,7 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgT gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWwTpxejxejxejxAUgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPvkavkavkavkavkavkavkavkaprtfhBlWBxketsPxUrfxnguXbYtbmybmyukfcOZrWhsCLsCLsCLsCLfruqWHcLBmPfplNuvLuzUpPIlhmrixuvLuykxurxurxurxurxurxurxurxurboquSzdvziIfoHXkQMuNLqgRaxBsnjahmdmVoHXyhwegAmatpTlhIOdZWegAjTteQpjTtegArgRqLfhTRirxuoraqluorkqIocHocHocHoNVdvNhxjfufnusgPqgPqgPqgPqgPqiEgsjelzmlzmlzmlzmofliNSbgjtCqbkThsAgxKrBhnadkVZoIjsAntwjkGrmghhHQofloQElOAlOArzqtBcfVcxDVaCcxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVxDVaCcxDVpQYwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPvkavkavkavkavkavkavkavkaprtyanlWBlWBlWBlWBlWBjGMuefssDrjFukfpPxrWhnVWhUVlDBxdqbDZfLsbDZchQhJBuvLgZotPegZokmXuvLuvLuvLbxObxObxObxObxObxObxOrtfbxObxObAZpzFaOGxMHqgRaxBsnjhMkaxKqDJaxKegAegAegAegAegAegAroPxIaphCegAdxfoCLdxfirxroPxIaphCjOIxKMhPnocHoNVdvNrrYdxfvJJwjKwjKwjKwjKwjKvJJofldQUsbssbsdQUofloflmBfiGUkGrgdbqHUwCHgdbcUZqHUgdbeBqahyppyfpPofloQEuIpiDkeoNtBchWHeAAghbeAAxbEvpDgyfeAAghbeAAuXnuXneAAghbeAAcUUvpDyeOeAAghbeAAuXnwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgPqiEgwOpmGJbMkqKPqKPqKPqKPqKPqKPqKPqKPqKPvkavkavkavkavkavkavkaprtyantBcnajgOnnazuAAhcguefguXbmyukfqxndTscfCsXSsXSsXSsXScfCsXSrpMfNfybzglLbAyuzflGbfRCrrwuvLokZaITjSPczUtkejYtwnWcpDeuuxDlwnWwnWwnWwnWwdpaxBwdpjUEjUEjUEjUEkzPimcwNSjUEjUEoxwjUEjUEjUEjUEjUEjUEeoDaGnjUEjUEitnrjujvpgZjocHoNVdvNnMHfufnusgPqgPqgPqgPqgPqiEgjbhbqRmfTlHLuHBnLLoflqnqiGUmghrtvofljbhjbhjbhoflpEGhNacQpofloflofloQEuIplOAeoNjXChWHdbTlQwdbTwsTcaKnnIdbTlQwdbTuXnuXndbTlQwdbTmikcaKvxrdbTlQwdbTuXnwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPvkavkavkavkavkavkaprtyantBctBcgOngOnuAAwWzuefguXbYtocxiKjjeldoHneknekneknekdoHnekuPsgyEqwypzEwkLeNyoTudrxwfQybzhoeqiJmojktamojnnTjdxhnvsdYsdYpfXsdYsdYeHMbmUjZQmojmojmojmojmojmojmojmojmojmojktarqmlJbaBTmojmojmojyiBjdxrsrwdpwdprjumzelgnkurqcmdkSpLTfufnusgTWgTWgTWgTWgTWiEgjbhqqWeqZszRadbvMqbyzvCOohxmghxsyoflcYhvEXaEuofljKahNacOuoflirCatBrkBeoNguheoNtBchWHeAAdbTeAAgqGwdSdjBeAAdbTeAAuXnuXneAAdbTeAAjMBnfpxEQeAAdbTeAAuXnwOpnusgPqgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgPqiEgwOpmGJnlkqKPqKPqKPqKPqKPqKPqKPqKPqKPqKPvkavkavkavkavkavkaprtyantBctBcgOngOnuAAwWzuefguXbYtocxiKjjeldoHneknekneknekdoHnekuPsgyEqwypzEwkLeNyoTudrxwfQybzhoeqiJmojktamojnnTjdxhnvsdYsdYpfXsdYsdYeHMbmUjZQmojmojmojmojmojmojmojmojmojmojktarqmlJbaBTmojmojmojyiBjdxrsrwdpdvAcAwmzelgnkurqcmdkSpLTfufnusgTWgTWgTWgTWgTWiEgjbhqqWeqZszRadbvMqbyzvCOohxmghxsyoflcYhvEXaEuofljKahNacOuoflirCatBrkBeoNguheoNtBchWHeAAdbTeAAgqGwdSdjBeAAdbTeAAuXnuXneAAdbTeAAjMBnfpxEQeAAdbTeAAuXnwOpnusgPqgTWgTWgTWgGFfoHfoHfoHikngTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgPqiEgwOpmGJnlknlktfonlknlknlknlknlknlknlknlknlkprtprtprtprtprtprtyantBctBcgOndnKuAAwHumVMgQobzcfgVmXnbmymnDhnTmwejjyjjyjjyjjygucpRIuvLuxpiXzeaHeaHsxYwfQybzhoecSZpwUnCSrXbpAEpAEpAEpAEpAEpAEeFYlMXlMXedulMXlMXlMXlMXeFYlMXlMXlMXlMXlMXlMXscTurqrJzrOplMXlMXeFYpGclMXlMXlMXwhyrjudVMwWQrjuoNVdvNnndfufnusgPqgPqgPqgPqgPqiEgoflofloflofloflofloflofliThxlRoflofloflofloflofloflhNacOuoflkwioQEjYCeoNbXVnsHtBcaUKgcfgcfgcfgcfgcfgcfgcfgcfgcfuXnuXngcfgcfgcfuXnuXnuXnuXnuXnuXnuXnwOpnusgPqgTWgTWgTWiEgiQcftOkdknusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgPqiEgorldiGpggnusgPqgPqgPqgPqiEgorldiGpggnusgPqgPqgPqgPqiEgwOpbRSshZshZshZshZshZshZshZshZshZshZshZshZshZshZxDVxDVxDVxDVpQYtBctBctBctBcuAAuAAflNflNflNcYrvNJkDlkKacJjflNflNflNflNflNuAAbLkuvLfksxTdnPbvoygbYkeTuvLcHdcSZavmhlxobLfFGfPmobLobLobLobLdNreeneenmFzrEmrEmeeneenhLxhLxeUEstcstcstckjMsMJsMJsMJsMJsMJsMJsMJmebrTLrTLrTLrTLjOIocHocHocHmlEqmpevkdxfdxffuffuffuffuffufdxfoflsJPxiJtiitfFxsUofljDSuKnaQEmeatBlmvotBlqEuoflelcvCYylIofleoNmqpeoNjaXwpFgOntBcrhGtBctBctBctBcrhGtBctBctBcxQulatwRVvlJtBcwpFuNasKHtyztyztyzwOpwOpwOpnusgPqgPqgPqgPqiEgorldiGpggnusgPqgfhgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWiEgrCwwyjtmAnusgTWgTWgTWgTWiEgrCwwyjtmAnusgTWgTWgTWgPqiEgwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpmDStBctBcwpFflNnWMfyxuAAfyxiNXflNtBctBcwpFhmHgkvcUSuvLuvLpQoochmETmETmETuvLqkdcSZavmobLhnDmHegxagzbmbieeGobLicGhIyhIylOJumuumuhIyhIywHmiPTqWPdCMqcRxHwsMJdUPebxgMJkEvxzxvCmsMJwNQsJOdAQfHuxMvrtCbKMuDGaGHqRHnXYvGXnDgjsuqqsqqsnNHqqsqqsjsusvVbGOabAbbRbecsbfpJCjDSdCFssPmeaxIgmMsqXRxzioflnYVhNacOuoflctVtJDcxzrZHdLgdLgdLgrZHdLgdLgdLgdLgrZHdLgdLgdLgdLgrZHdLgdLgdLgdLgnTygNcxejxejxejxejxejxejpPQgPqgTWgTWgTWiEgrCwwyjtmAnusgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW @@ -8738,7 +8752,7 @@ gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctB gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBctBckzIkzIdFkkzIefOjTuprtvkavkavkamySvkarWLvkawPcvkavkavkaprtprtefOtBctBctBcgTWgTWgTWgTWgTWgTWgTWtBctBctBctBctBctBctBctBctBctBctBctBctBctBcnBctBcgPqgPqmcCxejxejxejxejxejxejxejxejxejxejxejxejxejxejwOpwOpsEHwPMsEHtBctBcnUzprtprtprtprtprtprtprtfhBvltgeumDKkowyexjhHsARkowivtpvLkkepnrjxsmVlrFSvltqcdrPZrPZrPZqcdqcdqcdvEdrXHwjVqcdwOpgIOwOpszhqcdqcdohlvZllFKvZlvZldAQvOIvOIdAQdAQlDfqRmfMvbnxbnxbnxbnxbnxbnxnAnlUJbmFwOpglunusgPqgPqgfhgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWrZHpfwpfwpJleBtkOAxzZdmsuJqxtpoSlpfwpfwpfwrZHtBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBcdpJkzIkzIkzIkzIefOjTuprtvkavkavkamySuqPxyLxyLwPcvkavkavkaprtprtefOkzItBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBctBcuKhtBctBctBcwsUtBctBctBctBcbphtBcgTWgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqgPqiEgwOpiIYvieiIYtBctBchGWxDVxDVxDVxDVxDVxDVxDVpQYvltvltsUskowkowkowkowkowvGvmVlwxgkhJkhJmzViBMmHSdHEdHEdHEdHEnCfwOpqcdvEdmAkvEdqcdwOpgIOnusgPqgPqgPqaIJaFldSAuIQaIJxejxejxejsRgdAQuKDuLWxCunAnbnxcTAxpvanSumXxtdeiJdAQwOpglunusgPqgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWrZHsHGpfwpfwmmsmUexzZbwYszFgbZwrCpfwpfwrhvrZHtBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBckzIkzIbSSkzIkzIefOjTuprtvkavkavkamySnfBvkawPcwPcvkavkavkaprtprtefObSSuKhtBcgTWgTWgTWgTWtBctBcgTWgTWgTWgTWgTWtBctBctBcylMtBctBcuKhtBctBctBcnBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqiEgwOpwOpoSiwOptBctBctBcgXdgXntBctBctBcgXdgXntBcpPVvltbrttBshFNtcRwWCmVlmVlmVlbmtmVlmVlmVlmVlvltejgxejxejwOpmXkwOppcjnlkiJVnlkhxUwOpmXknusgPqgTWgPqaIJxOMilImAUaIJgPqgPqgPqiEgdAQiBnkCSkbPvJOqhkiyQtzWmWNgUxvwDddQdAQlrYglunusgPqgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWrZHstAstAstAiDcmiheWPpXWszFtuthVawAkstAstArZHtBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW -gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBccyYkzIkzIpvIkzIefOjTuprtvkavkavkaqwAevrgyUpnbkeJvkavkavkaprtprtefOkzItBctBcgTWgTWgTWgTWtBctBctBctBcgTWgTWgTWgTWgTWgTWtBctBctBctBctBctBctBcicEgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqwTpxejwOpoSiwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpnushEnvltkhkhUrgHNvnOjHixdxxdxxdxgNEmVlhnHpqWuXyvltgPqgPqgPqiEgmXkwOpiZUqKPqKPqKPegHwOpmXknusgPqgPqgPqaIJjycqmKlAtaIJgTWgTWgPqiEgdAQdAQdAQdAQdAQdAQdAQbmFdAQdAQbmFdAQdAQwOpglunusgPqgTWgTWgTWgTWgTWgPqgPqgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWrZHpfwpfwpJldYFkOAxzZdmsuJqeyJlZzpfwpfwpfwrZHtBctBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW +gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBccyYkzIkzIpvIkzIefOjTuprtvkavkavkaqwAevrgyUpnbkeJvkavkavkaprtprtefOkzItBctBcgTWgTWgTWgTWtBctBctBctBcgTWgTWgTWgTWgTWgTWtBctBctBctBctBctBctBcicEgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgPqwTpxejwOpoSiwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpwOpnushEnvltkhkhUrgHNvnOjHixdxxdxxdxgNEjKwhnHpqWuXyvltgPqgPqgPqiEgmXkwOpiZUqKPqKPqKPegHwOpmXknusgPqgPqgPqaIJjycqmKlAtaIJgTWgTWgPqiEgdAQdAQdAQdAQdAQdAQdAQbmFdAQdAQbmFdAQdAQwOpglunusgPqgTWgTWgTWgTWgTWgPqgPqgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWrZHpfwpfwpJldYFkOAxzZdmsuJqeyJlZzpfwpfwpfwrZHtBctBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWwsUtBckzIkzIkzIdpJkzIefOjTuprtvkavkavkavkavkavkavkavkavkavkavkaprtprtefOkzIkzItBcgTWgTWgTWgTWtBcylMtBctBctBcgTWgTWgTWgTWgTWgTWgTWtBctBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWwOpgPqgPqgPqgPqiEgoSiwOpxejxejxejxejxejxejxejxejxejwOpnusgPqvltwKddkDwKdvltlngkSqpnrpnrxBsmTisXhsmltTMvltgPqgPqgPqiEgmXkwOpbiGqKPqKPqKPbjewOpmXknusgPqgTWgTWvZlvZlndcvZlvZlgTWgTWgPqiEgwOpgRFwOpwOpwOpwOpgRFwOpwOpwOpwOpgRFwOpwOpwOpnusgPqgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWrZHsHGpfwpfweoRmUexzZbwYszFgbZpefpfwyjFrhvrZHtBcuKhtBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBckzIkzIkzIkzIkzIefOprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtefOqMOblztBctBcgTWgTWtBctBctBctBctBctBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWylMgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgPqiEgoSinusgPqgPqgPqgPqgPqgPqgPqgPqgPqiEgnusgPqvltgZXbkIfrnvltvlttiWtiWvlttiWvltvlttiWvltvltgTWgTWgPqiEgmXkwOpiZUqKPqKPqKPegHwOpmXknusgPqgTWgTWlZfaIJqmKaIJlROgPqgPqgPqiEgglugluglugluglugluglugluglugluglugluglugluglunusgPqgPqxVggTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgfhgTWgTWgTWgTWtBcrZHstAstAstAqqbtAFeWPpXWszFtutaEBwAkstAstArZHtBctBctBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW gTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWtBctBckzIluekzIkzIblzefOlfXlfXprtprtprtprtprtprtprtprtprtprtprtprtprtefOduQkzItBctBcgTWgTWtBctBctBcgOntBctBctBctBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWgPqiEgoSinusgPqgTWgTWgTWgPqgTWgTWgTWgPqiEgnusgPqvltwKdgoKwKdvltgTWgPqgTWgTWgTWgPqgTWgTWgTWdNvgTWgTWgPqiEgmXkwOpwsPxKxxxrxKxpKqwOpmXknusgPqgPqgPqiEgaIJqmKaIJnusgTWgTWgPqhzQxejxejxejxejxejxejxejxejxejxejxejxejxejxejxejpPQgPqgTWgTWgTWgTWgTWgPqgTWgPqgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgPqgTWgTWgTWtBctBcrZHpfwpfwpJlqqCkOAxzZdmsuJqyhNfpRpfwpfwpfwrZHgOntBctBctBctBcgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTWgTW diff --git a/_maps/map_files/hyper/Diner.dmm b/_maps/map_files/hyper/Diner.dmm index c067d0e0..260d1316 100644 --- a/_maps/map_files/hyper/Diner.dmm +++ b/_maps/map_files/hyper/Diner.dmm @@ -70,8 +70,8 @@ "br" = (/obj/effect/turf_decal/loading_area{dir = 6; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel/cafeteria,/area/diner) "bs" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "diner shutters"; tag = dshutters},/turf/open/floor/plating,/area/diner) "bt" = (/obj/structure/table/plasmaglass,/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/item/reagent_containers/food/drinks/drinkingglass,/turf/open/floor/plasteel/dark,/area/diner) -"bu" = (/obj/structure/table/plasmaglass,/obj/machinery/chem_dispenser/drinks{dir = 8},/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/turf/open/floor/plasteel/dark,/area/diner) -"bv" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/dark,/area/diner) +"bu" = (/obj/structure/table/plasmaglass,/obj/machinery/chem_dispenser/drinks{dir = 8},/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/dark,/area/diner) +"bv" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/reagent_containers/food/condiment/flour,/obj/item/reagent_containers/food/condiment/flour,/obj/item/reagent_containers/food/condiment/flour,/turf/open/floor/plasteel/dark,/area/diner) "bw" = (/obj/structure/table/plasmaglass,/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/diner) "bx" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/dark,/area/diner) "by" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/dark,/area/diner) @@ -104,7 +104,7 @@ "kS" = (/turf/open/floor/plasteel{dir = 1; icon_state = "floor_trim"},/area/diner) "lm" = (/obj/structure/table/plasmaglass,/turf/open/floor/carpet/black,/area/diner) "mb" = (/obj/structure/lattice/catwalk,/obj/structure/railing{dir = 4},/obj/structure/railing{dir = 1},/turf/open/space/basic,/area/space/nearstation) -"mn" = (/obj/machinery/vending/boozeomat,/turf/closed/wall,/area/diner) +"mn" = (/obj/machinery/vending/boozeomat{req_access = null},/turf/closed/wall,/area/diner) "mV" = (/turf/open/floor/plasteel{dir = 4; icon_state = "floor_plate"},/area/diner) "nQ" = (/obj/structure/table/plasmaglass,/obj/item/reagent_containers/food/condiment/saltshaker{pixel_y = 10},/obj/item/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = 4},/turf/open/floor/carpet/black,/area/diner) "op" = (/obj/structure/table/plasmaglass,/obj/item/ashtray,/turf/open/floor/carpet/black,/area/diner) diff --git a/code/__HELPERS/radiation.dm b/code/__HELPERS/radiation.dm index 06b06c70..320600e7 100644 --- a/code/__HELPERS/radiation.dm +++ b/code/__HELPERS/radiation.dm @@ -27,6 +27,8 @@ /proc/radiation_pulse(atom/source, intensity, range_modifier, log=FALSE, can_contaminate=TRUE) if(!SSradiation.can_fire) return + if(!source) + return // make sure we have a source. If we don't, just return. if(istype(get_turf(source), /turf/open/pool)) var/turf/open/pool/PL = get_turf(source) if(PL.filled == TRUE) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 5cf1c0c3..1ecd8112 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -6,6 +6,7 @@ var/static/list/falling_atoms = list() // Atoms currently falling into chasms var/static/list/forbidden_types = typecacheof(list( + /mob/camera, /obj/singularity, /obj/docking_port, /obj/structure/lattice, @@ -115,7 +116,13 @@ L.notransform = TRUE L.Stun(200) L.resting = TRUE - if(prob(5)) + if(L.client && check_rights_for(L.client, R_FUN)) + if(prob(50)) + playsound(AM, 'hyperstation/sound/misc/yodadeath.ogg', 100, 0) + else + playsound(AM, 'hyperstation/sound/misc/fallingthroughclouds.ogg', 100, 0) + + else if(prob(5)) playsound(AM, 'hyperstation/sound/misc/fallingthroughclouds.ogg', 100, 0) var/oldtransform = AM.transform diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm index 665ed2b8..e6b99497 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm @@ -478,6 +478,7 @@ //property_weights = list("extended" = 1) //always_max_weight = TRUE occurances_max = 0 + map_blacklist = list("LayeniaStation.dmm") /datum/dynamic_ruleset/event/major_dust name = "Major Space Dust" @@ -493,6 +494,7 @@ repeatable = TRUE //property_weights = list("extended" = 1) occurances_max = 3 + map_blacklist = list("LayeniaStation.dmm") /datum/dynamic_ruleset/event/electrical_storm diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 76aedb49..b223d835 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -770,8 +770,8 @@ datum/dynamic_ruleset/midround/bloodcult/trim_candidates() name = "Space Ninja" //config_tag = "ninja" antag_flag = ROLE_NINJA - enemy_roles = list("Security Officer","Head of Security","Captain","AI","Cyborg") - required_enemies = list(3,2,2,2,2,1,1,1,1,0) + enemy_roles = list("Security Officer","Head of Security","Captain") + required_enemies = list(3,3,2,2,2,2,1,1,1,0) required_candidates = 1 weight = 4 cost = 10 diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index e79ffda3..9c6b4af7 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -98,7 +98,7 @@ . = ..() if(ismob(O)) radiate() - + /obj/effect/decal/cleanable/greenglow/radioactive/proc/radiate() if(!active) if(world.time > last_event+15) @@ -230,19 +230,19 @@ name = "generic glitter pile" desc = "The herpes of arts and crafts." icon = 'icons/effects/atmospherics.dmi' + icon_state = "glitter" gender = NEUTER /obj/effect/decal/cleanable/glitter/pink name = "pink glitter" - icon_state = "plasma_old" + color = "#9e0089" /obj/effect/decal/cleanable/glitter/white name = "white glitter" - icon_state = "nitrous_oxide_old" /obj/effect/decal/cleanable/glitter/blue name = "blue glitter" - icon_state = "freon_old" + color = "#2dd6ff" /obj/effect/decal/cleanable/plasma name = "stabilized plasma" diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm index ff935f32..9be21053 100644 --- a/code/modules/antagonists/disease/disease_mob.dm +++ b/code/modules/antagonists/disease/disease_mob.dm @@ -85,7 +85,7 @@ the new instance inside the host to be updated to the template's stats. /mob/camera/disease/get_status_tab_items() - + . = ..() if(freemove) . += "Host Selection Time: [round((freemove_end - world.time)/10)]s" else diff --git a/code/modules/antagonists/ninja/ninja.dm b/code/modules/antagonists/ninja/ninja.dm index 9c10121d..8971145a 100644 --- a/code/modules/antagonists/ninja/ninja.dm +++ b/code/modules/antagonists/ninja/ninja.dm @@ -52,6 +52,7 @@ if(2) //steal var/datum/objective/steal/special/O = new /datum/objective/steal/special() O.owner = owner + O.find_target() objectives += O if(3) //protect/kill diff --git a/code/modules/antagonists/revenant/revenant_spawn_event.dm b/code/modules/antagonists/revenant/revenant_spawn_event.dm index eee89f83..e0ef5baa 100644 --- a/code/modules/antagonists/revenant/revenant_spawn_event.dm +++ b/code/modules/antagonists/revenant/revenant_spawn_event.dm @@ -1,4 +1,4 @@ -#define REVENANT_SPAWN_THRESHOLD 12 +#define REVENANT_SPAWN_THRESHOLD 10 /datum/round_event_control/revenant name = "Spawn Revenant" // Did you mean 'griefghost'? @@ -23,6 +23,7 @@ if(is_station_level(M.z)) deadMobs++ if(deadMobs < REVENANT_SPAWN_THRESHOLD) + deadchat_broadcast("Event attempted to spawn a revenant, but there were not enough dead people.") //So people stop assuming admins cancelled it message_admins("Event attempted to spawn a revenant, but there were only [deadMobs]/[REVENANT_SPAWN_THRESHOLD] dead mobs.") return WAITING_FOR_SOMETHING diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 82f86749..f4ebd218 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -470,7 +470,7 @@ desc = "You wanted ORANGE. It gave you Lemon Lime." icon_state = "lemon-lime" list_reagents = list(/datum/reagent/consumable/lemon_lime = 30) - foodtype = FRUIT + foodtype = SUGAR | FRUIT /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime/Initialize() . = ..() @@ -481,35 +481,35 @@ desc = "Tastes like a hull breach in your mouth." icon_state = "space-up" list_reagents = list(/datum/reagent/consumable/space_up = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/starkist name = "Star-kist" desc = "The taste of a star in liquid form. And, a bit of tuna...?" icon_state = "starkist" list_reagents = list(/datum/reagent/consumable/space_cola = 15, /datum/reagent/consumable/orangejuice = 15) - foodtype = SUGAR | FRUIT | JUNKFOOD + foodtype = SUGAR | FRUIT /obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind name = "Space Mountain Wind" desc = "Blows right through you like a space wind." icon_state = "space_mountain_wind" list_reagents = list(/datum/reagent/consumable/spacemountainwind = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko name = "Thirteen Loko" desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkenness, or even death. Please Drink Responsibly." icon_state = "thirteen_loko" list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb name = "Dr. Gibb" desc = "A delicious mixture of 42 different flavors." icon_state = "dr_gibb" list_reagents = list(/datum/reagent/consumable/dr_gibb = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game name = "Pwr Game" @@ -522,14 +522,14 @@ desc = "~Shake me up some of that Shambler's Juice!~" icon_state = "shamblers" list_reagents = list(/datum/reagent/consumable/shamblers = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/grey_bull name = "Grey Bull" desc = "Grey Bull, it gives you gloves!" icon_state = "energy_drink" - list_reagents = list(/datum/reagent/consumable/grey_bull = 20) - foodtype = SUGAR | JUNKFOOD + list_reagents = list(/datum/reagent/consumable/grey_bull = 30) + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/air name = "canned air" @@ -542,5 +542,5 @@ desc = "Unleash the ape!" icon_state = "menergy" list_reagents = list(/datum/reagent/consumable/monkey_energy = 50) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR price = 3 diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 162bbbc5..f57d69ba 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -126,7 +126,7 @@ desc = "A peel from a bluespace banana." icon_state = "banana_peel_blue" -//Banana Spider +//Banana Spider. /obj/item/seeds/banana/exotic_banana name = "pack of exotic banana seeds" desc = "They're seeds that grow into banana trees. However, those bananas might be alive." @@ -157,7 +157,7 @@ spawn(30) if(!QDELETED(src)) var/mob/living/simple_animal/banana_spider/S = new /mob/living/simple_animal/banana_spider(get_turf(src.loc)) - S.speed += round(10 / max(seed.potency, 1), 1) + S.speed += round(10 - 10 * (seed.potency/100), 1) S.visible_message("The banana spider chitters as it stretches its legs.") qdel(src) diff --git a/code/modules/jobs/job_types/job_alt_titles.dm b/code/modules/jobs/job_types/job_alt_titles.dm index b9aa23e1..9b7d460a 100644 --- a/code/modules/jobs/job_types/job_alt_titles.dm +++ b/code/modules/jobs/job_types/job_alt_titles.dm @@ -2,10 +2,10 @@ //Engineering /datum/job/chief_engineer - alt_titles = list("Head Engineer", "Construction Coordinator", "Project Manager") + alt_titles = list("Head Engineer", "Construction Coordinator", "Project Manager", "Power Plant Director") /datum/job/engineer - alt_titles = list("Maintenance Technician", "Engine Technician", "Electrician", "Structural Engineer", "Mechanic", "Station Architect") + alt_titles = list("Maintenance Technician", "Engine Technician", "Electrician", "Structural Engineer", "Mechanic", "Station Architect", "Nuclear Plant Operator") /datum/job/atmos alt_titles = list("Firefighter", "Life Support Specialist", "Disposals Technician") diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 752094a3..2c20a22f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -300,17 +300,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp succumb() if(stat == DEAD) ghostize(1) - else - //Low RP, removing. - /* + else if(!(ishuman(src)) && !(issilicon(src))) var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 suicide_log(TRUE) - */ + else to_chat(usr, "You cannot ghost, if you wish to remove yourself from the round, please locate a cryogenic freezer.") - message_admins("[usr] attempted to ghost.") + message_admins("[src] attempted to ghost.") /mob/camera/verb/ghost() set category = "OOC" diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 1d7e76f1..09d8ec2e 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -75,3 +75,4 @@ user.nextsoundemote = world.time + 7 playsound(user, 'modular_citadel/sound/voice/speen.ogg', 50, 1, -1) . = ..() + diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 2aa7d17a..2e66809e 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -323,6 +323,132 @@ else STOP_PROCESSING(SSobj, src) +// Space kiwis, ergo quite a copypasta of chickens. + +/mob/living/simple_animal/kiwi + name = "space kiwi" + desc = "Exposure to low gravity made them grow larger." + gender = FEMALE + icon_state = "kiwi" + icon_living = "kiwi" + icon_dead = "kiwi_dead" + speak = list("Chirp!","Cheep cheep chirp!!","Cheep.") + speak_emote = list("chirps","trills") + emote_hear = list("chirps.") + emote_see = list("pecks at the ground.","jumps in place.") + density = FALSE + speak_chance = 2 + turns_per_move = 3 + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) + var/egg_type = /obj/item/reagent_containers/food/snacks/egg/kiwiEgg + var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + attacktext = "kicks" + health = 25 + maxHealth = 25 + ventcrawler = VENTCRAWLER_ALWAYS + var/eggsleft = 0 + var/eggsFertile = TRUE + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_SMALL + var/list/feedMessages = list("It chirps happily.","It chirps happily.") + var/list/layMessage = list("lays an egg.","squats down and croons.","begins making a huge racket.","begins chirping raucously.") + gold_core_spawnable = FRIENDLY_SPAWN + var/static/kiwi_count = 0 + +/mob/living/simple_animal/kiwi/Destroy() + --kiwi_count + return ..() + +/mob/living/simple_animal/kiwi/Initialize() + . = ..() + ++kiwi_count + +/mob/living/simple_animal/kiwi/Life() + . =..() + if(!.) + return + if((!stat && prob(3) && eggsleft > 0) && egg_type) + visible_message("[src] [pick(layMessage)]") + eggsleft-- + var/obj/item/E = new egg_type(get_turf(src)) + E.pixel_x = rand(-6,6) + E.pixel_y = rand(-6,6) + if(eggsFertile) + if(kiwi_count < MAX_CHICKENS && prob(25)) + START_PROCESSING(SSobj, E) + +/obj/item/reagent_containers/food/snacks/egg/kiwiEgg/process() + if(isturf(loc)) + amount_grown += rand(1,2) + if(amount_grown >= 100) + visible_message("[src] hatches with a quiet cracking sound.") + new /mob/living/simple_animal/babyKiwi(get_turf(src)) + STOP_PROCESSING(SSobj, src) + qdel(src) + else + STOP_PROCESSING(SSobj, src) + +/mob/living/simple_animal/kiwi/attackby(obj/item/O, mob/user, params) + if(istype(O, food_type)) //feedin' dem kiwis + if(!stat && eggsleft < 8) + var/feedmsg = "[user] feeds [O] to [name]! [pick(feedMessages)]" + user.visible_message(feedmsg) + qdel(O) + eggsleft += rand(1, 4) + else + to_chat(user, "[name] doesn't seem hungry!") + else + ..() + +/mob/living/simple_animal/babyKiwi + name = "baby space kiwi" + desc = "So huggable." + icon_state = "babykiwi" + icon_living = "babykiwi" + icon_dead = "babykiwi_dead" + gender = FEMALE + speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") + speak_emote = list("chirps") + emote_hear = list("chirps.") + emote_see = list("pecks at the ground.","Happily bounces in place.") + density = FALSE + speak_chance = 2 + turns_per_move = 2 + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + attacktext = "kicks" + health = 10 + maxHealth = 10 + ventcrawler = VENTCRAWLER_ALWAYS + var/amount_grown = 0 + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + gold_core_spawnable = FRIENDLY_SPAWN + +/mob/living/simple_animal/babyKiwi/Initialize() + . = ..() + pixel_x = rand(-6, 6) + pixel_y = rand(0, 10) + +/mob/living/simple_animal/babyKiwi/Life() + . =..() + if(!.) + return + if(!stat && !ckey) + amount_grown += rand(1,2) + if(amount_grown >= 100) + new /mob/living/simple_animal/kiwi(src.loc) + qdel(src) + +/obj/item/reagent_containers/food/snacks/egg/kiwiEgg + name = "kiwi egg" + desc = "A slightly bigger egg!" + icon_state = "kiwiegg" /obj/item/udder name = "udder" diff --git a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm similarity index 95% rename from modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm rename to code/modules/mob/living/simple_animal/hostile/banana_spider.dm index 11bd807d..d826622c 100644 --- a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm @@ -1,9 +1,8 @@ /mob/living/simple_animal/banana_spider - icon = 'modular_citadel/icons/mob/BananaSpider.dmi' name = "banana spider" desc = "What the fuck is this abomination?" - icon_state = "banana" - icon_dead = "banana_peel" + icon_state = "bananaspider" + icon_dead = "bananaspider_peel" health = 1 maxHealth = 1 turns_per_move = 5 //this isn't player speed =| @@ -87,8 +86,7 @@ /obj/item/reagent_containers/food/snacks/deadbanana_spider name = "dead banana spider" desc = "Thank god it's gone...but it does look slippery." - icon = 'modular_citadel/icons/mob/BananaSpider.dmi' - icon_state = "banana_peel" + icon_state = "bananaspider" bitesize = 3 eatverb = "devours" list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index bffdbac4..223a1a88 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -369,7 +369,7 @@ /mob/living/simple_animal/proc/make_babies() // <3 <3 <3 if(gender != FEMALE || stat || next_scan_time > world.time || !childtype || !animal_species || !SSticker.IsRoundInProgress()) return - next_scan_time = world.time + 2000 //Please stop making it so they multiply like rabbits + next_scan_time = world.time + 6000 //Please stop making it so they multiply like rabbits var/alone = 1 var/mob/living/simple_animal/partner var/children = 0 diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 593ea1fa..23797cea 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -198,20 +198,19 @@ return 2 /mob/living/simple_animal/slime/get_status_tab_items() - if(..()) - - if(!docile) - . += "Nutrition: [nutrition]/[get_max_nutrition()]" - if(amount_grown >= SLIME_EVOLUTION_THRESHOLD) - if(is_adult) - . += "You can reproduce!" - else - . += "You can evolve!" - - if(stat == UNCONSCIOUS) - . += "You are knocked out by high levels of BZ!" + . = ..() + if(!docile) + . += "Nutrition: [nutrition]/[get_max_nutrition()]" + if(amount_grown >= SLIME_EVOLUTION_THRESHOLD) + if(is_adult) + . += "You can reproduce!" else - . += "Power Level: [powerlevel]" + . += "You can evolve!" + + if(stat == UNCONSCIOUS) + . += "You are knocked out by high levels of BZ!" + else + . += "Power Level: [powerlevel]" /mob/living/simple_animal/slime/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) diff --git a/hyperstation/code/game/machinery/lore_terminal.dm b/hyperstation/code/game/machinery/lore_terminal.dm new file mode 100644 index 00000000..7381b128 --- /dev/null +++ b/hyperstation/code/game/machinery/lore_terminal.dm @@ -0,0 +1,240 @@ +GLOBAL_DATUM_INIT(lore_terminal_controller, /datum/lore_controller, new) + +/obj/machinery/computer/lore_terminal + name = "Staff Seegson info-link terminal" + desc = "A small CRT display with an inbuilt microcomputer which is loaded with an extensive database. These terminals contain eveyrthing from information about historical events to instruction manuals for common ship appliances." + icon = 'nsv13/icons/obj/computers.dmi' + icon_state = "terminal" + pixel_y = 26 //So they snap to walls correctly + density = FALSE + anchored = TRUE + idle_power_usage = 15 + var/access_tag = "ntcommon" //Every subtype of this type will be readable by this console. Use this for away terms as seen here \/ + var/list/entries = list() //Every entry that we've got. + var/in_use = FALSE //Stops sound spam + var/datum/looping_sound/computer_click/soundloop + +/obj/machinery/computer/lore_terminal/command //Put sensitive information on this one + name = "Command Seegson info-link terminal" + access_tag = "ntcommand" + req_access = list(ACCESS_HEADS) + +/obj/machinery/computer/lore_terminal/awaymission //Example for having a terminal preloaded with only a set list of files. + access_tag = "awaymission_default" + +/obj/machinery/computer/lore_terminal/Initialize() + . = ..() + get_entries() + soundloop = new(list(src), FALSE) + +/datum/looping_sound/computer_click + mid_sounds = list('nsv13/sound/effects/computer/scroll1.ogg','nsv13/sound/effects/computer/scroll2.ogg','nsv13/sound/effects/computer/scroll3.ogg','nsv13/sound/effects/computer/scroll5.ogg') + mid_length = 0.8 SECONDS + volume = 30 + +/obj/machinery/computer/lore_terminal/proc/get_entries() + for(var/X in GLOB.lore_terminal_controller.entries) + var/datum/lore_entry/instance = X + if(instance.access_tag == access_tag || instance.access_tag == "all") + entries += instance + +/obj/machinery/computer/lore_terminal/attack_hand(mob/user) + . = ..() + if(!allowed(user)) + var/sound = pick('nsv13/sound/effects/computer/error.ogg','nsv13/sound/effects/computer/error2.ogg','nsv13/sound/effects/computer/error3.ogg') + playsound(src, sound, 100, 1) + to_chat(user, "Access denied") + return + playsound(src, 'nsv13/sound/effects/computer/scroll_start.ogg', 100, 1) + user.set_machine(src) + var/dat + if(!entries.len) + get_entries() + for(var/X in entries) //Allows you to remove things individually + var/datum/lore_entry/content = X + dat += "[content.name]
" + var/datum/browser/popup = new(user, "cd C:/entries/local", name, 300, 500) + popup.set_content(dat) + popup.open() + + +/obj/machinery/computer/lore_terminal/Topic(href, href_list) + if(!in_range(src, usr)) + return + if(in_use) + var/sound = 'nsv13/sound/effects/computer/buzz2.ogg' + playsound(src, sound, 100, 1) + to_chat(usr, "ERROR: I/O function busy. A file is still loading...") + return + var/datum/lore_entry/content = locate(href_list["selectitem"]) + if(!content || !content?.content) + return + var/clicks = length(content.content) //Split the content into characters. 1 character = 1 click + var/dat = "\ + \ + \ + \ + \ + \ +

ACCESS FILE: C:/entries/local/[content.name]

\ +

Classification: [content.classified]

\ +
- � Seegson systems inc, 2257
\ +
\ +

[content.title]

\ + \ +

\ + \ + \ + \ + \ + \ + \ + " + usr << browse(dat, "window=lore_console[content.name];size=600x600") + playsound(src, pick('nsv13/sound/effects/computer/buzz.ogg','nsv13/sound/effects/computer/buzz2.ogg'), 100, TRUE) + in_use = TRUE //Stops you from crashing the server with infinite sounds + icon_state = "terminal_scroll" + clicks = clicks/3 + var/loops = clicks/3 //Each click sound has 4 clicks in it, so we only need to click 1/4th of the time per character yeet. + addtimer(CALLBACK(src, .proc/stop_clicking), loops) + soundloop?.start() + + +/obj/machinery/computer/lore_terminal/proc/stop_clicking() + soundloop?.stop() + icon_state = "terminal" + in_use = FALSE + +/datum/lore_controller + var/name = "Lore archive controller" + var/list/entries = list() //All the lore entries we have. + +/datum/lore_controller/New() + . = ..() + instantiate_lore_entries() + +/datum/lore_controller/proc/instantiate_lore_entries() + for(var/instance in subtypesof(/datum/lore_entry)) + var/datum/lore_entry/S = new instance + entries += S + +/datum/lore_entry + var/name = "Loredoc.txt" //"File display name" that the term shows (C://blah/yourfile.bmp) + var/title = null //What it's all about + var/classified = "Declassified" //Fluff, is this a restricted file or not? + var/content = null //You may choose to set this here, or via a .txt. file if it's long. Newlines / Enters will break it! + var/path = null //The location at which we're stored. If you don't have this, you don't get content + var/access_tag = "placeholder" //Set this to match the terminals that you want to be able to access it. EG "ntcommon" for declassified shit. + +/datum/lore_entry/New() + . = ..() + if(path) + content = file2text("[path]") + +/* + +TO GET THE COOL TYPEWRITER EFFECT, I HAD TO STRIP OUT THE HTML FORMATTING STUFF. +SPECIAL KEYS RESPOND AS FOLLOWS: + +` = newline (br) (AKA when you press enter) +~ = horizontal line (hr) +� = bullet point //Bullet points are not working? - archie + +*/ + +/datum/lore_entry/station + name = "new_employees_memo.mail" + title = "Intercepted message" + path = "lore_entries/welcome.txt" + access_tag = "ntcommon" + +/datum/lore_entry/all + name = "nuclear_authdisk_instructions.mail" + title = "Handling the Nuclear Authentication Disk and You!" + content = "SYSADMIN -> allcrew@seegnet.kin. RE: The Nuclear Authentication Disk. ` Greetings staff members! We're aware of the questions you have in regards to the Nuclear Authentication disk. The disk itself contains the codes needed to unlock nuclear devices used in a Nuclear Emergency and trigger a station self-destruction sequence. ` It is the duty of every member of this crew to take responsibility for the disk in the off chance that station command is currently absent. ` Don't leave it lying in the Captain's office. ` Keep it in movement to prevent Syndicate triangulation devices from functioning. ` If the disk location is unknown, look for a red pinpointer, the Head of Security and the Captain should always have one in their offices or lockers. These will help you locate the disk. ` If the disk is in enemy hands, call all hands on deck immediately and order a red alert. ` ` Protect the disk with your life, for the lives of the station's crew depend on it. Stay safe through vigilance." + access_tag = "all" + +/datum/lore_entry/all/meltdown_proceedures + name = "meltdown_proceedures.mail" + title = "Emergency proceedures regarding nuclear meltdowns:" + path = "lore_entries/meltdowns.txt" + +/datum/lore_entry/command + name = "command_memo.mail" + title = "Intercepted Message" + access_tag = "ntcommand" + classified = "Restricted" + content = "SYSADMIN -> command@seegnet.kin. RE: Orientation. ` Greetings station command staff, congratulations on your placement! It is now company policy to attend all briefings as issued by centcom staff. Please speak to your centcom officer for clarification on the new procedures." + +/datum/lore_entry/command/xeno + name = "outpost_27.mail" + title = "Investigation Closed" + classified = "Classified" + content = "SYSADMIN -> command@seegnet.kin. RE: Outpost 27 Investigation. ` Until further notice, all communications, visits and trade with Outpost 27 must be denied. It is recommended that the subject is avoided. Stay safe through vigilance." + +/datum/lore_entry/away_example + title = "Intercepted log file" + access_tag = "awayexample" + +/datum/lore_entry/away_example/pilot_log + name = "pilot_log.txt" + content = "They're coming in hot! Prepare for flip and bur']###�$55%%% -=File Access Terminated=-" + +/datum/lore_entry/away_example/weapons_log + name = "weapon_systems_dump2259/11/25.txt" + content = "Life support systems terminated. Railgun system status: A6E3. Torpedo system status: ~@##6#6#^^6 -=File Access Terminated=-" diff --git a/hyperstation/code/game/objects/railings.dm b/hyperstation/code/game/objects/railings.dm index 495f28b2..1710fe18 100644 --- a/hyperstation/code/game/objects/railings.dm +++ b/hyperstation/code/game/objects/railings.dm @@ -39,7 +39,8 @@ /obj/effect/collapse, /obj/effect/particle_effect/ion_trails, /obj/effect/dummy/phased_mob, - /obj/effect/immovablerod + /obj/effect/immovablerod, + /obj/effect/crystalline_reentry )) //Gotta make sure certain things can phase through it otherwise the railings also block them. /obj/structure/railing/CanPass(atom/movable/mover, turf/target) @@ -158,4 +159,4 @@ else usr.forceMove(get_turf(src)) - usr.visible_message("[user] climbed over \the [src]!") \ No newline at end of file + usr.visible_message("[user] climbed over \the [src]!") diff --git a/hyperstation/code/mobs/emote.dm b/hyperstation/code/mobs/emote.dm new file mode 100644 index 00000000..51e0018d --- /dev/null +++ b/hyperstation/code/mobs/emote.dm @@ -0,0 +1,33 @@ +/datum/emote/living/chirp + key = "chirp" + key_third_person = "chirps!" + message = "chirps!" + emote_type = EMOTE_AUDIBLE + muzzle_ignore = FALSE + restraint_check = FALSE + mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) + +/datum/emote/living/chirp/run_emote(mob/living/user, params) + if(!(. = ..())) + return + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'sound/voice/chirp.ogg', 50, 1, -1) + +/datum/emote/living/caw + key = "caw" + key_third_person = "caws!" + message = "caws!" + emote_type = EMOTE_AUDIBLE + muzzle_ignore = FALSE + restraint_check = FALSE + mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) + +/datum/emote/living/chirp/run_emote(mob/living/user, params) + if(!(. = ..())) + return + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'sound/voice/caw.ogg', 50, 1, -1) \ No newline at end of file diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 082d7d5e..40a12324 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -12,7 +12,8 @@ turns_per_move = 5 move_to_delay = 1 speed = 0 - see_in_dark = 6 + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE pass_flags = PASSTABLE butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 2) response_help = "prods" @@ -20,8 +21,8 @@ response_harm = "smacks" melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "slams" - attack_sound = 'sound/weapons/punch1.ogg' + attacktext = "glomps" + attack_sound = 'sound/effects/blobattack.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) ventcrawler = VENTCRAWLER_ALWAYS blood_volume = 0 @@ -33,12 +34,18 @@ minbodytemp = 250 //weak to cold maxbodytemp = 1500 pressure_resistance = 600 + sight = SEE_MOBS var/unstealth = FALSE var/knockdown_people = 1 + var/playerTransformCD = 50 + var/playerTfTime var/static/mimic_blacklisted_transform_items = typecacheof(list( /obj/item/projectile, /obj/item/radio/intercom)) - var/turns_since_notarget + var/playstyle_string = "You are a mimic, a tricky creature that can take the form of \ + almost any item nearby by shift-clicking it. While morphed, you move slowly and do less damage. \ + Finally, you can restore yourself to your original form while morphed by shift-clicking yourself. \ + Attacking carbon lifeforms will heal you at the cost of destructuring their DNA." /mob/living/simple_animal/hostile/hs13mimic/Initialize() . = ..() @@ -46,26 +53,33 @@ unstealth = FALSE trytftorandomobject() +/mob/living/simple_animal/hostile/hs13mimic/Login() + . = ..() + SEND_SOUND(src, sound('sound/ambience/antag/ling_aler.ogg')) + to_chat(src, src.playstyle_string) + /mob/living/simple_animal/hostile/hs13mimic/attack_hand(mob/living/carbon/human/M) . = ..() trigger() -/mob/living/simple_animal/hostile/hs13mimic/Life() - . = ..() - turns_since_notarget++ - if(turns_since_notarget >= 5) - turns_since_notarget = 0 - if(unstealth && (!target || isdead(target))) - target = null - trytftorandomobject() - /mob/living/simple_animal/hostile/hs13mimic/AttackingTarget() . = ..() - if(knockdown_people && . && prob(15) && iscarbon(target)) + if(iscarbon(target)) var/mob/living/carbon/C = target - C.Knockdown(40) - C.visible_message("\The [src] knocks down \the [C]!", \ + if(unstealth == FALSE && knockdown_people && .) //Guaranteed knockdown if we get the first hit while disguised. Typically, only players can do this since NPC mimics transform first before attacking. + unstealth = TRUE + restore() + C.Knockdown(40) + C.visible_message("\The [src] knocks down \the [C]!", \ "\The [src] knocks you down!") + else if(knockdown_people && . && prob(15)) + C.Knockdown(40) + C.visible_message("\The [src] knocks down \the [C]!", \ + "\The [src] knocks you down!") + if(C.nutrition >= 15) + C.nutrition -= (rand(7,15)) //They lose 7-15 nutrition + adjustBruteLoss(-3) //We heal 3 damage + C.adjustCloneLoss(rand(2,4)) //They also take a bit of cellular damage. /mob/living/simple_animal/hostile/hs13mimic/adjustHealth(amount, updating_health = TRUE, forced = FALSE) trigger() @@ -175,11 +189,12 @@ icon = 'hyperstation/icons/mobs/mimic.dmi' icon_state = "mimic" desc = initial(desc) + speed = initial(speed) wander = TRUE vision_range = 9 /mob/living/simple_animal/hostile/hs13mimic/proc/trigger() - if(unstealth == FALSE) + if(unstealth == FALSE && !stat) unstealth = TRUE visible_message("The [src] Reveals itself to be a Mimic!") Mimictransform() @@ -197,7 +212,7 @@ medhudupdate() var/list/obj/item/listItems = list() for(var/obj/item/I in oview(9,src.loc)) - if(!(is_type_in_typecache(I, mimic_blacklisted_transform_items))) + if(allowed(I)) listItems += I if(LAZYLEN(listItems)) var/obj/item/changedReference = pick(listItems) @@ -210,6 +225,26 @@ else Mimictransform() +/mob/living/simple_animal/hostile/hs13mimic/proc/allowed(atom/movable/A) + return !is_type_in_typecache(A, mimic_blacklisted_transform_items) && (isitem(A)) + +/mob/living/simple_animal/hostile/hs13mimic/ShiftClickOn(atom/movable/A) //if by any chance a player takes control of them + if(playerTfTime <= world.time && !stat) + if(A == src) + restore() + playerTfTime = world.time + playerTransformCD + return + if(istype(A) && allowed(A)) + unstealth = FALSE + name = A.name + icon = A.icon + icon_state = A.icon_state + desc = A.desc + speed = 5 + playerTfTime = world.time + playerTransformCD + else + to_chat(src, "You need to wait a little longer before you can shift into something else!") + ..() //Event control @@ -299,11 +334,12 @@ if(!eligible_areas.len) message_admins("No eligible areas for spawning mimics.") - return FALSE + return WAITING_FOR_SOMETHING notify_ghosts("A group of mimics has spawned in [pickedArea]!", source=pickedArea, action=NOTIFY_ATTACK, flashwindow = FALSE) - while(spawncount >= 1 && validTurfs.len) + while(spawncount > 0 && validTurfs.len) var/turf/pickedTurf = pick_n_take(validTurfs) var/spawn_type = /mob/living/simple_animal/hostile/hs13mimic spawn_atom_to_turf(spawn_type, pickedTurf, 1, FALSE) spawncount-- + return SUCCESSFUL_SPAWN diff --git a/hyperstation/code/modules/events/crystalline_reentry.dm b/hyperstation/code/modules/events/crystalline_reentry.dm index 034e5ce3..5f1acde7 100644 --- a/hyperstation/code/modules/events/crystalline_reentry.dm +++ b/hyperstation/code/modules/events/crystalline_reentry.dm @@ -14,6 +14,7 @@ /datum/round_event/crystalline_reentry announceWhen = 0 + startWhen = 10 fakeable = FALSE /datum/round_event/crystalline_reentry/announce(fake) @@ -130,11 +131,8 @@ return ..() /obj/effect/crystalline_reentry/proc/complete_trajectory() - //We hit what we wanted to hit, time to go - special_target = null - destination = get_edge_target_turf(src, dir) - walk(src,0) - walk_towards(src, destination, 1) + //We hit what we wanted to hit, time to go boom! + collision_effect() /obj/effect/crystalline_reentry/ex_act(severity, target) return 0 @@ -146,8 +144,9 @@ return /obj/effect/crystalline_reentry/Bump(atom/clong) - asteroidhealth = asteroidhealth - rand(7,14) - + if(!special_target)//If it has a special target, THERE ARE NO BRAKES ON THE ADMINBUS, BABY + asteroidhealth = asteroidhealth - rand(7,14) + if(prob(10)) playsound(src, 'sound/effects/bang.ogg', 50, 1) audible_message("You hear a BONK!") @@ -176,20 +175,6 @@ qdel(other) if(asteroidhealth <= 0) collision_effect() - atmos_spawn_air("water_vapor=1000;TEMP=0") //brr - make_debris() - switch(rand(1,100)) - if(1 to 20) - var/obj/structure/spawner/crystalline/M = new(src.loc) - visible_message("A [M] emerges from the asteroid's rubble!") - if(prob(50) && tendrilnotify) - priority_announce("Unknown organic entities have been detected in the vincinity of [station_name()]. General caution is advised.", "General Alert") - if(21 to 99) - visible_message("The asteroid collapses into nothing...") - if(100) - var/mob/living/simple_animal/bot/hugbot/M = new(src.loc) - visible_message("A [M] emerges from the asteroid's rubble! Wait... What?") - qdel(src) else atmos_spawn_air("water_vapor=75;TEMP=0") //brr @@ -198,6 +183,8 @@ if(ishuman(L)) var/mob/living/carbon/human/H = L H.adjustBruteLoss(160) + if(special_target && loc == get_turf(special_target)) // just in case. Otherwise the asteroid can stop if it penetrates someone that is standing exactly on that spot and that is bad + complete_trajectory() /obj/effect/crystalline_reentry/proc/make_debris() for(var/throws = dropamt, throws > 0, throws--) @@ -205,6 +192,7 @@ new thing_to_spawn(get_turf(src)) /obj/effect/crystalline_reentry/proc/collision_effect() + make_debris() explosion(src.loc, 0, 0, 5, 3, 1, 0, 0, 0, 0) var/sound/meteor_sound = sound(meteorsound) var/random_frequency = get_rand_frequency() @@ -217,6 +205,19 @@ var/dist = get_dist(M.loc, src.loc) shake_camera(M, dist > 20 ? 2 : 4, dist > 20 ? 1 : 3) M.playsound_local(src.loc, null, 50, 1, random_frequency, 10, S = meteor_sound) + atmos_spawn_air("water_vapor=1250;TEMP=0") //brr + switch(rand(1,100)) + if(1 to 30) + var/obj/structure/spawner/crystalline/M = new(src.loc) + visible_message("A [M] emerges from the asteroid's rubble!") + if(prob(50) && tendrilnotify) + priority_announce("Unknown organic entities have been detected in the vincinity of [station_name()]. General caution is advised.", "General Alert") + if(31 to 99) + visible_message("The asteroid collapses into nothing...") + if(100) + var/mob/living/simple_animal/bot/hugbot/M = new(src.loc) + visible_message("A [M] emerges from the asteroid's rubble! Wait... What?") + qdel(src) /obj/effect/crystalline_reentry/notendrilalert tendrilnotify = FALSE @@ -267,8 +268,8 @@ /obj/structure/spawner/crystalline/proc/delayedInitialize() //Why is this needed? Simple, because apparently explosion is so slow that it triggers after the spawner spawns and kills it on the spot. This just makes it killable. resistance_flags = FIRE_PROOF | LAVA_PROOF - max_integrity = 250 - obj_integrity = 250 + max_integrity = 225 + obj_integrity = 225 /obj/effect/light_emitter/crystalline set_luminosity = 4 diff --git a/hyperstation/code/modules/power/reactor/rbmk.dm b/hyperstation/code/modules/power/reactor/rbmk.dm index 441e5ca3..6ab02719 100644 --- a/hyperstation/code/modules/power/reactor/rbmk.dm +++ b/hyperstation/code/modules/power/reactor/rbmk.dm @@ -5,16 +5,18 @@ #define COOLANT_OUTPUT_GATE airs[3] #define RBMK_TEMPERATURE_OPERATING 640 //Celsius -#define RBMK_TEMPERATURE_CRITICAL 800 //At this point the entire ship/station is alerted to a meltdown. This may need altering +#define RBMK_TEMPERATURE_CRITICAL 810 //At this point the entire ship/station is alerted to a meltdown. This may need altering #define RBMK_TEMPERATURE_MELTDOWN 900 +#define RBMK_NO_COOLANT_TOLERANCE 5 //How many process()ing ticks the reactor can sustain without coolant before slowly taking damage + #define RBMK_PRESSURE_OPERATING 1000 //PSI #define RBMK_PRESSURE_CRITICAL 1469.59 //PSI #define RBMK_MAX_CRITICALITY 3 //No more criticality than N for now. //#define RBMK_POWER_FLAVOURISER 1000 //To turn those KWs into something usable -#define RBMK_POWER_FLAVOURISER 5000 //Five times stronger. Previous numbers were baby numbers. +#define RBMK_POWER_FLAVOURISER 8000 //To turn those KWs into something usable //Math. Lame. #define KPA_TO_PSI(A) (A/6.895) @@ -108,6 +110,7 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful var/last_coolant_temperature = 0 var/last_output_temperature = 0 var/last_heat_delta = 0 //For administrative cheating only. Knowing the delta lets you know EXACTLY what to set K at. + var/no_coolant_ticks = 0 //How many times in succession did we not have enough coolant? Decays twice as fast as it accumulates. var/last_user = null var/current_desired_k = null var/datum/powernet/powernet = null @@ -168,6 +171,9 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful to_chat(user, "[src]'s reactor vessel is cracked and worn, you need to repair the cracks with a welder before you can repair the seals.") return FALSE if(do_after(user, 5 SECONDS, target=src)) + if(vessel_integrity >= 350) //They might've stacked doafters + to_chat(user, "[src]'s seals are already in-tact, repairing them further would require a new set of seals.") + return FALSE playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6) user.visible_message("[user] applies sealant to some of [src]'s worn out seals.", "You apply sealant to some of [src]'s worn out seals.") vessel_integrity += 10 @@ -183,6 +189,9 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful to_chat(user, "[src] is free from cracks. Further repairs must be carried out with flexi-seal sealant.") return FALSE if(I.use_tool(src, user, 0, volume=40)) + if(vessel_integrity > 0.5 * initial(vessel_integrity)) + to_chat(user, "[src] is free from cracks. Further repairs must be carried out with flexi-seal sealant.") + return FALSE vessel_integrity += 20 to_chat(user, "You weld together some of [src]'s cracks. This'll do for now.") return TRUE @@ -190,16 +199,14 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful //Admin procs to mess with the reaction environment. /obj/machinery/atmospherics/components/trinary/nuclear_reactor/proc/lazy_startup() - for(var/I=0;I<5;I++){ + for(var/I=0;I<5;I++) fuel_rods += new /obj/item/twohanded/required/fuel_rod(src) - } message_admins("Reactor started up by admins in [ADMIN_VERBOSEJMP(src)]") start_up() /obj/machinery/atmospherics/components/trinary/nuclear_reactor/proc/deplete() - for(var/obj/item/twohanded/required/fuel_rod/FR in fuel_rods){ + for(var/obj/item/twohanded/required/fuel_rod/FR in fuel_rods) FR.depletion = 100 - } /obj/machinery/atmospherics/components/trinary/nuclear_reactor/Initialize() . = ..() @@ -241,13 +248,16 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful coolant_output.merge(coolant_input) //And now, shove the input into the output. coolant_input.gases = list() //Clear out anything left in the input gate. color = null + no_coolant_ticks = max(0, no_coolant_ticks-2) //Needs half as much time to recover the ticks than to acquire them else if(has_fuel()) - temperature += temperature / 500 //This isn't really harmful early game, but when your reactor is up to full power, this can get out of hand quite quickly. - vessel_integrity -= temperature / 200 //Think fast loser. - take_damage(10) //Just for the sound effect, to let you know you've fucked up. - color = "[COLOR_RED]" - investigate_log("Reactor taking damage from the lack of coolant", INVESTIGATE_SINGULO) + no_coolant_ticks++ + if(no_coolant_ticks > RBMK_NO_COOLANT_TOLERANCE) + temperature += temperature / 500 //This isn't really harmful early game, but when your reactor is up to full power, this can get out of hand quite quickly. + vessel_integrity -= temperature / 200 //Think fast chucklenuts! + take_damage(10) //Just for the sound effect, to let you know you've fucked up. + color = "[COLOR_RED]" + investigate_log("Reactor taking damage from the lack of coolant", INVESTIGATE_SINGULO) //Now, heat up the output and set our pressure. coolant_output.temperature = CELSIUS_TO_KELVIN(temperature) //Heat the coolant output gas that we just had pass through us. last_output_temperature = KELVIN_TO_CELSIUS(coolant_output.return_temperature()) @@ -270,7 +280,7 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful if(power >= 20) coolant_output.gases[/datum/gas/nitryl] += total_fuel_moles/50 //Shove out nitryl into the air when it's fuelled. You need to filter this off, or you're gonna have a bad time. var/obj/structure/cable/C = T.get_cable_node() - if(!C || !C.powernet) + if(!C?.powernet) //message_admins("No cable or cable has no powernet!") return else @@ -328,8 +338,8 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful handle_alerts() //Let's check if they're about to die, and let them know. update_icon() radiation_pulse(src, temperature*radioactivity_spice_multiplier) - if(power >= 90 && world.time >= next_flicker) //You're overloading the reactor. Give a more subtle warning that power is getting out of control. - next_flicker = world.time + 1.5 MINUTES + if(power >= 93 && world.time >= next_flicker) //You're overloading the reactor. Give a more subtle warning that power is getting out of control. + next_flicker = world.time + 2 MINUTES for(var/obj/machinery/light/L in GLOB.machines) if(prob(25) && L.z == z) //If youre running the reactor cold though, no need to flicker the lights. L.flicker() @@ -394,8 +404,9 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful investigate_log("Reactor reaching critical temperature at [temperature] C with desired criticality at [desired_k]", INVESTIGATE_SINGULO) message_admins("Reactor reaching critical temperature at [ADMIN_VERBOSEJMP(src)]") if(temperature >= RBMK_TEMPERATURE_MELTDOWN) - vessel_integrity -= (temperature / 100) - if(vessel_integrity <= temperature/100) //It wouldn't be able to tank another hit. + var/temp_damage = min(temperature/100, initial(vessel_integrity)/40) //40 seconds to meltdown from full integrity, worst-case. Bit less than blowout since it's harder to spike heat that much. + vessel_integrity -= temp_damage + if(vessel_integrity <= temp_damage) investigate_log("Reactor melted down at [temperature] C with desired criticality at [desired_k]", INVESTIGATE_SINGULO) meltdown() //Oops! All meltdown return @@ -415,8 +426,9 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful playsound(loc, 'sound/machines/clockcult/steam_whoosh.ogg', 100, TRUE) var/turf/T = get_turf(src) T.atmos_spawn_air("water_vapor=[pressure/100];TEMP=[CELSIUS_TO_KELVIN(temperature)]") - vessel_integrity -= (pressure/100) - if(vessel_integrity <= pressure/100) //It wouldn't be able to tank another hit. + var/pressure_damage = min(pressure/100, initial(vessel_integrity)/45) //You get 45 seconds (if you had full integrity), worst-case. But hey, at least it can't be instantly nuked with a pipe-fire.. though it's still very difficult to save. + vessel_integrity -= pressure_damage + if(vessel_integrity <= pressure_damage) //It wouldn't investigate_log("Reactor blowout at [pressure] PSI with desired criticality at [desired_k]", INVESTIGATE_SINGULO) blowout() return @@ -449,13 +461,13 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful update_icon() STOP_PROCESSING(SSmachines, src) icon_state = "reactor_slagged" - AddComponent(/datum/component/radioactive, 15000 , src) + AddComponent(/datum/component/radioactive, 15000 , src, 0) var/obj/effect/landmark/nuclear_waste_spawner/NSW = new /obj/effect/landmark/nuclear_waste_spawner/strong(get_turf(src)) relay('hyperstation/sound/effects/rbmk/meltdown.ogg', "You hear a horrible metallic hissing.") stop_relay(CHANNEL_REACTOR_ALERT) NSW.fire() //This will take out engineering for a decent amount of time as they have to clean up the sludge. for(var/obj/machinery/power/apc/apc in GLOB.apcs_list) - if(prob(70)) + if((apc.z == z) && prob(70)) apc.overload_lighting() var/datum/gas_mixture/coolant_input = COOLANT_INPUT_GATE var/datum/gas_mixture/moderator_input = MODERATOR_INPUT_GATE @@ -555,6 +567,9 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful /obj/machinery/computer/reactor name = "Reactor control console" desc = "Scream" + light_color = "#55BA55" + light_power = 1 + light_range = 3 icon = 'hyperstation/icons/obj/rbmk_computer.dmi' icon_state = "oldcomp" icon_screen = "library" @@ -708,7 +723,8 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful var/newPressure = input(user, "Set new output pressure (kPa)", "Remote pump control", null) as num if(!newPressure) return - signal(on, newPressure) //Number sanitization is handled on the actual pumps themselves. + newPressure = clamp(newPressure, 0, MAX_OUTPUT_PRESSURE) //Number sanitization is not handled in the pumps themselves, only during their ui_act which this doesn't use. + signal(on, newPressure) /obj/machinery/computer/reactor/attack_robot(mob/user) . = ..() diff --git a/hyperstation/sound/misc/yodadeath.ogg b/hyperstation/sound/misc/yodadeath.ogg new file mode 100644 index 00000000..831d4061 Binary files /dev/null and b/hyperstation/sound/misc/yodadeath.ogg differ diff --git a/icons/effects/atmospherics.dmi b/icons/effects/atmospherics.dmi index 6bef68c5..16884f1d 100644 Binary files a/icons/effects/atmospherics.dmi and b/icons/effects/atmospherics.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 384a10eb..80651187 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/obj/atmospherics/pipes/simple.dmi b/icons/obj/atmospherics/pipes/simple.dmi index 6af45f88..23fc9228 100644 Binary files a/icons/obj/atmospherics/pipes/simple.dmi and b/icons/obj/atmospherics/pipes/simple.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index b0fc76df..61ad164d 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 0f8662df..094753db 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/hydroponics/growing_fruits.dmi b/icons/obj/hydroponics/growing_fruits.dmi index 91536b76..ba076103 100644 Binary files a/icons/obj/hydroponics/growing_fruits.dmi and b/icons/obj/hydroponics/growing_fruits.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index e4d1c931..32cb2022 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 43ceca57..4191f9a5 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/lore_entries/meltdowns.txt b/lore_entries/meltdowns.txt new file mode 100644 index 00000000..a474cff5 --- /dev/null +++ b/lore_entries/meltdowns.txt @@ -0,0 +1 @@ +SYSADMIN -> Allcrew@seegnet.kin. RE: Emergency Meltdown proceedures. ` The nuclear reactor is an inherently safe engine, however this does not mean it is foolproof. Dilligence will mean the difference between having a safe, reliable power output which can last for decades, and a nuclear hellfire. `What to do during a meltdown: `-A reactor will melt down when the fission inside it produces an uncontrollable amount of heat (in excess of 810 degrees celsius). If this ever happens, a stationwide alarm will sound. If you hear this alarm, you must act quickly and calmly, as you will have approximately 1 - 2 minutes before the reactor explodes. `-To avert meltdown, simply locate the control console, and choose the 'SCRAM' setting (the button labelled AZ-5). This will immediately lower all control rods and attempt to cool the reactor. Injection of carbon dioxide via the moderator line will help this process. `-In the event of damaged control rods, IMMEDIATELY shut off all supply pumps, filters and evacuate the engineering section IMMEDIATELY to prevent unecessary loss of life. `-As a meltdown occurs, nuclear fuel is deposited all over the station, and must be cleaned up with a shovel. This spent fuel is HIGHLY radioactive, and must be handled with extreme care. If the unthinkable comes to pass, instruct crew to seek shelter in maintenance. To avoid complications, it is recommended that engineers equip radiation proof suits and gas masks, and proceed to clear a path to the evacuation arm with shovels. Remember: Stay safe through vigilance! \ No newline at end of file diff --git a/lore_entries/welcome.txt b/lore_entries/welcome.txt new file mode 100644 index 00000000..be29c5db --- /dev/null +++ b/lore_entries/welcome.txt @@ -0,0 +1 @@ +SYSADMIN -> Allcrew@seegnet.kin. RE: Orientation. ` Greetings crew, congratulations on your placement! It is now company policy to attend all briefings as issued by command staff. Please speak to your commanding officer for clarification on the new procedures. \ No newline at end of file diff --git a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm index 8e5a6d14..935ffd76 100644 --- a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -1795,6 +1795,11 @@ datum/sprite_accessory/mam_tails/insect name = "Synthetic Lizard - Pecs Light" icon_state = "synthlizpecslight" +/datum/sprite_accessory/mam_body_markings/protogenlight + name = "Protogen-light" + icon_state = "protogenlight" + icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' + /****************************************** ************ Taur Bodies ****************** *******************************************/ diff --git a/modular_citadel/code/modules/mob/living/simple_animal/kiwi.dm b/modular_citadel/code/modules/mob/living/simple_animal/kiwi.dm deleted file mode 100644 index 27c17490..00000000 --- a/modular_citadel/code/modules/mob/living/simple_animal/kiwi.dm +++ /dev/null @@ -1,134 +0,0 @@ -/mob/living/simple_animal/kiwi - name = "space kiwi" - desc = "Exposure to low gravity made them grow larger." - gender = FEMALE - icon = 'modular_citadel/icons/mob/kiwi.dmi' - icon_state = "kiwi" - icon_living = "kiwi" - icon_dead = "dead" - speak = list("Chirp!","Cheep cheep chirp!!","Cheep.") - speak_emote = list("chirps","trills") - emote_hear = list("chirps.") - emote_see = list("pecks at the ground.","jumps in place.") - density = FALSE - speak_chance = 2 - turns_per_move = 3 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) - var/egg_type = /obj/item/reagent_containers/food/snacks/egg/kiwiEgg - var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" - health = 25 - maxHealth = 25 - ventcrawler = VENTCRAWLER_ALWAYS - var/eggsleft = 0 - var/eggsFertile = TRUE - pass_flags = PASSTABLE | PASSMOB - mob_size = MOB_SIZE_SMALL - var/list/feedMessages = list("It chirps happily.","It chirps happily.") - var/list/layMessage = list("lays an egg.","squats down and croons.","begins making a huge racket.","begins chirping raucously.") - gold_core_spawnable = FRIENDLY_SPAWN - var/static/kiwi_count = 0 - -/mob/living/simple_animal/kiwi/Destroy() - --kiwi_count - return ..() - - -/mob/living/simple_animal/kiwi/Initialize() - . = ..() - ++kiwi_count - - -/mob/living/simple_animal/kiwi/Life() - . =..() - if(!.) - return - if((!stat && prob(3) && eggsleft > 0) && egg_type) - visible_message("[src] [pick(layMessage)]") - eggsleft-- - var/obj/item/E = new egg_type(get_turf(src)) - E.pixel_x = rand(-6,6) - E.pixel_y = rand(-6,6) - if(eggsFertile) - if(kiwi_count < MAX_CHICKENS && prob(25)) - START_PROCESSING(SSobj, E) - -/obj/item/reagent_containers/food/snacks/egg/kiwiEgg/process() - if(isturf(loc)) - amount_grown += rand(1,2) - if(amount_grown >= 100) - visible_message("[src] hatches with a quiet cracking sound.") - new /mob/living/simple_animal/babyKiwi(get_turf(src)) - STOP_PROCESSING(SSobj, src) - qdel(src) - else - STOP_PROCESSING(SSobj, src) - - -/mob/living/simple_animal/kiwi/attackby(obj/item/O, mob/user, params) - if(istype(O, food_type)) //feedin' dem kiwis - if(!stat && eggsleft < 8) - var/feedmsg = "[user] feeds [O] to [name]! [pick(feedMessages)]" - user.visible_message(feedmsg) - qdel(O) - eggsleft += rand(1, 4) - else - to_chat(user, "[name] doesn't seem hungry!") - else - ..() - - -/mob/living/simple_animal/babyKiwi - name = "baby space kiwi" - desc = "So huggable." - icon = 'modular_citadel/icons/mob/kiwi.dmi' - icon_state = "babyKiwi" - icon_living = "babyKiwi" - icon_dead = "deadBaby" - icon_gib = "chick_gib" - gender = FEMALE - speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") - speak_emote = list("chirps") - emote_hear = list("chirps.") - emote_see = list("pecks at the ground.","Happily bounces in place.") - density = FALSE - speak_chance = 2 - turns_per_move = 2 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" - health = 10 - maxHealth = 10 - ventcrawler = VENTCRAWLER_ALWAYS - var/amount_grown = 0 - pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - mob_size = MOB_SIZE_TINY - gold_core_spawnable = FRIENDLY_SPAWN - -/mob/living/simple_animal/babyKiwi/Initialize() - . = ..() - pixel_x = rand(-6, 6) - pixel_y = rand(0, 10) - -/mob/living/simple_animal/babyKiwi/Life() - . =..() - if(!.) - return - if(!stat && !ckey) - amount_grown += rand(1,2) - if(amount_grown >= 100) - new /mob/living/simple_animal/kiwi(src.loc) - qdel(src) - - -/obj/item/reagent_containers/food/snacks/egg/kiwiEgg - name = "kiwi egg" - icon = 'modular_citadel/icons/mob/kiwi.dmi' - desc = "A slightly bigger egg!" - icon_state = "egg" - diff --git a/modular_citadel/icons/mob/BananaSpider.dmi b/modular_citadel/icons/mob/BananaSpider.dmi deleted file mode 100644 index da65ef43..00000000 Binary files a/modular_citadel/icons/mob/BananaSpider.dmi and /dev/null differ diff --git a/modular_citadel/icons/mob/kiwi.dmi b/modular_citadel/icons/mob/kiwi.dmi deleted file mode 100644 index 18777f65..00000000 Binary files a/modular_citadel/icons/mob/kiwi.dmi and /dev/null differ diff --git a/modular_citadel/icons/mob/mam_snouts.dmi b/modular_citadel/icons/mob/mam_snouts.dmi index 8ede8c3f..0fdde375 100644 Binary files a/modular_citadel/icons/mob/mam_snouts.dmi and b/modular_citadel/icons/mob/mam_snouts.dmi differ diff --git a/modular_citadel/icons/mob/markings_notmammals.dmi b/modular_citadel/icons/mob/markings_notmammals.dmi index a03c31ee..157c02d6 100644 Binary files a/modular_citadel/icons/mob/markings_notmammals.dmi and b/modular_citadel/icons/mob/markings_notmammals.dmi differ diff --git a/nsv13/icons/obj/computers.dmi b/nsv13/icons/obj/computers.dmi new file mode 100644 index 00000000..8e9ad402 Binary files /dev/null and b/nsv13/icons/obj/computers.dmi differ diff --git a/nsv13/sound/effects/computer/alarm.ogg b/nsv13/sound/effects/computer/alarm.ogg new file mode 100644 index 00000000..aa651b43 Binary files /dev/null and b/nsv13/sound/effects/computer/alarm.ogg differ diff --git a/nsv13/sound/effects/computer/alarm_2.ogg b/nsv13/sound/effects/computer/alarm_2.ogg new file mode 100644 index 00000000..022df8c7 Binary files /dev/null and b/nsv13/sound/effects/computer/alarm_2.ogg differ diff --git a/nsv13/sound/effects/computer/alarm_3.ogg b/nsv13/sound/effects/computer/alarm_3.ogg new file mode 100644 index 00000000..a1767b5f Binary files /dev/null and b/nsv13/sound/effects/computer/alarm_3.ogg differ diff --git a/nsv13/sound/effects/computer/alarm_4.ogg b/nsv13/sound/effects/computer/alarm_4.ogg new file mode 100644 index 00000000..518d3782 Binary files /dev/null and b/nsv13/sound/effects/computer/alarm_4.ogg differ diff --git a/nsv13/sound/effects/computer/buzz.ogg b/nsv13/sound/effects/computer/buzz.ogg new file mode 100644 index 00000000..174ad107 Binary files /dev/null and b/nsv13/sound/effects/computer/buzz.ogg differ diff --git a/nsv13/sound/effects/computer/buzz2.ogg b/nsv13/sound/effects/computer/buzz2.ogg new file mode 100644 index 00000000..8e38544f Binary files /dev/null and b/nsv13/sound/effects/computer/buzz2.ogg differ diff --git a/nsv13/sound/effects/computer/error.ogg b/nsv13/sound/effects/computer/error.ogg new file mode 100644 index 00000000..da4781cd Binary files /dev/null and b/nsv13/sound/effects/computer/error.ogg differ diff --git a/nsv13/sound/effects/computer/error2.ogg b/nsv13/sound/effects/computer/error2.ogg new file mode 100644 index 00000000..ab2f9544 Binary files /dev/null and b/nsv13/sound/effects/computer/error2.ogg differ diff --git a/nsv13/sound/effects/computer/error3.ogg b/nsv13/sound/effects/computer/error3.ogg new file mode 100644 index 00000000..d0534ed0 Binary files /dev/null and b/nsv13/sound/effects/computer/error3.ogg differ diff --git a/nsv13/sound/effects/computer/scroll1.ogg b/nsv13/sound/effects/computer/scroll1.ogg new file mode 100644 index 00000000..b7f660f0 Binary files /dev/null and b/nsv13/sound/effects/computer/scroll1.ogg differ diff --git a/nsv13/sound/effects/computer/scroll2.ogg b/nsv13/sound/effects/computer/scroll2.ogg new file mode 100644 index 00000000..2be4eee8 Binary files /dev/null and b/nsv13/sound/effects/computer/scroll2.ogg differ diff --git a/nsv13/sound/effects/computer/scroll3.ogg b/nsv13/sound/effects/computer/scroll3.ogg new file mode 100644 index 00000000..6ede48eb Binary files /dev/null and b/nsv13/sound/effects/computer/scroll3.ogg differ diff --git a/nsv13/sound/effects/computer/scroll4.ogg b/nsv13/sound/effects/computer/scroll4.ogg new file mode 100644 index 00000000..4c010036 Binary files /dev/null and b/nsv13/sound/effects/computer/scroll4.ogg differ diff --git a/nsv13/sound/effects/computer/scroll5.ogg b/nsv13/sound/effects/computer/scroll5.ogg new file mode 100644 index 00000000..24ade161 Binary files /dev/null and b/nsv13/sound/effects/computer/scroll5.ogg differ diff --git a/nsv13/sound/effects/computer/scroll_short.ogg b/nsv13/sound/effects/computer/scroll_short.ogg new file mode 100644 index 00000000..a26c926b Binary files /dev/null and b/nsv13/sound/effects/computer/scroll_short.ogg differ diff --git a/nsv13/sound/effects/computer/scroll_short_2.ogg b/nsv13/sound/effects/computer/scroll_short_2.ogg new file mode 100644 index 00000000..9c008075 Binary files /dev/null and b/nsv13/sound/effects/computer/scroll_short_2.ogg differ diff --git a/nsv13/sound/effects/computer/scroll_start.ogg b/nsv13/sound/effects/computer/scroll_start.ogg new file mode 100644 index 00000000..d0df8993 Binary files /dev/null and b/nsv13/sound/effects/computer/scroll_start.ogg differ diff --git a/nsv13/sound/effects/computer/startup.ogg b/nsv13/sound/effects/computer/startup.ogg new file mode 100644 index 00000000..06478a06 Binary files /dev/null and b/nsv13/sound/effects/computer/startup.ogg differ diff --git a/sound/voice/caw.ogg b/sound/voice/caw.ogg new file mode 100644 index 00000000..22d20d81 Binary files /dev/null and b/sound/voice/caw.ogg differ diff --git a/sound/voice/chirp.ogg b/sound/voice/chirp.ogg new file mode 100644 index 00000000..73cb0376 Binary files /dev/null and b/sound/voice/chirp.ogg differ diff --git a/tgstation.dme b/tgstation.dme index c1537c76..1ea8cc12 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2302,6 +2302,7 @@ #include "code\modules\mob\living\simple_animal\guardian\types\standard.dm" #include "code\modules\mob\living\simple_animal\guardian\types\support.dm" #include "code\modules\mob\living\simple_animal\hostile\alien.dm" +#include "code\modules\mob\living\simple_animal\hostile\banana_spider.dm" #include "code\modules\mob\living\simple_animal\hostile\bear.dm" #include "code\modules\mob\living\simple_animal\hostile\bees.dm" #include "code\modules\mob\living\simple_animal\hostile\bread.dm" @@ -3057,6 +3058,7 @@ #include "hyperstation\code\datums\traits\good.dm" #include "hyperstation\code\datums\traits\neutral.dm" #include "hyperstation\code\datums\weather\oxygen_rain.dm" +#include "hyperstation\code\game\machinery\lore_terminal.dm" #include "hyperstation\code\game\objects\railings.dm" #include "hyperstation\code\game\objects\items\cosmetics.dm" #include "hyperstation\code\game\objects\items\storage\big_bag.dm" @@ -3067,6 +3069,7 @@ #include "hyperstation\code\hyperbot\hyperbot.dm" #include "hyperstation\code\mobs\carrion.dm" #include "hyperstation\code\mobs\dancer.dm" +#include "hyperstation\code\mobs\emote.dm" #include "hyperstation\code\mobs\hugbot.dm" #include "hyperstation\code\mobs\mimic.dm" #include "hyperstation\code\mobs\werewolf.dm" @@ -3306,8 +3309,6 @@ #include "modular_citadel\code\modules\mob\living\silicon\robot\robot.dm" #include "modular_citadel\code\modules\mob\living\silicon\robot\robot_modules.dm" #include "modular_citadel\code\modules\mob\living\silicon\robot\robot_movement.dm" -#include "modular_citadel\code\modules\mob\living\simple_animal\banana_spider.dm" -#include "modular_citadel\code\modules\mob\living\simple_animal\kiwi.dm" #include "modular_citadel\code\modules\mob\living\simple_animal\simplemob_vore_values.dm" #include "modular_citadel\code\modules\power\lighting.dm" #include "modular_citadel\code\modules\projectiles\gun.dm" diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index ce5a9546..999167e9 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ pygit2==0.27.2 bidict==0.13.1 -Pillow==8.1.1 +Pillow==8.2.0